[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—which are by nature not "
+"injectable, contextual objects—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<Book></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<Book></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—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—an instance under the control of CDI—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—in this "
+"case an <literal>Integer</literal>—to be injected. We can even specify "
+"a qualifier—in this case <literal>@Random</literal>, a scope—"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name—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—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—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><Interceptors></literal> declaration serves for interceptors:"
+"<literal><interceptors></literal> declaration serves for interceptors:"
msgstr ""
-"Diese Deklaration dient demselben Zweck für Dekoratoren, den die"
-"<literal><Interceptors></literal>-Deklaration für Interzeptoren erfüllt:"
+"Diese Deklaration dient demselben Zweck für Dekoratoren, den die<literal><"
+"Interceptors></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 — 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—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 — 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 — 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 — 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 — 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—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 — 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<? extends Annotation> getScopeType();\n"
-" \n"
-" public <T> T get(Bean<T> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<"
-"Random>(){})</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—certainly the most "
+"recognized—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 — <literal>ExternalPaymentProcessor</"
-"literal> or <literal>MockPaymentProcessor</literal> — 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 — <literal>ExternalPaymentProcessor</"
-"literal> oder <literal>MockPaymentProcessor</literal> — 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—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 — 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— 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> — 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> — 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 — Web 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:"
+"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 — Web Beans mit Geltungsbereich "
-"<literal>@Dependent</literal> — 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 — Web Beans mit "
+"Geltungsbereich <literal>@Dependent</literal> — 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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> — 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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> oder "
+#~ "<literal>MockPaymentProcessor</literal> — 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 — 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— 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> — 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> — "
+#~ "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 — 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 — 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 — 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 — 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 — it is determined by the order in "
-"which interceptors are listed at the class level."
-msgstr "Die Interzeptorreihenfolge ist nicht allgemeingültig — sie wird durch die Reihenfolge, in der Interzeptoren auf Klassenebene aufgeführt sind, festgelegt."
+"the interceptor ordering is non-global — it is determined by the order "
+"in which interceptors are listed at the class level."
+msgstr ""
+"Die Interzeptorreihenfolge ist nicht allgemeingültig — 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 — injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them — 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 — 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—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—"
+"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—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 — if the <literal>SentenceTranslator</literal> EJB was not "
-"deployed — 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 — wenn der <literal>SentenceTranslator</literal> EJB nicht deployt wurde — 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—if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed—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 — wenn der "
+"<literal>SentenceTranslator</literal> EJB nicht deployt wurde — 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 "
+#~ "— injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them — 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 — 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 — which are by nature not injectable, "
-"contextual objects — 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 — die ihrem Wesen nach nicht einspeisbar sind, "
-"kontextuelle Objekte — 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 — which are by nature not "
+#~ "injectable, contextual objects — 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 "
+#~ "— die ihrem Wesen nach nicht einspeisbar sind, kontextuelle Objekte "
+#~ "— 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> — the "
-"unqualified class name, with the first character changed to lowercase."
-msgstr "In diesem Fall wird der Name standardmäßig zu <literal>shoppingCart</literal> — 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> — "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "In diesem Fall wird der Name standardmäßig zu <literal>shoppingCart</"
+#~ "literal> — 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 — since they are not intended to be injected into other "
-"objects — 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 — da sie nicht zur Einspeisung in andere Objekte vorgesehen sind — 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 — since they are not intended to be injected into "
+#~ "other objects — 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 — da sie nicht zur Einspeisung in andere "
+#~ "Objekte vorgesehen sind — 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—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 — so-"
-"called \"configuration by convention\" — 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—so-"
+"called \"configuration by convention\"—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 — vor Ihnen verbirgt; sogenannte \"Konfiguration nach Konvention\" — 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 — vor Ihnen verbirgt; sogenannte \"Konfiguration nach "
+"Konvention\" — 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)—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—<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—<literal>SessionObjectReference</literal>—"
+"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—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 — 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—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<Integer></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<"
+"Random>(){})</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><util:Date/></literal> in the "
"following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Zum Beispiel bezieht sich das Element <literal><util:Date/></literal> im folgenden XML-Fragment auf die Klasse <literal>java.util.Date</literal>:"
+msgstr ""
+"Zum Beispiel bezieht sich das Element <literal><util:Date/></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><Name></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><Name></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><Name></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><Name></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—which are by nature not "
+"injectable, contextual objects—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<Book></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<Book></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—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—an instance under the control of CDI—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—in this "
+"case an <literal>Integer</literal>—to be injected. We can even specify "
+"a qualifier—in this case <literal>@Random</literal>, a scope—"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name—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—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—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><Interceptors></literal> declaration serves for interceptors:"
-msgstr "Esta declaración sirve para decoradores al igual que la declaración <literal><Interceptores></literal> sirve para interceptores:"
+"<literal><interceptors></literal> declaration serves for interceptors:"
+msgstr ""
+"Esta declaración sirve para decoradores al igual que la declaración "
+"<literal><Interceptores></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 — 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—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 — 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 — 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 — 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 — 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—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 "
+"— 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<? extends Annotation> getScopeType();\n"
-" \n"
-" public <T> T get(Bean<T> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<"
-"Random>(){})</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—certainly the most "
+"recognized—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 — <literal>ExternalPaymentProcessor</"
-"literal> or <literal>MockPaymentProcessor</literal> — 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 — <literal>ExternalPaymentProcessor</"
-"literal> o <literal>MockPaymentProcessor</literal> — . 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—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 — 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 — 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> — 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> — 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 — Web 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 — con ámbito <literal>@Dependent</literal> — 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 — con ámbito <literal>@Dependent</"
+"literal> — 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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> — 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 — <literal>ExternalPaymentProcessor</literal> "
+#~ "o <literal>MockPaymentProcessor</literal> — . 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 — 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 — 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> — 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> "
+#~ "— 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 — 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 — 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 — 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 — "
+"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 — it is determined by the order in "
-"which interceptors are listed at the class level."
-msgstr "la orden del interceptor es no-global — es determinada por la orden en que se listan los interceptores en el nivel de clase."
+"the interceptor ordering is non-global — it is determined by the order "
+"in which interceptors are listed at the class level."
+msgstr ""
+"la orden del interceptor es no-global — 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 — injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them — 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 — inyectándolos en otros Web Beans, configurándolos a través de los servicios de configuración, incluso agregándoles interceptores y decoradores — 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—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—"
+"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—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 — if the <literal>SentenceTranslator</literal> EJB was not "
-"deployed — 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> — si el EJB de <literal>SentenceTranslator</literal> no estaba desplegado — 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—if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed—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> — si el EJB de "
+"<literal>SentenceTranslator</literal> no estaba desplegado — 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 "
+#~ "— injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them — 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 — "
+#~ "inyectándolos en otros Web Beans, configurándolos a través de los "
+#~ "servicios de configuración, incluso agregándoles interceptores y "
+#~ "decoradores — 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 — which are by nature not injectable, "
-"contextual objects — 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 — los cuales son por naturaleza no inyectables, objetos contextuales — 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 — which are by nature not "
+#~ "injectable, contextual objects — 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 — los cuales son "
+#~ "por naturaleza no inyectables, objetos contextuales — 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> — the "
-"unqualified class name, with the first character changed to lowercase."
-msgstr "En este caso, el nombre predetermina al <literal>shoppingCart</literal> — 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> — "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "En este caso, el nombre predetermina al <literal>shoppingCart</literal> "
+#~ "— 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 — since they are not intended to be injected into other "
-"objects — 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 — porque no están diseñados para ser inyectados en otros objetos — 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 — since they are not intended to be injected into "
+#~ "other objects — 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 — porque no están diseñados para ser inyectados en "
+#~ "otros objetos — 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—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 — so-called \"configuration by convention\" — 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 — llamadas\"configuración por convención\" — 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—so-"
+"called \"configuration by convention\"—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 "
+"— llamadas\"configuración por convención\" — 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)—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—<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—<literal>SessionObjectReference</literal>—"
+"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—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 — 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—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<Integer></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<"
+"Random>(){})</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><util:Date/></literal> in the "
"following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Por ejemplo, el elemento <literal><util:Date/></literal> en el siguiente fragmento XML se refiere a la clase <literal>java.util.Date</literal>:"
+msgstr ""
+"Por ejemplo, el elemento <literal><util:Date/></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><Name></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><Name></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><Name></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><Name></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—which are by nature not "
+"injectable, contextual objects—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<Book></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<Book></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—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—an instance under the control of CDI—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—in this "
+"case an <literal>Integer</literal>—to be injected. We can even specify "
+"a qualifier—in this case <literal>@Random</literal>, a scope—"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name—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—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—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><Interceptors></literal> declaration serves for interceptors:"
-msgstr "Cette déclaration a le même but pour les décorateurs que la déclaration <literal><Interceptors></literal> pour les intercepteurs:"
+#: decorators.xml:113
+#, fuzzy, no-c-format
+msgid ""
+"This declaration serves the same purpose for decorators that the "
+"<literal><interceptors></literal> declaration serves for interceptors:"
+msgstr ""
+"Cette déclaration a le même but pour les décorateurs que la déclaration "
+"<literal><Interceptors></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 — 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—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 — 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—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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<? extends Annotation> getScopeType();\n"
-" \n"
-" public <T> T get(Bean<T> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<"
-"Random>(){})</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—certainly the most "
+"recognized—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 — <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> — 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 — <literal>ExternalPaymentProcessor</literal> ou <literal>MockPaymentProcessor</literal>— 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—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 — 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> — 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 — Web 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:"
+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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> — 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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> ou "
+#~ "<literal>MockPaymentProcessor</literal>— 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 — 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 — 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 — it is determined by the order in "
-"which interceptors are listed at the class level."
+"the interceptor ordering is non-global — 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 — injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them — 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—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—"
+"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—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 — if the <literal>SentenceTranslator</literal> EJB was not "
-"deployed — 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 — which are by nature not injectable, "
-"contextual objects — 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> — 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 — since they are not intended to be injected into other "
-"objects — 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—if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed—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—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 — so-called \"configuration by convention\" — 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 — les soit-disant \"configuration par convention\" — 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—so-"
+"called \"configuration by convention\"—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 — les soit-disant \"configuration par "
+"convention\" — 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)—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—<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—<literal>SessionObjectReference</literal>—"
+"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—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 — 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—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<Integer></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<"
+"Random>(){})</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><util:Date/></literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Par exemple, l'élément <literal><util:Date/></literal> dans le fragment XML suivant référencela class <literal>java.util.Date</literal>:"
+msgid ""
+"For example, the element <literal><util:Date/></literal> in the "
+"following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr ""
+"Par exemple, l'élément <literal><util:Date/></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><Name></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><Name></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><Name></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><Name></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—which are by nature not "
+"injectable, contextual objects—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<Book></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<Book></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—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—an instance under the control of CDI—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—in this "
+"case an <literal>Integer</literal>—to be injected. We can even specify "
+"a qualifier—in this case <literal>@Random</literal>, a scope—"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name—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—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—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><Interceptors></literal> declaration serves for interceptors:"
-msgstr "Per i decoratori questa dichiarazione provvede alle stesse finalità di quanto la dichiarazione <literal><Interceptors></literal> fa per gli interceptor."
+#: decorators.xml:113
+#, fuzzy, no-c-format
+msgid ""
+"This declaration serves the same purpose for decorators that the "
+"<literal><interceptors></literal> declaration serves for interceptors:"
+msgstr ""
+"Per i decoratori questa dichiarazione provvede alle stesse finalità di "
+"quanto la dichiarazione <literal><Interceptors></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 — 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 — 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—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 — 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 — 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 — 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—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 "
+"— 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<? extends Annotation> getScopeType();\n"
-" \n"
-" public <T> T get(Bean<T> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<Random>(){})</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<Random>(){})</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<Random>(){})"
+#~ "</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<Random>(){})"
+#~ "</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—certainly the most "
+"recognized—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 — <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> — 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 — <literal>ExternalPaymentProcessor</literal> o <literal>MockPaymentProcessor</literal> — 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—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 — 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> — 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> — 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 — Web 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 — Web Bean con scope <literal>@Dependent</literal> — 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 — Web Bean con scope "
+"<literal>@Dependent</literal> — 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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> — 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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> o "
+#~ "<literal>MockPaymentProcessor</literal> — 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 — 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> — 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> — 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 — 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 — 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 — 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 — 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 — it is determined by the order in which interceptors are listed at the class level."
-msgstr "l'ordinamento degli interceptor è non-globale — è 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 — it is determined by the order "
+"in which interceptors are listed at the class level."
+msgstr ""
+"l'ordinamento degli interceptor è non-globale — è 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 — injecting them into other Web Beans, configuring them via the Web Beans XML configuration facility, even adding interceptors and decorators to them — 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 — iniettandoli in altri Web Beans, configurandoli tramite strumenti di configurazione XML Web Bean, e perfino aggiungendo a loro interceptor e decoratori — 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—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—"
+"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—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 — if the <literal>SentenceTranslator</literal> EJB was not deployed — 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 — se l'EJB <literal>SentenceTranslator</literal> non venisse deployato — 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—if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed—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 — se l'EJB "
+"<literal>SentenceTranslator</literal> non venisse deployato — 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 "
+#~ "— injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them — 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 — "
+#~ "iniettandoli in altri Web Beans, configurandoli tramite strumenti di "
+#~ "configurazione XML Web Bean, e perfino aggiungendo a loro interceptor e "
+#~ "decoratori — 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 — which are by nature not injectable, contextual objects — 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 — che sono per natura non iniettabili, oggetti contestuali — 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 — which are by nature not "
+#~ "injectable, contextual objects — 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 — che sono per natura "
+#~ "non iniettabili, oggetti contestuali — 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> — the unqualified class name, with the first character changed to lowercase."
-msgstr "In questo caso il nome di default è <literal>shoppingCart</literal> — il nome della classe non qualificata, con il primo carattere messo in minuscolo."
+#~ msgid ""
+#~ "In this case, the name defaults to <literal>shoppingCart</literal> — "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "In questo caso il nome di default è <literal>shoppingCart</literal> "
+#~ "— 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 — since they are not intended to be injected into other objects — 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 — poiché non sono intesi per essere iniettati in altri oggetti — 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 — since they are not intended to be injected into "
+#~ "other objects — 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 — poiché non sono intesi per essere "
+#~ "iniettati in altri oggetti — 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—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 — so-called \"configuration by convention\" — 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 — la cosiddetta \"configurazione per convenzione (configuration by convention)\" — 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—so-"
+"called \"configuration by convention\"—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 — la cosiddetta "
+"\"configurazione per convenzione (configuration by convention)\" — 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)—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—<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—<literal>SessionObjectReference</literal>—"
+"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—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 — 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—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<Integer></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<"
+"Random>(){})</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><util:Date/></literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Per esempio l'elemento <literal><util:Date/></literal> nel seguente frammento XML si riferisce alla classe <literal>java.util.Date</literal>:"
+msgid ""
+"For example, the element <literal><util:Date/></literal> in the "
+"following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr ""
+"Per esempio l'elemento <literal><util:Date/></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><Name></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><Name></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><Name></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><Name></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—which are by nature not "
+"injectable, contextual objects—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<Book></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<Book></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—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—an instance under the control of CDI—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—in this "
+"case an <literal>Integer</literal>—to be injected. We can even specify "
+"a qualifier—in this case <literal>@Random</literal>, a scope—"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name—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—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—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><Interceptors></literal> declaration serves for interceptors:"
-msgstr "ã“ã®å®£è¨€ã¯ãƒ‡ã‚³ãƒ¬ãƒ¼ã‚¿ã«å¯¾ã—㦠<literal><Interceptors></literal> 宣言ãŒã‚¤ãƒ³ã‚¿ã‚»ãƒ—ã‚¿ã«å¯¾ã™ã‚‹ã‚‚ã®ã¨åŒã˜ç›®çš„ã‚’æŒã¡ã¾ã™ã€‚"
+#: decorators.xml:113
+#, fuzzy, no-c-format
+msgid ""
+"This declaration serves the same purpose for decorators that the "
+"<literal><interceptors></literal> declaration serves for interceptors:"
+msgstr ""
+"ã“ã®å®£è¨€ã¯ãƒ‡ã‚³ãƒ¬ãƒ¼ã‚¿ã«å¯¾ã—㦠<literal><Interceptors></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 — 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—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 — 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 "オブザーãƒãƒ¡ã‚½ãƒƒãƒ‰ã¯ã‚¤ãƒ™ãƒ³ãƒˆãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚’指定ã™ã‚‹å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“— ã“ã®ã‚±ãƒ¼ã‚¹ã§ã¯ç‰¹å®šã®ã‚¿ã‚¤ãƒ—ã® <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—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 ""
+"オブザーãƒãƒ¡ã‚½ãƒƒãƒ‰ã¯ã‚¤ãƒ™ãƒ³ãƒˆãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚’指定ã™ã‚‹å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“— ã“"
+"ã®ã‚±ãƒ¼ã‚¹ã§ã¯ç‰¹å®šã®ã‚¿ã‚¤ãƒ—ã® <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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<? extends Annotation> getScopeType();\n"
-" \n"
-" public <T> T get(Bean<T> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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 ã¯ã€ãƒ†ã‚ストをラテン語ã«ç¿»è¨³ã™ã‚‹ï¼’ã¤ç›®ã®ç°¡å˜ãªã‚µãƒ³ãƒ—ルをå«ã‚“ã§ã„ã¾"
-"ã™ã€‚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 ""
-"サンプルã«ã¯ï¼”ã¤ã®ã‚¯ãƒ©ã‚¹ãŒå˜åœ¨ã—ã¾ã™ã€‚ãã®å†…ã®æœ€åˆã®ï¼’ã¤ã¯ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚¿ã‚¤"
-"プã§ã™ã€‚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 ""
-"ã‚‚ã†ï¼‘ã¤ã¯ã€ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ãƒˆã•ã‚Œã‚‹ã“ã¨ãŒã§ãる最大数をインジェクトã™ã‚‹ã®ã«ä½¿ç”¨ã•"
-"れる使ã‚れる <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ã®ãƒžãƒƒãƒ”ン"
-"ã‚°ã‚’è¡Œã†ãƒ—レーン㪠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<"
-"Random>(){})</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<Random>(){})</"
-"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> ãƒãƒªãƒ‡ãƒ¼ãƒˆã—ã¦ã‚²ãƒ¼"
-"ムã®ï¼‘ã¤ã®ã€Œé †ç•ªã€ã‚’実行ã™ã‚‹ãŸã‚ã« <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 ""
-"最もé¢ç™½ã„箇所ã€ã‚³ãƒ¼ãƒ‰ã¯æœ€å¾Œã«ã¨ã£ã¦ãŠãã¾ã—ãŸã€‚プãƒã‚¸ã‚§ã‚¯ãƒˆã«ã¯ï¼’ã¤ã®å˜ç´”㪠"
-"Bean ã® <literal>SentenceParser</literal> ã¨<literal>TextTranslator</"
-"literal> ã¨ã€ï¼’ã¤ã®ã‚¨ãƒ³ã‚¿ãƒ¼ãƒ—ライズ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 ã¯ã€ãƒ†ã‚ストをラテン語ã«ç¿»è¨³ã™ã‚‹ï¼’ã¤ç›®ã®ç°¡å˜ãªã‚µãƒ³ãƒ—ルをå«ã‚“ã§ã„"
+#~ "ã¾ã™ã€‚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 ""
+#~ "サンプルã«ã¯ï¼”ã¤ã®ã‚¯ãƒ©ã‚¹ãŒå˜åœ¨ã—ã¾ã™ã€‚ãã®å†…ã®æœ€åˆã®ï¼’ã¤ã¯ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚¿"
+#~ "イプã§ã™ã€‚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 ""
+#~ "ã‚‚ã†ï¼‘ã¤ã¯ã€ã‚¤ãƒ³ã‚¸ã‚§ã‚¯ãƒˆã•ã‚Œã‚‹ã“ã¨ãŒã§ãる最大数をインジェクトã™ã‚‹ã®ã«ä½¿ç”¨"
+#~ "ã•ã‚Œã‚‹ä½¿ã‚れる <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"
+#~ "ã®ãƒžãƒƒãƒ”ングを行ã†ãƒ—レーン㪠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<Random>(){})"
+#~ "</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<Random>(){})</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> "
+#~ "ãƒãƒªãƒ‡ãƒ¼ãƒˆã—ã¦ã‚²ãƒ¼ãƒ ã®ï¼‘ã¤ã®ã€Œé †ç•ªã€ã‚’実行ã™ã‚‹ãŸã‚ã« <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 ""
+#~ "最もé¢ç™½ã„箇所ã€ã‚³ãƒ¼ãƒ‰ã¯æœ€å¾Œã«ã¨ã£ã¦ãŠãã¾ã—ãŸã€‚プãƒã‚¸ã‚§ã‚¯ãƒˆã«ã¯ï¼’ã¤ã®å˜ç´”"
+#~ "㪠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> ã®"
+#~ "両方ã¨ã‚‚ä¾å˜ 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—certainly the most "
+"recognized—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 — <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> — 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—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 — 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> — 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 — Web 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ã¯ã€ãれらãŒæ©Ÿèƒ½ã™ã‚‹ãŸã‚ã«æ³¨å…¥ã•ã‚ŒãŸã‚ªãƒ–ジェクトや注入箇所ã«ã¤ã„ã¦ã®æƒ…å ±ãŒå¿…è¦ã«ãªã‚Šã¾ã™ã€‚例ãˆã°ã€"
+#: 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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> — 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 — 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> — 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 — 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 — 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 — 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 — 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 — injecting them into other Web Beans, configuring them via the Web Beans XML configuration facility, even adding interceptors and decorators to them — without touching your existing code."
-msgstr "ã‚る特定ã®ã¨ã¦ã‚‚特別ãªä¾‹å¤–を除ã„ã¦ã€ãƒ‘ラメータãªã—ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’æŒã¤ã™ã¹ã¦ã® Java クラスã¯ã€Web Bean ã§ã™ã€‚ãã‚Œã¯ã™ã¹ã¦ã® JavaBean ã‚’å«ã¿ã¾ã™ã€‚ã•ã‚‰ã«ã€ã™ã¹ã¦ã® EJB 3 仕様ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ Bean ã‚‚ã€Web Bean ã§ã™ã€‚確ã‹ã«ã€æ¯Žæ—¥æ›¸ã„ã¦ã„ã‚‹ JavaBean 㨠EJB ã¯ã€Web Beans 仕様ã«ã‚ˆã£ã¦å®šç¾©ã•ã‚ŒãŸæ–°ã—ã„サービスを利用ã™ã‚‹ã“ã¨ãŒã§ãã¦ã„ã¾ã›ã‚“。ã—ã‹ã—ã€ãれらã™ã¹ã¦ã®å„々ã¯ã€— Web Beans ã® XML 構æˆæ©Ÿèƒ½ã«ã‚ˆã£ã¦æ§‹æˆã—ã€ãã—ã¦ãれらã«ã‚¤ãƒ³ã‚¿ã‚»ãƒ—ã‚¿ã¨ãƒ‡ã‚³ãƒ¬ãƒ¼ã‚¿ã‚’åŠ ãˆã‚‹ã“ã¨ã«ã‚ˆã£ã¦ —ã€ç¾å˜ã™ã‚‹ã‚³ãƒ¼ãƒ‰ã«è§¦ã‚Œã‚‹ã“ã¨ãªãã€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 "様々ãªã‚¢ãƒ—リケーションã§ä½•å¹´é–“も使ã£ã¦ã„ã‚‹ï¼’ã¤ã®æ—¢å˜ã® 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—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—"
+"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—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 クラスãŒã‚ã‚‹ã¨ä»®"
+"定ã—ã¾ã™ã€‚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 "ï¼’ã¤ç›®ã®ç¾å˜ã™ã‚‹ã‚¯ãƒ©ã‚¹ã¯ã€ï¼‘ã¤ã®è¨€èªžã‹ã‚‰ã‚‚ã†ï¼‘ã¤ã®è¨€èªžã¸ã®æ–‡ã‚’翻訳ã™ã‚‹ã“ã¨ãŒã§ãる外部システムã®ãƒ•ãƒãƒ³ãƒˆã‚¨ãƒ³ãƒ‰ã¨ãªã‚‹ã‚¹ãƒ†ãƒ¼ãƒˆãƒ¬ã‚¹ã‚»ãƒƒã‚·ãƒ§ãƒ³ 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 ã§ã™:"
#. 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 "ã‚‚ã†ï¼‘ã¤ã®æ–¹æ³•ã¨ã—ã¦ã€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 — if the <literal>SentenceTranslator</literal> EJB was not deployed — 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> ã®å®Ÿè£…ãŒãªã‘れ㰗ã€ã‚ã‚‹ã„㯠<literal>SentenceTranslator</literal> EJB ãŒãƒ‡ãƒ—ãƒã‚¤ã•ã‚Œã¦ã„ãªã‘れ㰗ã€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—if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed—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> ã®å®Ÿè£…ãŒãªã‘ã‚Œã°"
+"—ã€ã‚ã‚‹ã„㯠<literal>SentenceTranslator</literal> EJB ãŒãƒ‡ãƒ—ãƒã‚¤ã•ã‚Œã¦ã„"
+"ãªã‘れ㰗ã€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 "
+#~ "— injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them — without touching your existing code."
+#~ msgstr ""
+#~ "ã‚る特定ã®ã¨ã¦ã‚‚特別ãªä¾‹å¤–を除ã„ã¦ã€ãƒ‘ラメータãªã—ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’æŒã¤ã™"
+#~ "ã¹ã¦ã® Java クラスã¯ã€Web Bean ã§ã™ã€‚ãã‚Œã¯ã™ã¹ã¦ã® JavaBean ã‚’å«ã¿ã¾ã™ã€‚"
+#~ "ã•ã‚‰ã«ã€ã™ã¹ã¦ã® EJB 3 仕様ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ Bean ã‚‚ã€Web Bean ã§ã™ã€‚確ã‹ã«ã€æ¯Ž"
+#~ "日書ã„ã¦ã„ã‚‹ JavaBean 㨠EJB ã¯ã€Web Beans 仕様ã«ã‚ˆã£ã¦å®šç¾©ã•ã‚ŒãŸæ–°ã—ã„"
+#~ "サービスを利用ã™ã‚‹ã“ã¨ãŒã§ãã¦ã„ã¾ã›ã‚“。ã—ã‹ã—ã€ãれらã™ã¹ã¦ã®å„々ã¯ã€"
+#~ "— Web Beans ã® XML 構æˆæ©Ÿèƒ½ã«ã‚ˆã£ã¦æ§‹æˆã—ã€ãã—ã¦ãれらã«ã‚¤ãƒ³ã‚¿ã‚»ãƒ—ã‚¿"
+#~ "ã¨ãƒ‡ã‚³ãƒ¬ãƒ¼ã‚¿ã‚’åŠ ãˆã‚‹ã“ã¨ã«ã‚ˆã£ã¦ —ã€ç¾å˜ã™ã‚‹ã‚³ãƒ¼ãƒ‰ã«è§¦ã‚Œã‚‹ã“ã¨ãªãã€"
+#~ "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 ""
+#~ "ã‚‚ã†ï¼‘ã¤ã®æ–¹æ³•ã¨ã—ã¦ã€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 "コンテã‚ストä¾å˜ãƒ¢ãƒ‡ãƒ«ã®ã™ã°ã‚‰ã—ã„利点ã®ï¼‘ã¤ã«ã¯ã€ã‚¹ãƒ†ãƒ¼ãƒˆãƒ•ãƒ«ãª 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 — which are by nature not injectable, contextual objects — may also obtain references to Web Beans by injection."
-msgstr "ã™ã¹ã¦ã® Web Bean ã®ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒå¿…ãšã—ã‚‚ Web Beans ã§ã¯ãªã„ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„。サーブレットã¾ãŸã¯ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é§†å‹• Bean ã¨ã„ã£ãŸä»–ã®ã‚ªãƒ–ジェクト—生ã¾ã‚Œã¤ã注入å¯èƒ½ã§ãªãã€ã‚³ãƒ³ãƒ†ã‚ストä¾å˜ã§ã¯ã„オブジェクト— ãŒæ³¨å…¥ã«ã‚ˆã£ã¦ 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 ""
+#~ "コンテã‚ストä¾å˜ãƒ¢ãƒ‡ãƒ«ã®ã™ã°ã‚‰ã—ã„利点ã®ï¼‘ã¤ã«ã¯ã€ã‚¹ãƒ†ãƒ¼ãƒˆãƒ•ãƒ«ãª 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 — which are by nature not "
+#~ "injectable, contextual objects — may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "ã™ã¹ã¦ã® Web Bean ã®ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãŒå¿…ãšã—ã‚‚ Web Beans ã§ã¯ãªã„ã“ã¨ã«æ³¨æ„ã—"
+#~ "ã¦ãã ã•ã„。サーブレットã¾ãŸã¯ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸é§†å‹• Bean ã¨ã„ã£ãŸä»–ã®ã‚ªãƒ–ジェクト"
+#~ "—生ã¾ã‚Œã¤ã注入å¯èƒ½ã§ãªãã€ã‚³ãƒ³ãƒ†ã‚ストä¾å˜ã§ã¯ã„オブジェクト— "
+#~ "ãŒæ³¨å…¥ã«ã‚ˆã£ã¦ 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 ãŒæ˜Žç¤ºçš„ã«ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚¿ã‚¤ãƒ—ã®ã‚»ãƒƒãƒˆã‚’指定ã—ãªã‘ã‚Œã°ã€ãã‚Œã¯ï¼‘ã¤ã®ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚¿ã‚¤ãƒ— : デフォルトã®ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚¿ã‚¤ãƒ—<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 ã¯ã€ã‚‚ã—特定ã®å¥‘ç´„ã¨æº€ãŸã™ï¼‘ã¤ä»¥ä¸Šã® 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 ã«ã‚¢ãƒŽãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã‚’é©ç”¨ã—ã¾ã™ã€‚デプãƒã‚¤ãƒ¡ãƒ³ãƒˆã‚¿ã‚¤ãƒ—ã¯ã€å˜ä¸€ã®æ§‹æˆã§ï¼‘セット㮠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> を使用ã—ã¾ã™ã€‚サンプルã§ä½¿ç”¨ã™ã‚‹ï¼“ã¤ã® 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 ãŒæ˜Žç¤ºçš„ã«ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚¿ã‚¤ãƒ—ã®ã‚»ãƒƒãƒˆã‚’指定ã—ãªã‘ã‚Œã°ã€ãã‚Œ"
+#~ "ã¯ï¼‘ã¤ã®ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚¿ã‚¤ãƒ— : デフォルトã®ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚¿ã‚¤ãƒ—"
+#~ "<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 ã¯ã€ã‚‚ã—特定ã®å¥‘ç´„ã¨æº€ãŸã™ï¼‘ã¤ä»¥ä¸Šã® 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 ã«ã‚¢ãƒŽãƒ†ãƒ¼ã‚·ãƒ§ãƒ³ã‚’é©ç”¨ã—ã¾ã™ã€‚デ"
+#~ "プãƒã‚¤ãƒ¡ãƒ³ãƒˆã‚¿ã‚¤ãƒ—ã¯ã€å˜ä¸€ã®æ§‹æˆã§ï¼‘セット㮠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> ã‚’"
+#~ "使用ã—ã¾ã™ã€‚サンプルã§ä½¿ç”¨ã™ã‚‹ï¼“ã¤ã® 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> — the unqualified class name, with the first character changed to lowercase."
-msgstr "ã“ã®å ´åˆã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§åå‰ã¯ <literal>shoppingCart</literal> ã«ãªã‚Šã¾ã™— 最åˆã®æ–‡å—ã‚’å°æ–‡å—ã«å¤‰æ›ã—ãŸç„¡è³‡æ ¼ã®ã‚¯ãƒ©ã‚¹åã«ãªã‚Šã¾ã™ã€‚"
+#~ 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> — "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "ã“ã®å ´åˆã€ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆã§åå‰ã¯ <literal>shoppingCart</literal> ã«ãªã‚Šã¾ã™"
+#~ "— 最åˆã®æ–‡å—ã‚’å°æ–‡å—ã«å¤‰æ›ã—ãŸç„¡è³‡æ ¼ã®ã‚¯ãƒ©ã‚¹åã«ãªã‚Šã¾ã™ã€‚"
-#. 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 — since they are not intended to be injected into other objects — 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 ã§ã¯ãªã„ã®ã§ã—ょã†ã‹ã€‚—ãれらã¯ä»–ã®ã‚ªãƒ–ジェクトã¸æ³¨å…¥ã•ã‚Œã‚‹ã“ã¨ã‚’æ„図ã—ã¦ã„ãªã„ã®ã§ã™ãŒ— ä¾å˜æ€§æ³¨å…¥ã¨ã‚¤ãƒ³ã‚¿ã‚»ãƒ—ã‚¿ã‚’å«ã‚€ 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 — since they are not intended to be injected into "
+#~ "other objects — 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 ã§ã¯ãªã„ã®ã§ã—ょã†ã‹ã€‚—ãれらã¯ä»–ã®ã‚ªãƒ–ジェクト"
+#~ "ã¸æ³¨å…¥ã•ã‚Œã‚‹ã“ã¨ã‚’æ„図ã—ã¦ã„ãªã„ã®ã§ã™ãŒ— ä¾å˜æ€§æ³¨å…¥ã¨ã‚¤ãƒ³ã‚¿ã‚»ãƒ—ã‚¿ã‚’"
+#~ "å«ã‚€ 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—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 — so-called \"configuration by convention\" — but because there are simply no strings there to begin with!"
-msgstr "Web Beans コードã§ã‚¹ãƒˆãƒªãƒ³ã‚°ãƒ™ãƒ¼ã‚¹ã®è˜åˆ¥åã‚’èªçŸ¥ã—ã¾ã›ã‚“。上手ãªãƒ‡ãƒ•ã‚©ãƒ«ãƒ†ã‚£ãƒ³ã‚°ã‚’使ã†ã“ã¨ã§ã€—ã„ã‚ゆる\"è¦å‰‡ã«ã‚ˆã‚‹æ§‹æˆ\"—を除外ã—ã¾ã™ã€‚フレームワークãŒãã‚Œã‚‰ã‚’éš ã—ã¦ã„ã‚‹ã®ã§ã§ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€å˜ç´”ã«æ–‡å—列ãŒå˜åœ¨ã—ã¾ã›ã‚“。 "
+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—so-"
+"called \"configuration by convention\"—but because there are simply no "
+"strings there to begin with!"
+msgstr ""
+"Web Beans コードã§ã‚¹ãƒˆãƒªãƒ³ã‚°ãƒ™ãƒ¼ã‚¹ã®è˜åˆ¥åã‚’èªçŸ¥ã—ã¾ã›ã‚“。上手ãªãƒ‡ãƒ•ã‚©ãƒ«ãƒ†ã‚£"
+"ングを使ã†ã“ã¨ã§ã€—ã„ã‚ゆる\"è¦å‰‡ã«ã‚ˆã‚‹æ§‹æˆ\"—を除外ã—ã¾ã™ã€‚フレー"
+"ムワークãŒãã‚Œã‚‰ã‚’éš ã—ã¦ã„ã‚‹ã®ã§ã§ã¯ã‚ã‚Šã¾ã›ã‚“ãŒã€å˜ç´”ã«æ–‡å—列ãŒå˜åœ¨ã—ã¾ã›"
+"ん。 "
+
+#. 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ã®ï¼“ã¤ã‚ã®ãƒ†ãƒ¼ãƒžã¯<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ã®ï¼“ã¤ã‚ã®ãƒ†ãƒ¼ãƒžã¯<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)—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—<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—<literal>SessionObjectReference</literal>—"
+"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—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 — 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—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<Integer></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<"
+"Random>(){})</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><util:Date/></literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "ãŸã¨ãˆã°ã€ä»¥ä¸‹ã® XML æ–片ã®è¦ç´ <literal><util:Date/></literal> ã¯ã€ã‚¯ãƒ©ã‚¹ <literal>java.util.Date</literal> ã‚’å‚ç…§ã—ã¾ã™ã€‚"
+msgid ""
+"For example, the element <literal><util:Date/></literal> in the "
+"following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr ""
+"ãŸã¨ãˆã°ã€ä»¥ä¸‹ã® XML æ–片ã®è¦ç´ <literal><util:Date/></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><Name></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><Name></literal> エレメントã¯ã‚¹ã‚³ãƒ¼ãƒ— <literal>@Dependent</literal> ã¨ã‚¯ãƒ©ã‚¹ <literal>Name</literal> ã®å˜ç´”㪠Web Bean を宣言ã—ã¾ã™ã€‚"
+#: xml.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><Name></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><Name></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—which are by nature not "
+"injectable, contextual objects—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<Book></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<Book></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—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—an instance under the control of CDI—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—in this "
+"case an <literal>Integer</literal>—to be injected. We can even specify "
+"a qualifier—in this case <literal>@Random</literal>, a scope—"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name—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—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—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><Interceptors></literal> declaration serves for interceptors:"
-msgstr "ì´ëŸ¬í•œ 명시 사í•ì€ ë°ì½”ë ˆì´í„°ì— 대해 <literal><Interceptors></literal> 명시가 ì¸í„°ì…‰í„°ì— 대해 실행하는 것과 ë™ì¼í•œ 목ì ì„ ì‹¤í–‰í•©ë‹ˆë‹¤: "
+"<literal><interceptors></literal> declaration serves for interceptors:"
+msgstr ""
+"ì´ëŸ¬í•œ 명시 사í•ì€ ë°ì½”ë ˆì´í„°ì— 대해 <literal><Interceptors></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 — 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—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 — ì• í”Œë¦¬ì¼€ì´ì…˜ 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 — ì• í”Œë¦¬ì¼€ì´ì…˜ 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 — 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 "ì˜µì €ë²„ ë°©ì‹ì€ ì–´ë–¤ ì´ë²¤íŠ¸ ë°”ì¸ë”©ë„ ì§€ì •í• í•„ìš”ê°€ 없습니다 — ì´ëŸ¬í•œ 경우 íŠ¹ì • ìœ í˜•ì˜ <emphasis>ëª¨ë“ </emphasis> ì´ë²¤íŠ¸ì— ê´€ì‹¬ì„ ê°–ê²Œ ë©ë‹ˆë‹¤. ì´ë²¤íŠ¸ ë°”ì¸ë”©ì„ ì§€ì •í•˜ì§€ ì•Šì„ ê²½ìš°, ì´ëŸ¬í•œ ì´ë²¤íŠ¸ ë°”ì¸ë”©ì´ 있는 ì´ë²¤íŠ¸ì—만 ê´€ì‹¬ì„ ê°–ê²Œ ë©ë‹ˆë‹¤. "
+"An observer method need not specify any event qualifiers—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 ""
+"ì˜µì €ë²„ ë°©ì‹ì€ ì–´ë–¤ ì´ë²¤íŠ¸ ë°”ì¸ë”©ë„ ì§€ì •í• í•„ìš”ê°€ 없습니다 — ì´ëŸ¬í•œ 경우 "
+"íŠ¹ì • ìœ í˜•ì˜ <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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<? extends Annotation> getScopeType();\n"
-" \n"
-" public <T> T get(Bean<T> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<"
-"Random>(){})</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—certainly the most "
+"recognized—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 — <literal>ExternalPaymentProcessor</"
-"literal> or <literal>MockPaymentProcessor</literal> — to choose. Consider "
-"what happens when the manager encounters this injection point:"
-msgstr "ê´€ì‹¬ì„ ê¸°ìš¸ì´ì…¨ë‹¤ë©´, Web Bean 관리ìžê°€ ì–´ë–¤ 구현 — <literal>ExternalPaymentProcessor</literal> ë˜ëŠ” <literal>MockPaymentProcessor</literal> — ì„ ì„ íƒí• 지를 어떻게 ê²°ì •í•˜ëŠ”ì§€ì— ëŒ€í•´ ê¶ê¸ˆí•´ í•˜ì…¨ì„ ê²ƒìž…ë‹ˆë‹¤. 관리ìžê¸° ì´ëŸ¬í•œ 삽입 지ì ì— ì´ë¥´ë €ì„ ë•Œ ë¬´ì—‡ì´ ë°œìƒí• 지를 ê³ ë ¤í•©ë‹ˆë‹¤: "
+"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—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 — 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ì˜ ë°°ì¹˜ ìœ í˜•ì„ í™œì„±í™”í•˜ê³ ë°”ì¸ë”© ìœ í˜•ì„ ê°–ìŠµë‹ˆë‹¤. "
+"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> — instead we'll need to "
-"create a named subclass:"
-msgstr "ë°”ì¸ë”© ìœ í˜•ì´ ì–´ë…¸í…Œì´ì…˜ 멤버를 ê°–ì„ ê²½ìš°, <literal>AnnotationLiteral</literal>ì˜ ìž„ì˜ì˜ 하부í´ëž˜ìŠ¤ë¥¼ ì‚¬ìš©í• ìˆ˜ 없습니다 — ëŒ€ì‹ 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 — Web 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 Beans — ê°ì²´ ë˜ëŠ” ì´ëŠ” 실행 가능하게 ë˜ê¸° 위해 삽입ë˜ëŠ” 삽입 지ì ì— ê´€í•´ 알아야 합니다. 예: "
+"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 Beans — ê°ì²´ ë˜ëŠ” ì´ëŠ” 실행 가능하게 ë˜ê¸° 위해 삽입ë˜ëŠ” 삽"
+"ìž… 지ì ì— ê´€í•´ 알아야 합니다. 예: "
#. 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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> — 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 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 — 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 관리ìžê°€ ì´ë“¤ 사ì´ì—ì„œ ì„ íƒí•˜ê¸° 위해 배치 ìœ "
+#~ "형 ìš°ì„ ìˆœìœ„ë¥¼ ì‚¬ìš©í• ìˆ˜ 있습니다. <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> — instead we'll "
+#~ "need to create a named subclass:"
+#~ msgstr ""
+#~ "ë°”ì¸ë”© ìœ í˜•ì´ ì–´ë…¸í…Œì´ì…˜ 멤버를 ê°–ì„ ê²½ìš°, <literal>AnnotationLiteral</"
+#~ "literal>ì˜ ìž„ì˜ì˜ 하부í´ëž˜ìŠ¤ë¥¼ ì‚¬ìš©í• ìˆ˜ 없습니다 — ëŒ€ì‹ 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 — any Web Bean with the "
-"first interceptor binding inherits the interceptor bindings declared as meta-"
-"annotations."
-msgstr "ë‹¤í–‰ížˆë„ Web Beans는 ì´ëŸ¬í•œ ìƒëžµëœ Javaì˜ ê¸°ëŠ¥ì„ í•´ê²°í•˜ì—¬ í•˜ë‚˜ì˜ ì¸í„°ì…‰í„° ë°”ì¸ë”© ìœ í˜•ì„ ë‹¤ë¥¸ ì¸í„°ì…‰í„° ë°”ì¸ë”© ìœ í˜•ê³¼ 어노테ì´ì…˜í• 수 있습니다. ì¸í„°ì…‰í„° ë°”ì¸ë”©ì€ íŠ¸ë Œì ì…˜ 가능하여 — 첫번째 ì¸í„°ì…‰í„° ë°”ì¸ë”©ì´ 있는 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 — 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 { ... }]]>"
@@ -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 — it is determined by the order in "
-"which interceptors are listed at the class level."
-msgstr "ì¸í„°ì…‰í„° 순서는 ë¹„ì „ì—ì 입니다 — ì´ëŠ” í´ëž˜ìŠ¤ ë ˆë²¨ë¡œ ì—´ê±°ëœ ì¸í„°ì…‰í„° ìˆœì„œì— ì˜í•´ ê²°ì •ë©ë‹ˆë‹¤. "
+"the interceptor ordering is non-global — 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."
+#: 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 — injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them — without "
-"touching your existing code."
-msgstr "íŠ¹ì •í•œ 예외 ìƒí•ì—ì„œ 매개 변수가 없는 ê²ƒì„ í—ˆìš©í•˜ëŠ” ìƒì„±ìžì™€ 함께하는 ëª¨ë“ Java í´ëž˜ìŠ¤ëŠ” Web Bean으로 ì´ì—는 ëª¨ë“ JavaBeanì´ í¬í•¨ë©ë‹ˆë‹¤. ì´ì— ë”하여 ëª¨ë“ EJB 3-ìŠ¤íƒ€ì¼ ì„¸ì…˜ ë¹ˆë„ Web Bean입니다. ë¬¼ë¡ ë§¤ì¼ ìž‘ì„±í•˜ì…¨ë˜ JavaBeans ë° EJB는 Web Beans ì‚¬ì–‘ì— ì˜í•´ ì •ì˜ëœ 새로운 ì„œë¹„ìŠ¤ì˜ ìž¥ì ì„ ì·¨í• ìˆ˜ 없지만, Web Beans으로서 기존 코드를 변경하지 ì•Šê³ ì´ ëª¨ë“ ê²ƒì„ ì‚¬ìš©í•˜ì‹¤ 수 있습니다 — 기타 다른 Web Beansë¡œì˜ ì‚½ìž…, Web Beans XML ì„¤ì • ê¸°ëŠ¥ì„ í†µí•œ ì„¤ì •, ì¸í„°ì…‰í„° ë° ë°ì½”ë ˆì´í„° 추가 등— "
+"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—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—"
+"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—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 — if the <literal>SentenceTranslator</literal> EJB was not "
-"deployed — 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> êµ¬í˜„ì´ ì—†ì„ ê²½ìš° — <literal>SentenceTranslator</literal> EJBê°€ 배치ë˜ì§€ 않는 다면 — 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—if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed—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> êµ¬í˜„ì´ ì—†ì„ ê²½ìš° — "
+"<literal>SentenceTranslator</literal> EJBê°€ 배치ë˜ì§€ 않는 다면 — 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 "
+#~ "— injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them — without touching your existing code."
+#~ msgstr ""
+#~ "íŠ¹ì •í•œ 예외 ìƒí•ì—ì„œ 매개 변수가 없는 ê²ƒì„ í—ˆìš©í•˜ëŠ” ìƒì„±ìžì™€ 함께하는 모"
+#~ "ë“ Java í´ëž˜ìŠ¤ëŠ” Web Bean으로 ì´ì—는 ëª¨ë“ JavaBeanì´ í¬í•¨ë©ë‹ˆë‹¤. ì´ì— ë”하"
+#~ "ì—¬ ëª¨ë“ EJB 3-ìŠ¤íƒ€ì¼ ì„¸ì…˜ ë¹ˆë„ Web Bean입니다. ë¬¼ë¡ ë§¤ì¼ ìž‘ì„±í•˜ì…¨ë˜ "
+#~ "JavaBeans ë° EJB는 Web Beans ì‚¬ì–‘ì— ì˜í•´ ì •ì˜ëœ 새로운 ì„œë¹„ìŠ¤ì˜ ìž¥ì ì„ ì·¨"
+#~ "í• ìˆ˜ 없지만, Web Beans으로서 기존 코드를 변경하지 ì•Šê³ ì´ ëª¨ë“ ê²ƒì„ ì‚¬ìš©"
+#~ "하실 수 있습니다 — 기타 다른 Web Beansë¡œì˜ ì‚½ìž…, Web Beans XML ì„¤ì • "
+#~ "ê¸°ëŠ¥ì„ í†µí•œ ì„¤ì •, ì¸í„°ì…‰í„° ë° ë°ì½”ë ˆì´í„° 추가 등— "
-#. 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 — which are by nature not injectable, "
-"contextual objects — may also obtain references to Web Beans by injection."
-msgstr "ëª¨ë“ Web Bean í´ë¼ì´ì–¸íŠ¸ê°€ Web Beansê°€ ë 수 ì—†ìŒì— ìœ ì˜í•©ë‹ˆë‹¤. Servlets ë˜ëŠ” Message-Driven Beans와 ê°™ì€ — 본래 삽입 가능한 컨í…스트 ê°ì²´ê°€ ì•„ë‹Œ — ê°ì²´ëŠ” ì‚½ìž…ì— ì˜í•´ 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 — which are by nature not "
+#~ "injectable, contextual objects — may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "ëª¨ë“ Web Bean í´ë¼ì´ì–¸íŠ¸ê°€ Web Beansê°€ ë 수 ì—†ìŒì— ìœ ì˜í•©ë‹ˆë‹¤. Servlets "
+#~ "ë˜ëŠ” Message-Driven Beans와 ê°™ì€ — 본래 삽입 가능한 컨í…스트 ê°ì²´ê°€ "
+#~ "ì•„ë‹Œ — ê°ì²´ëŠ” ì‚½ìž…ì— ì˜í•´ 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> — the "
-"unqualified class name, with the first character changed to lowercase."
-msgstr "ì´ëŸ¬í•œ 경우, ì´ë¦„ ê¸°ë³¸ê°’ì€ <literal>shoppingCart</literal>ê°€ ë©ë‹ˆë‹¤ — 첫번째 문ìžê°€ 소문ìžë¡œ ëœ ìˆ˜ì‹ì–´ê°€ 붙지않는 í´ëž˜ìŠ¤ ì´ë¦„. "
+#~ 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> — "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "ì´ëŸ¬í•œ 경우, ì´ë¦„ ê¸°ë³¸ê°’ì€ <literal>shoppingCart</literal>ê°€ ë©ë‹ˆë‹¤ "
+#~ "— 첫번째 문ìžê°€ 소문ìžë¡œ ëœ ìˆ˜ì‹ì–´ê°€ 붙지않는 í´ëž˜ìŠ¤ ì´ë¦„. "
-#. 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 — since they are not intended to be injected into other "
-"objects — 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ì´ ì•„ë‹™ë‹ˆë‹¤ — 다른 ê°ì²´ì— 삽입ë˜ë„ë¡ ë˜ì–´ìžˆì§€ 않기 때문 — 하지만 ì´ëŠ” ì˜ì¡´ì„± 삽입 ë° ì¸í„°ì…‰í„°ë¥¼ í¬í•¨í•œ ëŒ€ë¶€ë¶„ì˜ 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 — since they are not intended to be injected into "
+#~ "other objects — 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ì´ ì•„ë‹™ë‹ˆë‹¤ — 다른 ê°ì²´ì— 삽입ë˜ë„ë¡ ë˜ì–´ìžˆì§€ 않기 때문 — "
+#~ "하지만 ì´ëŠ” ì˜ì¡´ì„± 삽입 ë° ì¸í„°ì…‰í„°ë¥¼ í¬í•¨í•œ ëŒ€ë¶€ë¶„ì˜ 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—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 — so-called \"configuration by convention\" — but because there are simply no strings there to begin with!"
-msgstr "Web Beans 코드ì—ì„œ 문ìžì—´ 기반 ì‹ë³„ìžë¥¼ 보실 수 없습니다. ê·¸ ì´ìœ 는 í”„ë ˆìž„ì›Œí¬ê°€ — \"ê´€ë¡€ì— ì˜í•œ ì„¤ì •\"ì´ë¼ê³ 부르는 — 기본값 ê·œì¹™ì„ ì‚¬ìš©í•˜ì—¬ ì´ë¥¼ ìˆ¨ê¸°ë ¤í•˜ê¸° ë•Œë¬¸ì´ ì•„ë‹ˆë¼ ì‹œìž‘í• ìˆ˜ 있는 문ìžì—´ì´ 없기 때문입니다! "
+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—so-"
+"called \"configuration by convention\"—but because there are simply no "
+"strings there to begin with!"
+msgstr ""
+"Web Beans 코드ì—ì„œ 문ìžì—´ 기반 ì‹ë³„ìžë¥¼ 보실 수 없습니다. ê·¸ ì´ìœ 는 í”„ë ˆìž„ì›Œ"
+"í¬ê°€ — \"ê´€ë¡€ì— ì˜í•œ ì„¤ì •\"ì´ë¼ê³ 부르는 — 기본값 ê·œì¹™ì„ ì‚¬ìš©í•˜"
+"ì—¬ ì´ë¥¼ ìˆ¨ê¸°ë ¤í•˜ê¸° ë•Œë¬¸ì´ ì•„ë‹ˆë¼ ì‹œìž‘í• ìˆ˜ 있는 문ìžì—´ì´ 없기 때문입니다! "
+
+#. 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)—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—<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—<literal>SessionObjectReference</literal>—"
+"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—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 — 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—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<Integer></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<"
+"Random>(){})</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><util:Date/></literal> in the "
"following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "예를 들어, 다ìŒì˜ XML ë¶€ë¶„ì— ìžˆëŠ” <literal><util:Date/></literal> 요소는 <literal>java.util.Date</literal> í´ëž˜ìŠ¤ë¥¼ 참조합니다: "
+msgstr ""
+"예를 들어, 다ìŒì˜ XML ë¶€ë¶„ì— ìžˆëŠ” <literal><util:Date/></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><Name></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><Name></literal> 요소는 초기화 ì˜ì—ê°’ ì„¤ì •ê³¼ 함께 <literal>@Dependent</literal> ë²”ìœ„ì˜ ì‹¬í”Œ Web Bean ë° <literal>Name</literal> í´ëž˜ìŠ¤ë¥¼ 명시합니다. Web Beanì€ íŠ¹ì •í•œ 컨테ì´ë„ˆ ìƒì„± ë°”ì¸ë”©ì´ 있으므로 ëª…ì‹œëœ íŠ¹ì • 삽입 지ì ì—만 ì‚½ìž…í• ìˆ˜ 있습니다. "
+"The <literal><Name></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><Name></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—which are by nature not "
+"injectable, contextual objects—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<Book></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<Book></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—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—an instance under the control of CDI—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—in this "
+"case an <literal>Integer</literal>—to be injected. We can even specify "
+"a qualifier—in this case <literal>@Random</literal>, a scope—"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name—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—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—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><Interceptors></literal> declaration serves for interceptors:"
+"<literal><interceptors></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 — 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—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 — in this case "
+"An observer method need not specify any event qualifiers—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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<? extends Annotation> getScopeType();\n"
-" \n"
-" public <T> T get(Bean<T> 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<"
-"Random>(){})</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—certainly the most "
+"recognized—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 — "
-"<literal>ExternalPaymentProcessor</literal> or "
-"<literal>MockPaymentProcessor</literal> — 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—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 — 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> — 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 — Web 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:"
+"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 — 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 — 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 — it is determined by the order "
+"the interceptor ordering is non-global — 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 — injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them — 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—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—"
+"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—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 "
-"— if the <literal>SentenceTranslator</literal> EJB was not deployed "
-"— 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 — which are by nature not injectable, "
-"contextual objects — 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> — "
-"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 — since they are not intended to be injected into other objects "
-"— 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—if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed—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—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 — so-"
-"called \"configuration by convention\" — 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—so-"
+"called \"configuration by convention\"—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)—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—<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—<literal>SessionObjectReference</literal>—"
+"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—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 — 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—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<Integer></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<"
+"Random>(){})</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><util:Date/></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><Name></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><Name></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—which are by nature not "
+"injectable, contextual objects—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<Book></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<Book></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—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—an instance under the control of CDI—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—in this "
+"case an <literal>Integer</literal>—to be injected. We can even specify "
+"a qualifier—in this case <literal>@Random</literal>, a scope—"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name—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—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—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><Interceptors></literal> declaration serves for interceptors:"
-msgstr "Essa declaração tem o mesmo propósito para decoradores que a <literal><Interceptors></literal> tem para os interceptadores:"
+#: decorators.xml:113
+#, fuzzy, no-c-format
+msgid ""
+"This declaration serves the same purpose for decorators that the "
+"<literal><interceptors></literal> declaration serves for interceptors:"
+msgstr ""
+"Essa declaração tem o mesmo propósito para decoradores que a <literal><"
+"Interceptors></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 — 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 — 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—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 — 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 — 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 — 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—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 "
+"— 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<? extends Annotation> getScopeType();\n"
-" \n"
-" public <T> T get(Bean<T> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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>) ."
#. 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<Random>(){})</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<Random>(){})</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>) ."
+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<Random>(){})"
+#~ "</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<Random>(){})"
+#~ "</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—certainly the most "
+"recognized—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 — <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> — 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—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 — 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> — 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 — Web 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:"
+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 — 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 — 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 — it is determined by the order in which interceptors are listed at the class level."
+msgid ""
+"the interceptor ordering is non-global — 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 — injecting them into other Web Beans, configuring them via the Web Beans XML configuration facility, even adding interceptors and decorators to them — 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 — 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—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—"
+"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—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 — if the <literal>SentenceTranslator</literal> EJB was not deployed — 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 — which are by nature not injectable, contextual objects — 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 — que são, por natureza, não injetável, objetos contextuais — 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—if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed—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 "
+#~ "— injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them — 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 "
+#~ "— 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 — which are by nature not "
+#~ "injectable, contextual objects — 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 — que são, por "
+#~ "natureza, não injetável, objetos contextuais — 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> — the unqualified class name, with the first character changed to lowercase."
-msgstr "Neste caso, o nome fica <literal>shoppingCart</literal> — 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> — "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "Neste caso, o nome fica <literal>shoppingCart</literal> — 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 — since they are not intended to be injected into other objects — 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—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 — so-called \"configuration by convention\" — 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 — 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—so-"
+"called \"configuration by convention\"—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 — 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)—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—<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—<literal>SessionObjectReference</literal>—"
+"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—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 — 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—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<Integer></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<"
+"Random>(){})</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><util:Date/></literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "Por exemplo, o elemento <literal><util:Date/></literal> no seguinte fragmento XML refere-se à classe <literal>java.util.Date</literal>:"
+msgid ""
+"For example, the element <literal><util:Date/></literal> in the "
+"following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr ""
+"Por exemplo, o elemento <literal><util:Date/></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><Name></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><Name></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><Name></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><Name></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—which are by nature not "
+"injectable, contextual objects—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<Book></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<Book></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—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—an instance under the control of CDI—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—in this "
+"case an <literal>Integer</literal>—to be injected. We can even specify "
+"a qualifier—in this case <literal>@Random</literal>, a scope—"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name—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—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—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><Interceptors></literal> declaration serves for interceptors:"
-msgstr "这个声明对于装饰器æ¥è¯´å’Œ<literal><Interceptors></literal>声明对于拦截器æ¥è¯´æ˜¯ä¸€æ ·çš„:"
+#: decorators.xml:113
+#, fuzzy, no-c-format
+msgid ""
+"This declaration serves the same purpose for decorators that the "
+"<literal><interceptors></literal> declaration serves for interceptors:"
+msgstr ""
+"这个声明对于装饰器æ¥è¯´å’Œ<literal><Interceptors></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 — 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—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 ""
+#~ "这里需è¦æ³¨æ„的一个é™åˆ¶æ˜¯ï¼šç®€å•çš„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 — 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 "ä¸€ä¸ªè§‚å¯Ÿè€…æ–¹æ³•æ— é¡»æŒ‡å®šä¸€ä¸ªäº‹ä»¶ç»‘å®š — 在这ç§æƒ…况下,它对一个特定类型的 <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—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 ""
+"ä¸€ä¸ªè§‚å¯Ÿè€…æ–¹æ³•æ— é¡»æŒ‡å®šä¸€ä¸ªäº‹ä»¶ç»‘å®š — 在这ç§æƒ…况下,它对一个特定类型的 "
+"<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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<? extends Annotation> getScopeType();\n"
-" \n"
-" public <T> T get(Bean<T> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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—certainly the most "
+"recognized—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 — <literal>ExternalPaymentProcessor</literal> or <literal>MockPaymentProcessor</literal> — 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 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—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 — 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共享一个绑定类型并且拥有相åŒéƒ¨ç½²ç±»åž‹çš„时候æ‰ä¼šæŠ›å‡º <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> — 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 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 — Web 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 — 需è¦çŸ¥é“它们所注入的对象或者注入点的信æ¯ï¼Œä»¥ä¾¿èƒ½å¤Ÿå®žçŽ°å…¶åŠŸèƒ½ã€‚例如:"
+#: 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."
+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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> — 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 ""
+#~ "现在有两个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 — 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共享一个绑定类型并且拥有相åŒéƒ¨ç½²ç±»åž‹çš„时候æ‰ä¼šæŠ›å‡º "
+#~ "<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> — 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 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 — 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 — 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 +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 — 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 — 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."
+#: 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 — injecting them into other Web Beans, configuring them via the Web Beans XML configuration facility, even adding interceptors and decorators to them — 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—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—"
+"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—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 — if the <literal>SentenceTranslator</literal> EJB was not deployed — 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>实现—如果<literal>SentenceTranslator</literal> EJB没有被部署—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—if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed—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>实现—如果"
+"<literal>SentenceTranslator</literal> EJB没有被部署—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 "
+#~ "— injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them — 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 — which are by nature not injectable, contextual objects — may also obtain references to Web Beans by injection."
-msgstr "需è¦æ³¨æ„的是并éžæ‰€æœ‰çš„Web Bean的客户端都是Web Bean。其他对象诸如Servlet或者消æ¯é©±åŠ¨Bean#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 — which are by nature not "
+#~ "injectable, contextual objects — may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "需è¦æ³¨æ„的是并éžæ‰€æœ‰çš„Web Bean的客户端都是Web Bean。其他对象诸如Servlet或"
+#~ "者消æ¯é©±åŠ¨Bean#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> — the unqualified class name, with the first character changed to lowercase."
-msgstr "在这ç§æƒ…况下,Web Beançš„åå—默认为<literal>shoppingCart</literal>—éžå®Œæ•´çš„ç±»å,首å—æ¯æ”¹ä¸ºå°å†™"
+#~ 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> — "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "在这ç§æƒ…况下,Web Beançš„åå—默认为<literal>shoppingCart</literal>—éž"
+#~ "完整的类å,首å—æ¯æ”¹ä¸ºå°å†™"
-#. 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 — since they are not intended to be injected into other objects — 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;但是它们å¯ä»¥ä½¿ç”¨å¤§éƒ¨åˆ†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 — since they are not intended to be injected into "
+#~ "other objects — 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;但是它们å¯ä»¥ä½¿ç”¨å¤§éƒ¨åˆ†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—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 — so-called \"configuration by convention\" — but because there are simply no strings there to begin with!"
-msgstr "在Web Bean代ç ä¸ï¼Œä½ ä¸ä¼šçœ‹åˆ°åŸºäºŽå—ç¬¦ä¸²çš„æ ‡è¯†ç¬¦ã€‚è¿™ä¸æ˜¯å› 为这个框架使用智能默认规则 — 也å«\"按惯例é…ç½®\" — 将它们éšè—èµ·æ¥ï¼Œè¿™æ˜¯å› 为从开始就没有任何å—符串ï¼"
+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—so-"
+"called \"configuration by convention\"—but because there are simply no "
+"strings there to begin with!"
+msgstr ""
+"在Web Bean代ç ä¸ï¼Œä½ ä¸ä¼šçœ‹åˆ°åŸºäºŽå—ç¬¦ä¸²çš„æ ‡è¯†ç¬¦ã€‚è¿™ä¸æ˜¯å› 为这个框架使用智能默"
+"认规则 — 也å«\"按惯例é…ç½®\" — 将它们éšè—èµ·æ¥ï¼Œè¿™æ˜¯å› 为从开始就没有"
+"任何å—符串ï¼"
+
+#. 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)—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—<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—<literal>SessionObjectReference</literal>—"
+"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—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 — 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—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管ç†å™¨çš„å®žçŽ°å°†æ ¹æ®è¶…æ—¶—设置自动的完æˆ"
@@ -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<Integer></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<"
+"Random>(){})</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><util:Date/></literal> in the following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "例如, 在下é¢çš„XML片段ä¸çš„å…ƒç´ <literal><util:Date/></literal>指的是 <literal>java.util.Date</literal> 类:"
+msgid ""
+"For example, the element <literal><util:Date/></literal> in the "
+"following XML fragment refers to the class <literal>java.util.Date</literal>:"
+msgstr ""
+"例如, 在下é¢çš„XML片段ä¸çš„å…ƒç´ <literal><util:Date/></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><Name></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><Name></literal> å…ƒç´ å£°æ˜Žäº†ä¸€ä¸ªèŒƒå›´ä¸º <literal>@Dependent</literal> ,类为 <literal>Name</literal> 的一个简å•çš„Web Bean,并且设置了一套åˆå§‹çš„域值。这个Web Bean有一个特殊的,容器生æˆçš„ç»‘å®šï¼Œå› æ¤åªèƒ½åœ¨å®ƒå£°æ˜Žçš„特定注入点被注入。"
+#: xml.xml:125
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><Name></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><Name></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—which are by nature not "
+"injectable, contextual objects—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<Book></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<Book></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—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—an instance under the control of CDI—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—in this "
+"case an <literal>Integer</literal>—to be injected. We can even specify "
+"a qualifier—in this case <literal>@Random</literal>, a scope—"
+"which in this case defaults to <literal>@Dependent</literal>, and an EL "
+"name—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—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—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><Interceptors></literal> declaration serves for interceptors:"
-msgstr "æ¤å®£å‘Šï¼ˆdeclaration)å°æ–¼è£é£¾å™¨çš„目的和 <literal><Interceptors></literal> 宣告å°æ–¼æ””截器的目的是相åŒçš„:"
+"<literal><interceptors></literal> declaration serves for interceptors:"
+msgstr ""
+"æ¤å®£å‘Šï¼ˆdeclaration)å°æ–¼è£é£¾å™¨çš„目的和 <literal><Interceptors></"
+"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 — 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 — ä¸ï¼Œæ‡‰ç”¨ç¨‹å¼ 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—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 — ä¸ï¼Œæ‡‰ç”¨ç¨‹å¼ 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 — 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 ä¸éœ€è¦æŒ‡å®šä»»ä½•çš„事件ç¶å®š — 在æ¤æƒ…æ³ä¸‹å®ƒæœƒå°ˆæ³¨æ–¼ç‰¹å®š type çš„<emphasis>所有</emphasis>事件。若它指定了事件ç¶å®šçš„話,它就åªæœƒå°ˆæ³¨æ–¼ä¹Ÿå…·æœ‰é€™äº›äº‹ä»¶ç¶å®šçš„事件。"
+"An observer method need not specify any event qualifiers—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 ä¸éœ€è¦æŒ‡å®šä»»ä½•çš„事件ç¶å®š — 在æ¤æƒ…æ³ä¸‹å®ƒæœƒå°ˆæ³¨æ–¼ç‰¹"
+"定 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
-" public abstract Set<Annotation> getBindingTypes();\n"
-" public abstract Class<? extends Annotation> getScopeType();\n"
-" public abstract Class<? extends Annotation> 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<? extends Annotation> getScopeType();\n"
-" \n"
-" public <T> T get(Bean<T> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<T> {\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<Class> getTypes();\n"
+#~ " public abstract Set<Annotation> getBindingTypes();\n"
+#~ " public abstract Class<? extends Annotation> getScopeType();\n"
+#~ " public abstract Class<? extends Annotation> 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<"
-"Random>(){})</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—certainly the most "
+"recognized—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 — <literal>ExternalPaymentProcessor</"
-"literal> or <literal>MockPaymentProcessor</literal> — 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 管ç†å“¡å¦‚ä½•æ±ºå®šå“ªå€‹å¯¦åš — <literal>ExternalPaymentProcessor</"
-"literal> å’Œ <literal>MockPaymentProcessor</literal> — ä¸é¸æ“‡å“ªä¸€å€‹ã€‚è«‹æ€è€ƒç•¶ç®¡ç†å“¡é‡ä¸Šäº†é€™å€‹æ³¨å…¥é»žæ™‚會如何:"
+"一個已注入的 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—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 — 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 çš„ 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> — instead we'll need to "
-"create a named subclass:"
-msgstr "è‹¥ç¶å®šé¡žåž‹æœ‰å€‹æ¨™è¨˜æˆå“¡ï¼Œæˆ‘們便無法使用 <literal>AnnotationLiteral</literal> 的一個匿å subclass — 我們需è¦å»ºç«‹ä¸€å€‹æœ‰å‘½åçš„ 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 — Web 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> 這個 scope çš„ Web Bean — 需è¦çŸ¥é“有關於物件或是它們被注入的注入點相關資訊æ‰èƒ½é€²è¡Œå®ƒå€‘本應進行的工作。比方說:"
+"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> 這個 scope çš„ "
+"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 "
@@ -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 — "
+#~ "<literal>ExternalPaymentProcessor</literal> or "
+#~ "<literal>MockPaymentProcessor</literal> — 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 ""
+#~ "有兩個 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 — 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 çš„ 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> — instead we'll "
+#~ "need to create a named subclass:"
+#~ msgstr ""
+#~ "è‹¥ç¶å®šé¡žåž‹æœ‰å€‹æ¨™è¨˜æˆå“¡ï¼Œæˆ‘們便無法使用 <literal>AnnotationLiteral</"
+#~ "literal> 的一個匿å subclass — 我們需è¦å»ºç«‹ä¸€å€‹æœ‰å‘½åçš„ 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 — any Web Bean with the "
-"first interceptor binding inherits the interceptor bindings declared as meta-"
-"annotations."
-msgstr "幸é‹çš„是,Web Bean 有方法來解決 Java æ‰€ç¼ºå°‘çš„é€™é …åŠŸèƒ½ä¸Šçš„å•é¡Œã€‚我們å¯åˆ©ç”¨å…¶å®ƒæ””截器ç¶å®šé¡žåž‹ä¾†æ¨™è¨˜æŸå€‹æ””截器ç¶å®šé¡žåž‹ã€‚攔截器ç¶å®šç‚ºå¯è½‰è®Šçš„ — 任何å«æœ‰ç¬¬ä¸€å€‹æ””截器ç¶å®šçš„ 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 — any bean with the first interceptor binding inherits "
+"the interceptor bindings declared as meta-annotations."
+msgstr ""
+"幸é‹çš„是,Web Bean 有方法來解決 Java æ‰€ç¼ºå°‘çš„é€™é …åŠŸèƒ½ä¸Šçš„å•é¡Œã€‚我們å¯åˆ©ç”¨å…¶å®ƒ"
+"攔截器ç¶å®šé¡žåž‹ä¾†æ¨™è¨˜æŸå€‹æ””截器ç¶å®šé¡žåž‹ã€‚攔截器ç¶å®šç‚ºå¯è½‰è®Šçš„ — 任何å«æœ‰"
+"第一個攔截器ç¶å®šçš„ 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 — it is determined by the order in "
-"which interceptors are listed at the class level."
-msgstr "æ””æˆªå™¨çš„é †åºæœƒæ˜¯éžå…¨åŸŸæ€§çš„ — 會由攔截器被列於 class å±¤ç´šçš„é †åºä¾†å–決。"
+"the interceptor ordering is non-global — it is determined by the order "
+"in which interceptors are listed at the class level."
+msgstr ""
+"æ””æˆªå™¨çš„é †åºæœƒæ˜¯éžå…¨åŸŸæ€§çš„ — 會由攔截器被列於 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 — injecting them "
-"into other Web Beans, configuring them via the Web Beans XML configuration "
-"facility, even adding interceptors and decorators to them — 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 來使用 — 將它們注入其它 Web Bean ä¸ï¼Œé€éŽ Web Bean XML é…置功能來é…ç½®å®ƒå€‘ï¼Œç”šè‡³æ˜¯åŠ å…¥æ””æˆªå™¨ï¼ˆinterceptor)與è£é£¾å™¨ï¼ˆdecorator) — ç„¡é ˆè®Šå‹•åˆ°æ‚¨ç¾æœ‰çš„程å¼ç¢¼ã€‚"
+"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—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—"
+"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—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 — if the <literal>SentenceTranslator</literal> EJB was not "
-"deployed — 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> å¯¦åš — è‹¥ <literal>SentenceTranslator</literal> EJB 沒有被建置 — 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—if the "
+"<literal>SentenceTranslator</literal> EJB was not deployed—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> å¯¦åš "
+"— è‹¥ <literal>SentenceTranslator</literal> EJB 沒有被建置 — 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 "
+#~ "— injecting them into other Web Beans, configuring them via the Web "
+#~ "Beans XML configuration facility, even adding interceptors and decorators "
+#~ "to them — 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 來使用 — 將它們注入其它 Web Bean ä¸ï¼Œé€éŽ Web "
+#~ "Bean XML é…置功能來é…ç½®å®ƒå€‘ï¼Œç”šè‡³æ˜¯åŠ å…¥æ””æˆªå™¨ï¼ˆinterceptor)與è£é£¾å™¨"
+#~ "(decorator) — ç„¡é ˆè®Šå‹•åˆ°æ‚¨ç¾æœ‰çš„程å¼ç¢¼ã€‚"
-#. 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 — which are by nature not injectable, "
-"contextual objects — may also obtain references to Web Beans by injection."
-msgstr "請注æ„,並éžæ‰€æœ‰ Web Bean 的客戶端都是 Web Bean。åƒæ˜¯ Servlet 或訊æ¯å°Žå‘çš„ Bean 之類的其它物件 — 無法被注入,並屬於 contextual object — 也能é€éŽæ³¨å…¥ä¾†å–å¾— 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 — which are by nature not "
+#~ "injectable, contextual objects — may also obtain references to Web "
+#~ "Beans by injection."
+#~ msgstr ""
+#~ "請注æ„,並éžæ‰€æœ‰ Web Bean 的客戶端都是 Web Bean。åƒæ˜¯ Servlet 或訊æ¯å°Žå‘"
+#~ "çš„ Bean 之類的其它物件 — 無法被注入,並屬於 contextual object — "
+#~ "也能é€éŽæ³¨å…¥ä¾†å–å¾— 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> — the "
-"unqualified class name, with the first character changed to lowercase."
-msgstr "在æ¤æƒ…æ³ä¸‹ï¼Œå稱將被é è¨ç‚º <literal>shoppingCart</literal> — 這是個ä¸å®Œæ•´çš„ 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> — "
+#~ "the unqualified class name, with the first character changed to lowercase."
+#~ msgstr ""
+#~ "在æ¤æƒ…æ³ä¸‹ï¼Œå稱將被é è¨ç‚º <literal>shoppingCart</literal> — 這是個ä¸"
+#~ "完整的 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 — since they are not intended to be injected into other "
-"objects — 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 — å› ç‚ºå®ƒå€‘ä¸æœƒè¢«æ³¨å…¥å…¶å®ƒçš„ç‰©ä»¶ä¸ — ä¸éŽå®ƒå€‘èƒ½å¤ æœ‰æ•ˆåˆ©ç”¨ 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 — since they are not intended to be injected into "
+#~ "other objects — 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 "
+#~ "— å› ç‚ºå®ƒå€‘ä¸æœƒè¢«æ³¨å…¥å…¶å®ƒçš„ç‰©ä»¶ä¸ — ä¸éŽå®ƒå€‘èƒ½å¤ æœ‰æ•ˆåˆ©ç”¨ 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—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 — so-"
-"called \"configuration by convention\" — 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—so-"
+"called \"configuration by convention\"—but because there are simply no "
"strings there to begin with!"
-msgstr "您在 Web Bean 的程å¼ç¢¼ä¸ä¸æœƒçœ‹è¦‹åŸºæ–¼å—串的è˜åˆ¥ç¬¦è™Ÿï¼Œé€™ä¸æ˜¯å› 為 framework é€éŽä½¿ç”¨é è¨çš„è¦å‰‡ä¾†å°‡å®ƒéš±è—起來 — åˆç¨±ç‚ºã€Œconfiguration by convention〠— è€Œæ˜¯å› ç‚ºä¸€é–‹å§‹æ ¹æœ¬å°±æ²’æœ‰ä»»ä½•å—串ï¼"
+msgstr ""
+"您在 Web Bean 的程å¼ç¢¼ä¸ä¸æœƒçœ‹è¦‹åŸºæ–¼å—串的è˜åˆ¥ç¬¦è™Ÿï¼Œé€™ä¸æ˜¯å› 為 framework é€éŽ"
+"使用é è¨çš„è¦å‰‡ä¾†å°‡å®ƒéš±è—起來 — åˆç¨±ç‚ºã€Œconfiguration by convention〠"
+"— è€Œæ˜¯å› ç‚ºä¸€é–‹å§‹æ ¹æœ¬å°±æ²’æœ‰ä»»ä½•å—串ï¼"
#. 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)—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—<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—<literal>SessionObjectReference</literal>—"
+"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—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 — 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—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 來這麼作 — "
@@ -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<Integer></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<"
+"Random>(){})</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><util:Date/></literal> in the "
"following XML fragment refers to the class <literal>java.util.Date</literal>:"
-msgstr "比方說,下列這段 XML ä¸çš„ <literal><util:Date/></literal> è¦ç´ 代表 <literal>java.util.Date</literal> 這個 class:"
+msgstr ""
+"比方說,下列這段 XML ä¸çš„ <literal><util:Date/></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><Name></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><Name></literal> 這個è¦ç´ 能é€éŽä½¿ç”¨ä¸€çµ„åˆå§‹æ¬„ä½å€¼ä¾†å®£å‘Š <literal>@Dependent</literal> 這個 scope ä»¥åŠ <literal>Name</literal> class 的基本 Web Bean。"
+"The <literal><Name></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><Name></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