[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 ""
-"ãµã³ãã«ã«ã¯ï¼ã¤ã®ã¯ã©ã¹ãåå¨ãã¾ãããã®å
ã®æåã®ï¼ã¤ã¯ãã¤ã³ãã£ã³ã°ã¿ã¤"
-"ãã§ããï¼ã¤ã¯ãã©ã³ãã ãªæ°åãã¤ã³ã¸ã§ã¯ãããã®ã«ä½¿ç¨ããã "
-"<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 è¦ç´ ã¨ãã¥ã¼ã³ã³ãã¼ãã³ãã¨ã®ï¼å¯¾ï¼ã®ãããã³"
-"ã°ãè¡ããã¬ã¼ã³ãª 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 ""
+#~ "ãµã³ãã«ã«ã¯ï¼ã¤ã®ã¯ã©ã¹ãåå¨ãã¾ãããã®å
ã®æåã®ï¼ã¤ã¯ãã¤ã³ãã£ã³ã°ã¿"
+#~ "ã¤ãã§ããï¼ã¤ã¯ãã©ã³ãã ãªæ°åãã¤ã³ã¸ã§ã¯ãããã®ã«ä½¿ç¨ããã "
+#~ "<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 è¦ç´ ã¨ãã¥ã¼ã³ã³ãã¼ãã³ãã¨ã®ï¼å¯¾ï¼"
+#~ "ã®ãããã³ã°ãè¡ããã¬ã¼ã³ãª 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 ã¯ã©ã¹ãããã¨ä»®å®ãã¾ããï¼ã¤ç®ã®ã¯ã©ã¹ã¯ãæã®ãªã¹ãã¸æååã«æ§æ解æãã¾ã:"
+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 +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> ãã¹ãã¼ãã¾ããããï¼ã¤ä»¥ä¸ã® <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> ãã¹ãã¼ãã¾ããããï¼ã¤ä»¥"
+"ä¸ã® <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 "ï¼ã¤ã® 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 ""
+#~ "ï¼ã¤ã® 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