[weld-commits] Weld SVN: r5381 - in doc/trunk/reference: es-ES and 8 other directories.
weld-commits at lists.jboss.org
weld-commits at lists.jboss.org
Wed Jan 6 07:21:29 EST 2010
Author: pete.muir at jboss.org
Date: 2010-01-06 07:21:25 -0500 (Wed, 06 Jan 2010)
New Revision: 5381
Modified:
doc/trunk/reference/de-DE/beans.po
doc/trunk/reference/de-DE/dependencies.po
doc/trunk/reference/de-DE/ee.po
doc/trunk/reference/de-DE/environments.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/next.po
doc/trunk/reference/de-DE/part1.po
doc/trunk/reference/de-DE/producermethods.po
doc/trunk/reference/de-DE/resources.po
doc/trunk/reference/de-DE/ri-spi.po
doc/trunk/reference/de-DE/scopescontexts.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/ee.po
doc/trunk/reference/es-ES/environments.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/next.po
doc/trunk/reference/es-ES/part1.po
doc/trunk/reference/es-ES/producermethods.po
doc/trunk/reference/es-ES/resources.po
doc/trunk/reference/es-ES/ri-spi.po
doc/trunk/reference/es-ES/scopescontexts.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/ee.po
doc/trunk/reference/fr-FR/environments.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/next.po
doc/trunk/reference/fr-FR/part1.po
doc/trunk/reference/fr-FR/producermethods.po
doc/trunk/reference/fr-FR/resources.po
doc/trunk/reference/fr-FR/ri-spi.po
doc/trunk/reference/fr-FR/scopescontexts.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/ee.po
doc/trunk/reference/it-IT/environments.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/next.po
doc/trunk/reference/it-IT/part1.po
doc/trunk/reference/it-IT/producermethods.po
doc/trunk/reference/it-IT/resources.po
doc/trunk/reference/it-IT/ri-spi.po
doc/trunk/reference/it-IT/scopescontexts.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/ee.po
doc/trunk/reference/ja-JP/environments.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/next.po
doc/trunk/reference/ja-JP/part1.po
doc/trunk/reference/ja-JP/producermethods.po
doc/trunk/reference/ja-JP/resources.po
doc/trunk/reference/ja-JP/ri-spi.po
doc/trunk/reference/ja-JP/scopescontexts.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/ee.po
doc/trunk/reference/ko-KR/environments.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/next.po
doc/trunk/reference/ko-KR/part1.po
doc/trunk/reference/ko-KR/producermethods.po
doc/trunk/reference/ko-KR/resources.po
doc/trunk/reference/ko-KR/ri-spi.po
doc/trunk/reference/ko-KR/scopescontexts.po
doc/trunk/reference/ko-KR/weldexamples.po
doc/trunk/reference/pot/Author_Group.pot
doc/trunk/reference/pot/Book_Info.pot
doc/trunk/reference/pot/beans.pot
doc/trunk/reference/pot/decorators.pot
doc/trunk/reference/pot/dependencies.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/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/resources.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/weldexamples.pot
doc/trunk/reference/pot/xml.pot
doc/trunk/reference/pt-BR/beans.po
doc/trunk/reference/pt-BR/dependencies.po
doc/trunk/reference/pt-BR/ee.po
doc/trunk/reference/pt-BR/environments.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/next.po
doc/trunk/reference/pt-BR/part1.po
doc/trunk/reference/pt-BR/producermethods.po
doc/trunk/reference/pt-BR/resources.po
doc/trunk/reference/pt-BR/ri-spi.po
doc/trunk/reference/pt-BR/scopescontexts.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/ee.po
doc/trunk/reference/zh-CN/environments.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/next.po
doc/trunk/reference/zh-CN/part1.po
doc/trunk/reference/zh-CN/producermethods.po
doc/trunk/reference/zh-CN/resources.po
doc/trunk/reference/zh-CN/ri-spi.po
doc/trunk/reference/zh-CN/scopescontexts.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/ee.po
doc/trunk/reference/zh-TW/environments.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/next.po
doc/trunk/reference/zh-TW/part1.po
doc/trunk/reference/zh-TW/producermethods.po
doc/trunk/reference/zh-TW/resources.po
doc/trunk/reference/zh-TW/ri-spi.po
doc/trunk/reference/zh-TW/scopescontexts.po
doc/trunk/reference/zh-TW/weldexamples.po
Log:
update po/pot
Modified: doc/trunk/reference/de-DE/beans.po
===================================================================
--- doc/trunk/reference/de-DE/beans.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/beans.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -484,14 +484,14 @@
#, 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."
+"context until the context is destroyed. There is no way to manually remove a "
+"bean from a context. If you don't want the bean to sit in the session "
+"indefinitely, consider using another scope with a shorted lifespan, such as "
+"the request or conversation scope."
msgstr ""
#. Tag: para
-#: beans.xml:272
+#: beans.xml:273
#, no-c-format
msgid ""
"If a scope is not explicitly specified, then the bean belongs to a special "
@@ -501,19 +501,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:278
+#: beans.xml:279
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:283
+#: beans.xml:284
#, no-c-format
msgid "EL name"
msgstr ""
#. Tag: para
-#: beans.xml:285
+#: beans.xml:286
#, no-c-format
msgid ""
"If you want to reference a bean in non-Java code that supports Unified EL "
@@ -522,7 +522,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:290
+#: beans.xml:291
#, no-c-format
msgid ""
"The EL name is specified using the <literal>@Named</literal> annotation, as "
@@ -530,7 +530,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:294
+#: beans.xml:295
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
@@ -538,13 +538,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:296
+#: beans.xml:297
#, no-c-format
msgid "Now we can easily use the bean in any JSF or JSP page:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:298
+#: beans.xml:299
#, no-c-format
msgid ""
"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
@@ -553,7 +553,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:301
+#: beans.xml:302
#, no-c-format
msgid ""
"The <literal>@Named</literal> annotation is not what makes the class a bean. "
@@ -563,7 +563,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:308
+#: beans.xml:309
#, no-c-format
msgid ""
"We can let CDI choose a name for us by leaving off the value of the "
@@ -571,7 +571,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:312
+#: beans.xml:313
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named\n"
@@ -579,7 +579,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:314
+#: beans.xml:315
#, no-c-format
msgid ""
"The name defaults to the unqualified class name, decapitalized; in this "
@@ -587,13 +587,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:324
+#: beans.xml:325
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: beans.xml:326
+#: beans.xml:327
#, no-c-format
msgid ""
"We've already seen how qualifiers let us choose between multiple "
@@ -606,7 +606,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:334
+#: beans.xml:335
#, no-c-format
msgid ""
"<![CDATA[public @Alternative\n"
@@ -614,33 +614,33 @@
msgstr ""
#. Tag: para
-#: beans.xml:336
+#: beans.xml:337
#, 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 "
+"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
+#: beans.xml:345
#, no-c-format
msgid ""
"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:351
+#: beans.xml:352
#, no-c-format
msgid "Interceptor binding types"
msgstr ""
#. Tag: para
-#: beans.xml:353
+#: beans.xml:354
#, no-c-format
msgid ""
"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
@@ -651,7 +651,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:360
+#: beans.xml:361
#, no-c-format
msgid ""
"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
@@ -668,7 +668,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:371
+#: beans.xml:372
#, no-c-format
msgid ""
"CDI provides a new approach to binding interceptors to beans that introduces "
@@ -678,7 +678,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:377
+#: beans.xml:378
#, no-c-format
msgid ""
"An interceptor binding type is a user-defined annotation that is itself "
@@ -688,7 +688,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:382
+#: beans.xml:383
#, no-c-format
msgid ""
"<![CDATA[@InterceptorBinding\n"
@@ -699,7 +699,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:384
+#: beans.xml:385
#, no-c-format
msgid ""
"The interceptor that implements transaction management declares this "
@@ -707,7 +707,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:388
+#: beans.xml:389
#, no-c-format
msgid ""
"<![CDATA[public @Transactional @Interceptor\n"
@@ -715,7 +715,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:390
+#: beans.xml:391
#, no-c-format
msgid ""
"We can apply the interceptor to a bean by annotating the bean class with the "
@@ -723,7 +723,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:394
+#: beans.xml:395
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Transactional\n"
@@ -731,7 +731,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:396
+#: beans.xml:397
#, no-c-format
msgid ""
"Notice that <literal>ShoppingCart</literal> and "
@@ -740,18 +740,18 @@
msgstr ""
#. Tag: para
-#: beans.xml:401
+#: beans.xml:402
#, 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 "
+"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
+#: beans.xml:409
#, no-c-format
msgid ""
"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
@@ -759,13 +759,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:418
+#: beans.xml:419
#, no-c-format
msgid "What kinds of classes are beans?"
msgstr ""
#. Tag: para
-#: beans.xml:420
+#: beans.xml:421
#, no-c-format
msgid ""
"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
@@ -774,13 +774,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:427
+#: beans.xml:428
#, no-c-format
msgid "Managed beans"
msgstr ""
#. Tag: para
-#: beans.xml:429
+#: beans.xml:430
#, no-c-format
msgid ""
"A managed bean is a Java class. The basic lifecycle and semantics of a "
@@ -792,19 +792,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:440
+#: beans.xml:441
#, no-c-format
msgid "It is not a non-static inner class."
msgstr ""
#. Tag: para
-#: beans.xml:443
+#: beans.xml:444
#, no-c-format
msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:446
+#: beans.xml:447
#, no-c-format
msgid ""
"It is not annotated with an EJB component-defining annotation or declared as "
@@ -812,7 +812,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:452
+#: beans.xml:453
#, no-c-format
msgid ""
"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
@@ -820,25 +820,25 @@
msgstr ""
#. Tag: para
-#: beans.xml:455
+#: beans.xml:456
#, no-c-format
msgid "It has an appropriate constructor—either:"
msgstr ""
#. Tag: para
-#: beans.xml:460
+#: beans.xml:461
#, no-c-format
msgid "the class has a constructor with no parameters, or"
msgstr ""
#. Tag: para
-#: beans.xml:463
+#: beans.xml:464
#, no-c-format
msgid "the class declares a constructor annotated <literal>@Inject</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:471
+#: beans.xml:472
#, no-c-format
msgid ""
"The unrestricted set of bean types for a managed bean contains the bean "
@@ -847,7 +847,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:474
+#: beans.xml:475
#, no-c-format
msgid ""
"If a managed bean has a public field, it must have the default scope "
@@ -855,7 +855,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:476
+#: beans.xml:477
#, no-c-format
msgid ""
"Managed beans support the <literal>@PostConstruct</literal> and "
@@ -863,7 +863,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:479
+#: beans.xml:480
#, no-c-format
msgid ""
"Session beans are also, technically, managed beans. However, since they have "
@@ -873,13 +873,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:488
+#: beans.xml:489
#, no-c-format
msgid "Session beans"
msgstr ""
#. Tag: para
-#: beans.xml:490
+#: beans.xml:491
#, no-c-format
msgid ""
"Session beans belong to the EJB specification. They have a special "
@@ -892,7 +892,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:499
+#: beans.xml:500
#, no-c-format
msgid ""
"Message-driven and entity beans are by nature non-contextual objects and may "
@@ -904,7 +904,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:507
+#: beans.xml:508
#, no-c-format
msgid ""
"The unrestricted set of bean types for a session bean contains all local "
@@ -916,7 +916,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:515
+#: beans.xml:516
#, no-c-format
msgid ""
"There's no reason to explicitly declare the scope of a stateless session "
@@ -927,7 +927,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:519
+#: beans.xml:520
#, no-c-format
msgid ""
"Stateful session beans may define a <emphasis>remove method</emphasis>, "
@@ -940,7 +940,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:527
+#: beans.xml:528
#, no-c-format
msgid ""
"So, when should we use a session bean instead of a plain managed bean? "
@@ -948,19 +948,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:534
+#: beans.xml:535
#, no-c-format
msgid "method-level transaction management and security,"
msgstr ""
#. Tag: para
-#: beans.xml:537
+#: beans.xml:538
#, no-c-format
msgid "concurrency management,"
msgstr ""
#. Tag: para
-#: beans.xml:540
+#: beans.xml:541
#, no-c-format
msgid ""
"instance-level passivation for stateful session beans and instance-pooling "
@@ -968,19 +968,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:544
+#: beans.xml:545
#, no-c-format
msgid "remote or web service invocation, or"
msgstr ""
#. Tag: para
-#: beans.xml:547
+#: beans.xml:548
#, no-c-format
msgid "timers and asynchronous methods,"
msgstr ""
#. Tag: para
-#: beans.xml:551
+#: beans.xml:552
#, no-c-format
msgid ""
"When we don't need any of these things, an ordinary managed bean will serve "
@@ -988,7 +988,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:553
+#: beans.xml:554
#, no-c-format
msgid ""
"Many beans (including any <literal>@SessionScoped</literal> or "
@@ -998,7 +998,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:559
+#: beans.xml:560
#, no-c-format
msgid ""
"Beans which hold references to heavy-weight resources, or hold a lot of "
@@ -1008,7 +1008,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:565
+#: beans.xml:566
#, no-c-format
msgid ""
"Finally, it's usually obvious when method-level transaction management, "
@@ -1017,7 +1017,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:570
+#: beans.xml:571
#, no-c-format
msgid ""
"The point we're trying to make is: use a session bean when you need the "
@@ -1030,7 +1030,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:578
+#: beans.xml:579
#, no-c-format
msgid ""
"On the other hand, don't be scared to use session beans just because you've "
@@ -1043,13 +1043,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:589
+#: beans.xml:590
#, no-c-format
msgid "Producer methods"
msgstr ""
#. Tag: para
-#: beans.xml:591
+#: beans.xml:592
#, no-c-format
msgid ""
"Not everything that needs to be injected can be boiled down to a bean class "
@@ -1061,7 +1061,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:599
+#: beans.xml:600
#, no-c-format
msgid ""
"A <emphasis>producer method</emphasis> is a method that acts as a source of "
@@ -1072,7 +1072,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:606
+#: beans.xml:607
#, no-c-format
msgid ""
"A producer method is declared by annotating a method of a bean class with "
@@ -1080,7 +1080,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:611
+#: beans.xml:612
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
@@ -1096,7 +1096,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:613
+#: beans.xml:614
#, no-c-format
msgid ""
"We can't write a bean class that is itself a random number. But we can "
@@ -1111,25 +1111,25 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:622
+#: beans.xml:623
#, no-c-format
msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
msgstr ""
#. Tag: para
-#: beans.xml:624
+#: beans.xml:625
#, no-c-format
msgid "Even in a Unified EL expression:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:628
+#: beans.xml:629
#, no-c-format
msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
msgstr ""
#. Tag: para
-#: beans.xml:630
+#: beans.xml:631
#, no-c-format
msgid ""
"A producer method must be a non-abstract method of a managed bean class or "
@@ -1139,13 +1139,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:636
+#: beans.xml:637
#, no-c-format
msgid "The bean types of a producer method depend upon the method return type:"
msgstr ""
#. Tag: para
-#: beans.xml:642
+#: beans.xml:643
#, no-c-format
msgid ""
"If the return type is an interface, the unrestricted set of bean types "
@@ -1154,7 +1154,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:648
+#: beans.xml:649
#, no-c-format
msgid ""
"If a return type is primitive or is a Java array type, the unrestricted set "
@@ -1163,7 +1163,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:654
+#: beans.xml:655
#, no-c-format
msgid ""
"If the return type is a class, the unrestricted set of bean types contains "
@@ -1172,7 +1172,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:661
+#: beans.xml:662
#, no-c-format
msgid ""
"If the producer method has method parameters, the container will look for a "
@@ -1181,7 +1181,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:667
+#: beans.xml:668
#, no-c-format
msgid ""
"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
@@ -1190,7 +1190,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:669
+#: beans.xml:670
#, no-c-format
msgid ""
"We'll talk much more about producer methods in <xref linkend="
@@ -1198,13 +1198,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:674
+#: beans.xml:675
#, no-c-format
msgid "Producer fields"
msgstr ""
#. Tag: para
-#: beans.xml:676
+#: beans.xml:677
#, no-c-format
msgid ""
"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
@@ -1214,7 +1214,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:682
+#: beans.xml:683
#, no-c-format
msgid ""
"<![CDATA[public class Shop {\n"
@@ -1224,7 +1224,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:684
+#: beans.xml:685
#, no-c-format
msgid ""
"The rules for determining the bean types of a producer field parallel the "
@@ -1232,7 +1232,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:688
+#: beans.xml:689
#, no-c-format
msgid ""
"A producer field is really just a shortcut that lets us avoid writing a "
@@ -1242,3 +1242,405 @@
"linkend=\"resources\"/>. Because we can't wait to get to work on some "
"examples."
msgstr ""
+
+#. Tag: title
+#: beans.xml:701
+#, no-c-format
+msgid "The (minimal) bean descriptor"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:703
+#, no-c-format
+msgid ""
+"First, it's important to understand that the XML bean descriptor in CDI "
+"(beans.xml) is not there to define beans in XML, like in other popular bean "
+"containers. Rather, you use this file to enable CDI services for the current "
+"bean archive that is difficult to define consistently in Java or which you "
+"don't want to define in Java (e.g., to accomodate testing)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:710
+#, no-c-format
+msgid ""
+"For example, the XML is used to enable interceptors (which are disabled by "
+"default) and define interceptor ordering. So the bean descriptor "
+"<emphasis>complements</emphasis> the metadata that is provided in the Java "
+"language syntax. (You may still want to define beans in XML for other "
+"reasons, but that is the concern of an extension)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:717
+#, no-c-format
+msgid ""
+"Let's first ask why the beans.xml is required, then look at what services it "
+"is used used to enable."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:722
+#, no-c-format
+msgid "Why is beans.xml required?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:724
+#, no-c-format
+msgid ""
+"You may be wondering, if beans are not described using XML, why do we need "
+"beans.xml at all, particularly if you don't have anything that you would "
+"need the bean descriptor to enable (alternatives, interceptors or "
+"decorators)?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:730
+#, no-c-format
+msgid "There are two things about CDI that we need to keep in mind:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:736
+#, no-c-format
+msgid ""
+"CDI does not require any special declaration for a Java class to be injected "
+"- that's right, no annotation or XML declaration at all!"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:742
+#, no-c-format
+msgid ""
+"CDI does not define any special kind of module - CDI beans can be deployed "
+"in a library JAR, EJB JAR, WAR, RAR, or JVM classpath directory."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:749
+#, no-c-format
+msgid ""
+"The CDI specification calls the process of identifying beans in modules "
+"<emphasis>bean discovery</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:753
+#, no-c-format
+msgid ""
+"So there are potentially a lot of classes in the classpath which might be "
+"beans! We don't want to force the container to scan every one of those "
+"classes at startup and build its internal metamodel for each of them. This "
+"really could make bean discovery very slow."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:759
+#, no-c-format
+msgid ""
+"But there's another reason we need to give the user some control over which "
+"classes are available for injection. We don't want every class in the "
+"classpath to potentially match an injection point, including classes that "
+"were never intended to be injected into things. This would force the "
+"developer to have to use qualifiers much more often to disambiguate "
+"injection points."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:766
+#, no-c-format
+msgid "So we have two choices. We could have the developer:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:772
+#, no-c-format
+msgid "explicitly exclude modules which do not contain beans, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:775
+#, no-c-format
+msgid "explicitly declare modules which do contain beans."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:779
+#, no-c-format
+msgid ""
+"It should be clear that the second option is a much better way to go. Thus, "
+"CDI has the notion of a bean archive. A bean archive is just a module that "
+"has a file named beans.xml in the META-INF directory. The container looks "
+"for beans in bean archives. It ignores other modules."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:785
+#, no-c-format
+msgid ""
+"Now, you might be wondering if we've got the granularity wrong here. Why "
+"should module be the right criteria to use for including/excluding a class. "
+"Why not consider:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:792
+#, no-c-format
+msgid "a class-level annotation,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:795
+#, no-c-format
+msgid "the package,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:798
+#, no-c-format
+msgid "some type it implements or extends, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:801
+#, no-c-format
+msgid "some naming convention."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:805
+#, no-c-format
+msgid ""
+"We've got the first option covered. Annotate a bean <literal>@Alternative</"
+"literal>, or with an alternative stereotype, and it will be considered "
+"disabled by CDI, as long as you don't explicitly enable it in beans.xml. "
+"That's not quite the same thing as excluding the class from scanning "
+"altogether, but it's close. (One difference is that a portable extension "
+"with still get a <literal>ProcessAnnotatedType</literal> event for that "
+"class)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:813
+#, no-c-format
+msgid ""
+"A future version of CDI might allow you to declare excluded packages in "
+"beans.xml. Excluding a bean by type or naming convention isn't really that "
+"appealing. In the world of CDI, we use stereotypes for identifying "
+"architectural roles. We don't use marker interfaces or naming conventions. "
+"Names really shouldn't affect functionality as it is too fragile."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:820
+#, no-c-format
+msgid "Enough theory, what elements are available in beans.xml?"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:826
+#, no-c-format
+msgid "Bean descriptor schema"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:828
+#, no-c-format
+msgid ""
+"If you don't need to activate any interceptors, decorators or alternatives "
+"(you just have plain beans that you need to use in an archive), the beans."
+"xml file can be <emphasis>empty</emphasis>. If you do have one of these "
+"requirements, then you need to start popularing the descriptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:834
+#, no-c-format
+msgid ""
+"The root element of a beans.xml file is <literal>beans</literal>, with the "
+"following <ulink url=\"http://anonsvn.jboss.org/repos/weld/api/trunk/cdi/src/"
+"main/resources/beans.xsd\">schema</ulink>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:839
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<beans 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"
+"</beans>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:841
+#, no-c-format
+msgid ""
+"The <literal>beans</literal> element can have one or more of each of the "
+"following children:"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:847
+#, no-c-format
+msgid "interceptors"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:850
+#, no-c-format
+msgid "decorators"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:853
+#, no-c-format
+msgid "alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:857
+#, no-c-format
+msgid "Let's look at each element in detail."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:862
+#, no-c-format
+msgid "<interceptors>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:864
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled interceptors bound via interceptor "
+"bindings. An interceptor must be explicitly enabled by listing the fully "
+"qualified class name in a child <class> element of <"
+"interceptors>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:870
+#, no-c-format
+msgid ""
+"There may be zero or more interceptor class elements. The order of the class "
+"declarations determines the interceptor ordering. Interceptors which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an interceptor "
+"class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:877
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.intercept.SecurityInterceptor</class>\n"
+" <class>com.acme.intercept.TransactionInterceptor</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:883
+#, no-c-format
+msgid "<decorators>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:885
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled decorators. A decorator must be "
+"explicitly enabled by listing the fully qualified class name in a child <"
+"class> element of <decorators>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:891
+#, no-c-format
+msgid ""
+"There may be zero or more decorator class elements. The order of the class "
+"declarations determines the decorator ordering. Decorators which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an decorator class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.decorate.BigAccountDecorator</class>\n"
+" <class>com.acme.decorate.SpecialGiftDecorator</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:903
+#, no-c-format
+msgid "<alternatives>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:905
+#, no-c-format
+msgid ""
+"An alternative is a bean that must be explicitly declared in the beans.xml "
+"file if it should be available for lookup, injection or EL resolution. By "
+"default, a bean archive has no active alternatives. An alternative must be "
+"explicitly declared using the fully qualified bean class name or stereotype "
+"class name in either a child <class> or <stereotype> element of "
+"<alternatives>, respectively."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:913
+#, no-c-format
+msgid ""
+"An alternative is selected for the bean archive if either: the alternative "
+"is a managed bean or session bean and the bean class of the bean is listed, "
+"or the alternative is a producer method, field or resource, and the bean "
+"class that declares the method or field is listed, or any "
+"<literal>@Alternative</literal> stereotype of the alternative is listed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:920
+#, no-c-format
+msgid ""
+"There may be zero or more alternative bean class elements. The same class "
+"may not be listed twice. And of course, the class must exist and it must be "
+"an alternative bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:925
+#, no-c-format
+msgid ""
+"There may also be zero or more <literal>@Alternative</literal> stereotype "
+"elements. The same stereotype may not be listed twice. And of course, the "
+"stereotype class must exist and it must be an stereotype annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:931
+#, no-c-format
+msgid ""
+"<![CDATA[<stereotypes>\n"
+" <class>com.acme.business.MockPaymentProcessor</class>\n"
+" <stereotype>com.acme.stereotype.Mock</stereotype>\n"
+"</stereotypes>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:935
+#, no-c-format
+msgid ""
+"And that's it! A very simple schema, used only to activate and order CDI "
+"services."
+msgstr ""
Modified: doc/trunk/reference/de-DE/dependencies.po
===================================================================
--- doc/trunk/reference/de-DE/dependencies.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/dependencies.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -24,7 +24,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/"
+"is currently maintained in the <ulink url=\"https://jira.jboss.org/jira/"
"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
"appendix."
msgstr ""
Modified: doc/trunk/reference/de-DE/ee.po
===================================================================
--- doc/trunk/reference/de-DE/ee.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/ee.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: ee\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-02-09 20:55+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -68,7 +68,7 @@
#: ee.xml:32
#, no-c-format
msgid ""
-"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"the default <ulink url=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
"Validation</ulink> <literal>ValidationFactory</literal>, and"
msgstr ""
@@ -80,14 +80,49 @@
"literal>."
msgstr ""
+#. Tag: para
+#: ee.xml:45
+#, no-c-format
+msgid ""
+"The CDI specification does not require the servlet context objects, "
+"<literal>HttpServletRequest</literal>, <literal>HttpSession</literal> and "
+"<literal>ServletContext</literal> to be exposed as injectable beans. If you "
+"really want to be able to inject these objects, it's easy to create a "
+"portable extension to expose them as beans. However, we recommend that "
+"direct access to these objects be limited to servlets, servlet filters and "
+"servlet event listeners, where they may be obtained in the usual way as "
+"defined by the Java Servlets spec. The <literal>FacesContext</literal> is "
+"also not injectable. You can get at it by calling <literal>FacesContext."
+"getCurrentInstance()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ee.xml:57
+#, no-c-format
+msgid ""
+"Oh, you <emphasis>really</emphasis> want to inject the "
+"<literal>FacesContext</literal>? Alright then, try this producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: ee.xml:61
+#, no-c-format
+msgid ""
+"<![CDATA[class FacesContextProducer {\n"
+" @Produces @RequestScoped FacesContext getFacesContext() {\n"
+" return FacesContext.getCurrentInstance();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
#. Tag: title
-#: ee.xml:47
+#: ee.xml:67
#, 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
+#: ee.xml:69
#, fuzzy, no-c-format
msgid ""
"All managed beans may take advantage of Java EE component environment "
@@ -103,7 +138,7 @@
"nicht viel Beachtung geschenkt haben:"
#. Tag: programlisting
-#: ee.xml:56
+#: ee.xml:76
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @Interceptor\n"
@@ -125,7 +160,7 @@
"}]]>"
#. Tag: programlisting
-#: ee.xml:58
+#: ee.xml:78
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped\n"
@@ -146,7 +181,7 @@
"}]]>"
#. Tag: para
-#: ee.xml:60
+#: ee.xml:80
#, fuzzy, no-c-format
msgid ""
"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
@@ -160,7 +195,7 @@
"nach Durchführung <emphasis>aller</emphasis> Einspeisungen aufgerufen."
#. Tag: para
-#: ee.xml:66
+#: ee.xml:86
#, no-c-format
msgid ""
"Of course, we advise that component environment injection be used to define "
@@ -168,13 +203,13 @@
msgstr ""
#. Tag: title
-#: ee.xml:74
+#: ee.xml:94
#, fuzzy, no-c-format
msgid "Calling a bean from a servlet"
msgstr "Aufruf eines Web Bean von einem Servlet"
#. Tag: para
-#: ee.xml:76
+#: ee.xml:96
#, fuzzy, no-c-format
msgid ""
"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
@@ -186,7 +221,7 @@
"ein."
#. Tag: programlisting
-#: ee.xml:81
+#: ee.xml:101
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class Login extends HttpServlet {\n"
@@ -233,7 +268,7 @@
"}"
#. Tag: para
-#: ee.xml:83
+#: ee.xml:103
#, fuzzy, no-c-format
msgid ""
"Since instances of servlets are shared across all incoming threads, the bean "
@@ -247,13 +282,13 @@
"korrigieren."
#. Tag: title
-#: ee.xml:92
+#: ee.xml:112
#, 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:94
+#: ee.xml:114
#, no-c-format
msgid ""
"CDI injection applies to all EJBs, even when they aren't managed beans. In "
@@ -262,14 +297,14 @@
msgstr ""
#. Tag: para
-#: ee.xml:99
+#: ee.xml:119
#, 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:101
+#: ee.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @MessageDriven\n"
@@ -295,7 +330,7 @@
"}"
#. Tag: para
-#: ee.xml:103
+#: ee.xml:123
#, fuzzy, no-c-format
msgid ""
"Please note that there is no session or conversation context available when "
@@ -310,19 +345,19 @@
"<literal>@ApplicationScoped</literal> Web Beans verfügbar."
#. Tag: para
-#: ee.xml:109
+#: ee.xml:129
#, no-c-format
msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
msgstr ""
#. Tag: title
-#: ee.xml:116
+#: ee.xml:136
#, no-c-format
msgid "JMS endpoints"
msgstr "JMS Endpunkte"
#. Tag: para
-#: ee.xml:118
+#: ee.xml:138
#, no-c-format
msgid ""
"Sending messages using JMS can be quite complex, because of the number of "
@@ -347,7 +382,7 @@
"eigenes Threading-Modell, das unsere Aufmerksamkeit erfordert."
#. Tag: para
-#: ee.xml:127
+#: ee.xml:147
#, no-c-format
msgid ""
"You can use producer fields and methods to prepare all of these resources "
@@ -355,7 +390,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:131
+#: ee.xml:151
#, no-c-format
msgid ""
"<![CDATA[public class OrderResources {\n"
@@ -404,7 +439,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:133
+#: ee.xml:153
#, no-c-format
msgid ""
"In this example, we can just inject the prepared <literal>MessageProducer</"
@@ -412,7 +447,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:138
+#: ee.xml:158
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject Order order;\n"
@@ -436,7 +471,7 @@
"}"
#. Tag: para
-#: ee.xml:144
+#: ee.xml:164
#, fuzzy, no-c-format
msgid ""
"The lifecycle of the injected JMS objects is completely controlled by the "
@@ -446,13 +481,13 @@
"Bean Manager gesteuert."
#. Tag: title
-#: ee.xml:151
+#: ee.xml:171
#, no-c-format
msgid "Packaging and deployment"
msgstr "Packen und Deployment"
#. Tag: para
-#: ee.xml:153
+#: ee.xml:173
#, fuzzy, no-c-format
msgid ""
"CDI doesn't define any special deployment archive. You can package beans in "
@@ -475,7 +510,7 @@
"Verwendung in der Anwendung verfügbar."
#. Tag: para
-#: ee.xml:162
+#: ee.xml:182
#, fuzzy, no-c-format
msgid ""
"In an embeddable EJB container, beans may be deployed in any location in "
Modified: doc/trunk/reference/de-DE/environments.po
===================================================================
--- doc/trunk/reference/de-DE/environments.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/environments.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -383,133 +383,270 @@
"available:"
msgstr ""
-#. Tag: literal
-#: environments.xml:215
+#. Tag: para
+#: environments.xml:214
#, no-c-format
-msgid "POJOs (no EJBs)"
+msgid ""
+"Managed beans with <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:220
#, no-c-format
-msgid "Typesafe Dependency Injection"
+msgid "Dependency injection with qualifiers and alternatives"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:225
#, no-c-format
-msgid "Application and Dependent Contexts"
+msgid ""
+"<literal>@Application</literal>, <literal>@Dependent</literal> and "
+"<literal>@Singleton</literal> scopes"
msgstr ""
-#. Tag: literal
-#: environments.xml:230
+#. Tag: para
+#: environments.xml:231
#, no-c-format
-msgid "Qualifiers"
+msgid "Interceptors and decorators"
msgstr ""
-#. Tag: literal
-#: environments.xml:235
+#. Tag: para
+#: environments.xml:236
#, no-c-format
msgid "Stereotypes"
msgstr ""
-#. Tag: literal
-#: environments.xml:240
+#. Tag: para
+#: environments.xml:241
#, no-c-format
-msgid "Typesafe Event Model"
+msgid "Events"
msgstr ""
-#. Tag: title
+#. Tag: para
#: environments.xml:246
#, no-c-format
+msgid "Portable extension support"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:252
+#, no-c-format
+msgid "EJB beans are not supported."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:257
+#, no-c-format
msgid "CDI SE Module"
msgstr ""
#. Tag: para
-#: environments.xml:248
+#: environments.xml:259
#, 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:"
+"automatically registering all simple beans found on the classpath. The "
+"command line parameters can be injected using either of the following:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:255
+#: environments.xml:264
#, no-c-format
+msgid "<![CDATA[@Inject @Parameters List<String> params;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:266
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters String[] paramsArray;]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:268
+#, no-c-format
+msgid "The second form is useful for compatibility with existing classes."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:273
+#, no-c-format
msgid ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with "
-"existing classes]]>"
+"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 ""
#. Tag: para
-#: environments.xml:257
+#: environments.xml:282
#, no-c-format
msgid "Here's an example of a simple CDI SE application:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:261
+#: environments.xml:286
#, no-c-format
msgid ""
-"<![CDATA[@ApplicationScoped\n"
+"<![CDATA[@Singleton\n"
"public class HelloWorld\n"
"{\n"
-" @Inject @Parameters List<String> parameters;\n"
-"\n"
-" public void printHello(@Observes ContainerInitialized event) {\n"
+" public void printHello(@Observes ContainerInitialized event, @Parameters "
+"List<String> parameters) {\n"
" System.out.println(\"Hello \" + parameters.get(0));\n"
" }\n"
"}]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:292
+#, no-c-format
+msgid "Bootstrapping CDI SE"
+msgstr ""
+
#. Tag: para
-#: environments.xml:263
+#: environments.xml:294
#, no-c-format
+msgid "CDI SE applications can be bootstrapped in the following ways."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:300
+#, no-c-format
+msgid "The ContainerInitialized Event"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:302
+#, no-c-format
msgid ""
-"CDI SE applications can be bootstrapped by running the StartMain class like "
-"so:"
+"Thanks to the power of CDI's typesafe event model, application developers "
+"need not write any bootstrapping code. The Weld SE module comes with a built-"
+"in main method which will bootstrap CDI for you and then fire a "
+"<literal>ContainerInitialized</literal> event. The entry point for your "
+"application code would therefore be a simple bean which observes the "
+"<literal>ContainerInitialized</literal> event, as in the previous example."
msgstr ""
+#. Tag: para
+#: environments.xml:310
+#, no-c-format
+msgid ""
+"In this case your application can be started by calling the provided main "
+"method like so:"
+msgstr ""
+
#. Tag: programlisting
-#: environments.xml:267
+#: environments.xml:313
#, no-c-format
msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:319
+#, no-c-format
+msgid "Programatic Bootstrap API"
+msgstr ""
+
#. Tag: para
-#: environments.xml:269
+#: environments.xml:321
#, 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:"
+"For added flexibility, CDI SE also comes with a bootstrap API which can be "
+"called from within your application in order to initialize CDI and obtain "
+"references to your application's beans and events. The API consists of two "
+"classes: <literal>Weld</literal> and <literal>WeldContainer</literal>."
msgstr ""
#. Tag: programlisting
-#: environments.xml:276
+#: environments.xml:327
#, no-c-format
msgid ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+"<![CDATA[public class Weld\n"
+"{\n"
+"\n"
+" /** Boots Weld and creates and returns a WeldContainer instance, through "
+"which\n"
+" * beans and events can be accesed. */\n"
+" public WeldContainer initialize() {...}\n"
+"\n"
+" /** Convenience method for shutting down the container. */\n"
+" public void shutdown() {...}\n"
+"\n"
"}]]>"
msgstr ""
+#. Tag: programlisting
+#: environments.xml:329
+#, no-c-format
+msgid ""
+"<![CDATA[public class WeldContainer\n"
+"{\n"
+"\n"
+" /** Provides access to all beans within the application. */\n"
+" public Instance<Object> instance() {...}\n"
+"\n"
+" /** Provides access to all events within the application. */\n"
+" public Event<Object> event() {...}\n"
+"\n"
+" /** Provides direct access to the BeanManager. */\n"
+" public BeanManager getBeanManager() {...}\n"
+"\n"
+"}]]>"
+msgstr ""
+
#. Tag: para
-#: environments.xml:279
+#: environments.xml:331
#, 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>."
+"Here's an example application main method which uses this API to initialize "
+"a bean of type <literal>MyApplicationBean</literal>."
msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.instance().select(MyApplicationBean.class).get();\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:336
+#, no-c-format
+msgid ""
+"Alternatively the application could be started by firing a custom event "
+"which would then be observed by another simple bean. The following example "
+"fires <literal>MyEvent</literal> on startup."
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.event().select(MyEvent.class).fire( new MyEvent() );\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: environments.xml:348
+#, no-c-format
+msgid "Setting the Classpath"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:350
+#, no-c-format
+msgid ""
+"Weld SE comes packaged as a 'shaded' jar which includes the CDI API, Weld "
+"Core and all dependant classes bundled into a single jar. Therefore the only "
+"Weld jar you need on the classpath, in addition to your application's "
+"classes and dependant jars, is the Weld SE jar."
+msgstr ""
Modified: doc/trunk/reference/de-DE/example.po
===================================================================
--- doc/trunk/reference/de-DE/example.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/example.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: example\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-01-28 07:53+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -27,7 +27,9 @@
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:"
+"request-scoped bean to hold the username and password entered during login, "
+"with constraints defined using annotations from the Bean Validation "
+"specification:"
msgstr ""
"Illustrieren wir diese Ideen an einem vollständigen Beispiel. Wir werden "
"einen Benutzer Login/Logout für eine JSF verwendende Anwendung "
@@ -35,7 +37,7 @@
"Logins eingegebenen Benutzernamen und das Passwort verwahrt:"
#. Tag: programlisting
-#: example.xml:11
+#: example.xml:12
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Named @RequestScoped\n"
@@ -43,9 +45,11 @@
" private String username;\n"
" private String password;\n"
" \n"
+" @NotNull @Length(min=3, max=25)\n"
" public String getUsername() { return username; }\n"
" public void setUsername(String username) { this.username = username; }\n"
" \n"
+" @NotNull @Length(min=6, max=20)\n"
" public String getPassword() { return password; }\n"
" public void setPassword(String password) { this.password = password; }\n"
"}]]>"
@@ -65,22 +69,24 @@
"}]]>"
#. Tag: para
-#: example.xml:13
+#: example.xml:14
#, 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
+#: example.xml:16
#, 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"
+" <f:validateBean>\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"
+" </f:validateBean>\n"
" </h:panelGrid>\n"
" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
"login.loggedIn}\"/>\n"
@@ -102,9 +108,52 @@
"</h:form>]]>"
#. Tag: para
-#: example.xml:17
+#: example.xml:18
+#, no-c-format
+msgid "Users are represented by a JPA entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:22
#, fuzzy, no-c-format
msgid ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+" private @NotNull @Length(min=3, max=25) @Id String username;\n"
+" private @NotNull @Length(min=6, max=20) String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" public String setPassword(String password) { this.password = password; }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class Credentials {\n"
+" \n"
+" private String username;\n"
+" private String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" \n"
+" public String getPassword() { return password; }\n"
+" public void setPassword(String password) { this.password = password; }\n"
+" \n"
+"}]]>"
+
+#. Tag: para
+#: example.xml:24
+#, no-c-format
+msgid ""
+"(Note that we're also going to need a <literal>persistence.xml</literal> "
+"file to configure the JPA persistence unit containing <literal>User</"
+"literal>.)"
+msgstr ""
+
+#. Tag: para
+#: example.xml:29
+#, 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:"
@@ -114,7 +163,7 @@
"und anderen Web Beans die <literal>User</literal>-Entity offenlegt:"
#. Tag: programlisting
-#: example.xml:22
+#: example.xml:34
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped @Named\n"
@@ -193,7 +242,7 @@
"}]]>"
#. Tag: para
-#: example.xml:24
+#: example.xml:36
#, no-c-format
msgid ""
"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
@@ -201,7 +250,7 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:26
+#: example.xml:38
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -215,7 +264,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: programlisting
-#: example.xml:28
+#: example.xml:40
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -229,7 +278,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: para
-#: example.xml:30
+#: example.xml:42
#, no-c-format
msgid ""
"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
@@ -237,16 +286,17 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:34
+#: example.xml:46
#, no-c-format
msgid ""
-"<![CDATA[public class UserDatabaseProducer {\n"
-" @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"<![CDATA[class UserDatabaseProducer {\n"
+" @Produces @UserDatabase @PersistenceContext \n"
+" static EntityManager userDatabase;\n"
"}]]>"
msgstr ""
#. Tag: para
-#: example.xml:36
+#: example.xml:48
#, fuzzy, no-c-format
msgid ""
"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
@@ -256,7 +306,7 @@
"einspeisen:"
#. Tag: programlisting
-#: example.xml:38
+#: example.xml:50
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class DocumentEditor {\n"
@@ -284,13 +334,13 @@
"}]]>"
#. Tag: para
-#: example.xml:40
+#: example.xml:52
#, no-c-format
msgid "Or we can reference the current user in a JSF view:"
msgstr ""
#. Tag: programlisting
-#: example.xml:42
+#: example.xml:54
#, no-c-format
msgid ""
"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
@@ -299,7 +349,7 @@
msgstr ""
#. Tag: para
-#: example.xml:44
+#: example.xml:56
#, fuzzy, no-c-format
msgid ""
"Hopefully, this example gave you a taste of the CDI programming model. In "
Modified: doc/trunk/reference/de-DE/extend.po
===================================================================
--- doc/trunk/reference/de-DE/extend.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/extend.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: extend\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-02-14 06:59+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -98,27 +98,204 @@
"some other source"
msgstr ""
+#. Tag: title
+#: extend.xml:58
+#, fuzzy, no-c-format
+msgid "Creating an <literal>Extension</literal>"
+msgstr "Die <literal>Bean</literal>-Klasse"
+
#. Tag: para
-#: extend.xml:57
-#, fuzzy, no-c-format
+#: extend.xml:60
+#, no-c-format
msgid ""
-"The nerve center for extending CDI is the <literal>BeanManager</literal> "
-"object."
+"The first step in creating a portable extension is to write a class that "
+"implements <literal>Extension</literal>. This marker interface does not "
+"define any methods, but it's needed to satisfy the requirements of Java SE's "
+"service provider architecture."
msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:66
+#, no-c-format
+msgid "class MyExtension implements Extension { ... }"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:68
+#, no-c-format
+msgid ""
+"Next, we need to register our extension as a service provider by creating a "
+"file named <literal>META-INF/services/javax.enterprise.inject.spi.Extension</"
+"literal>, which contains the name of our extension class:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:74
+#, no-c-format
+msgid "org.mydomain.extension.MyExtension"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:76
+#, no-c-format
+msgid ""
+"An extension is not a bean, exactly, since it is instantiated by the "
+"container during the initialization process, before any beans or contexts "
+"exist. However, it can be injected into other beans once the initialization "
+"process is complete."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:82
+#, no-c-format
+msgid ""
+"@Inject \n"
+"MyBean(MyExtension myExtension) {\n"
+" myExtension.doSomething();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:84
+#, no-c-format
+msgid ""
+"And, like beans, extensions can have observer methods. Usually, the observer "
+"methods observe <emphasis>container lifecycle events</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:92
+#, no-c-format
+msgid "Container lifecycle events"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:94
+#, no-c-format
+msgid ""
+"During the initialization process, the container fires a series of events, "
+"including:"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:101
+#, no-c-format
+msgid "BeforeBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:106
+#, no-c-format
+msgid "ProcessAnnotatedType"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:110
+#, no-c-format
+msgid ""
+"<literal>ProcessInjectionTarget</literal> and <literal>ProcessProducer</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:115
+#, no-c-format
+msgid ""
+"<literal>ProcessBean</literal> and <literal>ProcessObserverMethod</literal>"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:121
+#, no-c-format
+msgid "AfterBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:126
+#, no-c-format
+msgid "AfterDeploymentValidation"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:131
+#, no-c-format
+msgid "Extensions may observe these events:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {\n"
+" Logger.global.debug(\"beginning the scanning process\");\n"
+" }\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" Logger.global.debug(\"scanning type: \" + pat.getAnnotatedType()."
+"getJavaClass().getName());\n"
+" } \n"
+"\n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {\n"
+" Logger.global.debug(\"finished the scanning process\");\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:137
+#, no-c-format
+msgid ""
+"In fact, the extension can do a lot more than just observe. The extension is "
+"permitted to modify the container's metamodel and more. Here's a very simple "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" //tell the container to ignore the type if it is annotated @Ignore\n"
+" if ( pat.getAnnotatedType().isAnnotionPresent(Ignore.class) ) pat.veto"
+"(); \n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:144
+#, fuzzy, no-c-format
+msgid "The observer method may inject a <literal>BeanManager</literal>"
+msgstr ""
"Der zentrale Kern zur Erweiterung von Web Beans ist das <literal>Manager</"
"literal>-Objekt."
+#. Tag: programlisting
+#: extend.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> "
+"pat, BeanManager beanManager) { ... }]]>"
+msgstr ""
+
#. Tag: title
-#: extend.xml:62
+#: extend.xml:153
#, fuzzy, no-c-format
msgid "The <literal>BeanManager</literal> object"
msgstr "Das <literal>Manager</literal>-Objekt"
#. Tag: para
-#: extend.xml:64
+#: extend.xml:155
#, fuzzy, no-c-format
msgid ""
-"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object. The <literal>BeanManager</literal> interface lets us obtain beans, "
"interceptors, decorators, observers and contexts programmatically."
msgstr ""
"Das <literal>Manager</literal>-Interface die programmatische Registrierung "
@@ -126,27 +303,26 @@
"Kontexten."
#. Tag: programlisting
-#: extend.xml:69
+#: extend.xml:161
#, no-c-format
msgid ""
-"<![CDATA[public interface Manager {\n"
+"<![CDATA[public interface BeanManager {\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(Type beanType, Annotation... qualifiers);\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"
-" public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
-"Annotation... bindings);\n"
+" public void fireEvent(Object event, Annotation... qualifiers);\n"
+" public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, "
+"Annotation... qualifiers);\n"
" public List<Decorator<?>> resolveDecorators(Set<Type> types, "
-"Annotation... bindings);\n"
+"Annotation... qualifiers);\n"
" public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
"Annotation... interceptorBindings);\n"
" public boolean isScope(Class<? extends Annotation> annotationType);\n"
@@ -155,11 +331,11 @@
" public boolean isPassivatingScope(Class<? extends Annotation> "
"annotationType);\n"
" public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
-" public boolean isInterceptorBindingType(Class<? extends Annotation> "
+" public boolean isInterceptorBinding(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> getInterceptorBindingDefinition(Class<? extends "
+"Annotation> bindingType);\n"
" public Set<Annotation> getStereotypeDefinition(Class<? extends "
"Annotation> stereotype);\n"
" public Context getContext(Class<? extends Annotation> scopeType);\n"
@@ -173,22 +349,23 @@
msgstr ""
#. Tag: para
-#: extend.xml:71
+#: extend.xml:163
#, fuzzy, no-c-format
msgid ""
-"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+"Any bean or other Java EE component which supports injection 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:73
+#: extend.xml:166
#, fuzzy, no-c-format
-msgid "@Inject BeanManager beanManager"
+msgid "@Inject BeanManager beanManager;"
msgstr "@Current Manager Manager"
#. Tag: para
-#: extend.xml:75
+#: extend.xml:168
#, no-c-format
msgid ""
"Java EE components may obtain an instance of <literal>BeanManager</literal> "
@@ -198,7 +375,7 @@
msgstr ""
#. Tag: para
-#: extend.xml:81
+#: extend.xml:174
#, fuzzy, no-c-format
msgid ""
"Let's study some of the interfaces exposed by the <literal>BeanManager</"
@@ -208,26 +385,100 @@
"literal>-Objekt."
#. Tag: title
-#: extend.xml:86
+#: extend.xml:179
#, fuzzy, no-c-format
+msgid "The <literal>InjectionTarget</literal> interface"
+msgstr "Das <literal>Context</literal>-Interface"
+
+#. Tag: para
+#: extend.xml:181
+#, no-c-format
+msgid ""
+"The first thing that a framework developer is going to look for in the "
+"portable extension SPI is a way to inject CDI beans into objects which are "
+"not under the control of CDI. The <literal>InjectionTarget</literal> "
+"interface makes this very easy."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:188
+#, no-c-format
+msgid ""
+"We recommend that frameworks let CDI take over the job of actually "
+"instantiating the framework-controlled objects. That way, the framework-"
+"controlled objects can take advantage of constructor injection. However, if "
+"the framework requires use of a constructor with a special signature, the "
+"framework will need to instatiate the object itself, and so only method and "
+"field injection will be supported."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[//get the BeanManager from JNDI\n"
+"BeanManager beanManager = (BeanManager) new InitialContext().lookup(\"java:"
+"comp/BeanManager\");\n"
+"\n"
+"//CDI uses an AnnotatedType object to read the annotations of a class\n"
+"AnnotatedType<SomeFrameworkComponent> type = beanManager.createAnnotatedType"
+"(SomeFrameworkComponent.class);\n"
+"\n"
+"//The extension uses an InjectionTarget to delegate instantiation, "
+"dependency injection \n"
+"//and lifecycle callbacks to the CDI container\n"
+"InjectionTarget<SomeFrameworkComponent> it = beanManager."
+"createInjectionTarget(type);\n"
+"\n"
+"//each instance needs its own CDI CreationalContext\n"
+"CreationalContext ctx = beanManager.createCreationalContext(null);\n"
+"\n"
+"//instantiate the framework component and inject its dependencies\n"
+"SomeFrameworkComponent instance = it.produce(ctx); //call the constructor\n"
+"it.inject(instance, ctx); //call initializer methods and perform field "
+"injection\n"
+"it.postConstruct(instance); //call the @PostConstruct method\n"
+"\n"
+"...\n"
+"\n"
+"//destroy the framework component instance and clean up dependent objects\n"
+"it.preDestroy(instance); //call the @PreDestroy method\n"
+"it.dispose(instance); //it is now safe to discard the instance\n"
+"ctx.release(); //clean up dependent objects\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:201
+#, fuzzy, no-c-format
msgid "The <literal>Bean</literal> interface"
msgstr "Das <literal>Context</literal>-Interface"
#. Tag: para
-#: extend.xml:88
+#: extend.xml:203
#, 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."
+"<literal>BeanManager</literal> object for every bean in the application. "
+"There are even <literal>Bean</literal> objects representing interceptors, "
+"decorators and producer methods."
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: para
+#: extend.xml:210
+#, no-c-format
+msgid ""
+"The <literal>Bean</literal> interface exposes all the interesting things we "
+"dicussed in <xref linkend=\"bean-anatomy\"/>."
+msgstr ""
+
#. Tag: programlisting
-#: extend.xml:94
+#: extend.xml:215
#, no-c-format
msgid ""
"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
@@ -244,16 +495,28 @@
msgstr ""
#. Tag: para
-#: extend.xml:96
+#: extend.xml:217
+#, no-c-format
+msgid "There's an easy way to find out what beans exist in the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[Set<Bean<?>> allBeans = beanManager.getBeans(Obect.class, new "
+"AnnotationLiteral<Any>() {});]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:223
#, 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."
+"The <literal>Bean</literal> interface makes it possible for a portable "
+"extension 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 "
@@ -264,26 +527,480 @@
"dass durch ein anderes Framework gemanagte Objekte in Web Beans eingespeist "
"werden."
+#. Tag: title
+#: extend.xml:233
+#, fuzzy, no-c-format
+msgid "Registering a <literal>Bean</literal>"
+msgstr "Die <literal>Bean</literal>-Klasse"
+
#. Tag: para
-#: extend.xml:104
-#, fuzzy, no-c-format
+#: extend.xml:235
+#, no-c-format
msgid ""
-"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
-"specification: <literal>Interceptor</literal> and <literal>Decorator</"
-"literal>."
+"The most common kind of CDI portable extension registers a bean (or beans) "
+"with the container."
msgstr ""
-"Durch die Web Beans Spezifikation werden zwei Unterklassen von "
-"<literal>Bean</literal> definiert: <literal>Interceptor</literal> und "
-"<literal>Decorator</literal>."
+#. Tag: para
+#: extend.xml:239
+#, no-c-format
+msgid ""
+"In this example, we make a framework class, <literal>SecurityManager</"
+"literal> available for injection. To make things a bit more interesting, "
+"we're going to delegate back to the container's <literal>InjectionTarget</"
+"literal> to perform instantiation and injection upon the "
+"<literal>SecurityManager</literal> instance."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:246
+#, no-c-format
+msgid ""
+"<![CDATA[public class SecurityManagerExtension implements Extension {\n"
+" \n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager "
+"bm) {\n"
+" \n"
+" //use this to read annotations of the class\n"
+" AnnotatedType<SecurityManager> at = bm.createAnnotatedType"
+"(SecurityManager.class); \n"
+"\n"
+" //use this to instantiate the class and inject dependencies\n"
+" final InjectionTarget<SecurityManager> it = bm.createInjectionTarget"
+"(at); \n"
+"\n"
+" abd.addBean( new Bean<SecurityManager>() {\n"
+"\n"
+" @Override\n"
+" public Class<?> getBeanClass() {\n"
+" return SecurityManager.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public String getName() {\n"
+" return \"securityManager\";\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getQualifiers() {\n"
+" Set<Annotation> qualifiers = new HashSet<Annotation>();\n"
+" qualifiers.add( new AnnotationLiteral<Default>() {} );\n"
+" qualifiers.add( new AnnotationLiteral<Any>() {} );\n"
+" return qualifiers;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<? extends Annotation> getScope() {\n"
+" return SessionScoped.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Class<? extends Annotation>> getStereotypes() {\n"
+" return Collections.emptySet();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypes() {\n"
+" Set<Type> types = new HashSet<Type>();\n"
+" types.add(SecurityManager.class);\n"
+" types.add(Object.class);\n"
+" return types;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAlternative() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isNullable() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public SecurityManager create(CreationalContext<SecurityManager> "
+"ctx) {\n"
+" SecurityManager instance = it.produce(ctx);\n"
+" it.inject(instance, ctx);\n"
+" it.postConstruct(instance);\n"
+" return instance;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void destroy(SecurityManager instance, \n"
+" CreationalContext<SecurityManager> ctx) {\n"
+" it.preDestroy(instance);\n"
+" it.dispose(instance);\n"
+" ctx.release();\n"
+" }\n"
+" \n"
+" } );\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:248
+#, no-c-format
+msgid ""
+"But a portable extension can also mess with beans that are discovered "
+"automatically by the container."
+msgstr ""
+
#. Tag: title
-#: extend.xml:112
+#: extend.xml:255
#, no-c-format
+msgid "Wrapping an <literal>AnnotatedType</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:257
+#, no-c-format
+msgid ""
+"One of the most interesting things that an extension class can do is process "
+"the annotations of a bean class <emphasis>before</emphasis> the container "
+"builds its metamodel."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:262
+#, no-c-format
+msgid ""
+"Let's start with an example of an extension that provides support for the "
+"use of <literal>@Named</literal> at the package level. The package-level "
+"name is used to qualify the EL names of all beans defined in that package. "
+"The portable extension uses the <literal>ProcessAnnotatedType</literal> "
+"event to wrap the <literal>AnnotatedType</literal> object and override the "
+"<literal>value()</literal> of the <literal>@Named</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[public class QualifiedNameExtension implements Extension {\n"
+"\n"
+" <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) {\n"
+"\n"
+" //wrap this to override the annotations of the class\n"
+" final AnnotatedType<X> at = pat.getAnnotatedType();\n"
+" \n"
+" AnnotatedType<X> wrapped = new AnnotatedType<X>() {\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedConstructor<X>> getConstructors() {\n"
+" return at.getConstructors();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedField<? super X>> getFields() {\n"
+" return at.getFields();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<X> getJavaClass() {\n"
+" return at.getJavaClass();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedMethod<? super X>> getMethods() {\n"
+" return at.getMethods();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public <T extends Annotation> T getAnnotation(final Class<T> "
+"annType) {\n"
+" if ( Named.class.equals(annType) ) {\n"
+" class NamedLiteral \n"
+" extends AnnotationLiteral<Named> \n"
+" implements Named {\n"
+" @Override\n"
+" public String value() {\n"
+" Package pkg = at.getClass().getPackage();\n"
+" String unqualifiedName = at.getAnnotation(Named."
+"class).value();\n"
+" final String qualifiedName;\n"
+" if ( pkg.isAnnotationPresent(Named.class) ) {\n"
+" qualifiedName = pkg.getAnnotation(Named."
+"class).value() \n"
+" + '.' + unqualifiedName;\n"
+" }\n"
+" else {\n"
+" qualifiedName = unqualifiedName;\n"
+" }\n"
+" return qualifiedName;\n"
+" }\n"
+" }\n"
+" return (T) new NamedLiteral();\n"
+" }\n"
+" else {\n"
+" return at.getAnnotation(annType);\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getAnnotations() {\n"
+" return at.getAnnotations();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Type getBaseType() {\n"
+" return at.getBaseType();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypeClosure() {\n"
+" return at.getTypeClosure();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annType) {\n"
+" return at.isAnnotationPresent(annType);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:272
+#, no-c-format
+msgid ""
+"Here's a second example, which adds the <literal>@Alternative</literal> "
+"annotation to any class which implements a certain <literal>Service</"
+"literal> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[class ServiceAlternativeExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" \n"
+" final AnnotatedType<T> type = pat.getAnnotatedType();\n"
+" \n"
+" if ( Service.class.isAssignableFrom( type.getJavaClass() ) ) {\n"
+" \n"
+" //if the class implements Service, make it an @Alternative\n"
+" AnnotatedType<T> wrapped = new AnnotatedType<T>() {\n"
+" \n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annotationType) {\n"
+" return annotationType.equals(Alternative.class) ? \n"
+" true : type.isAnnotationPresent(annotationType);\n"
+" }\n"
+" \n"
+" //remaining methods of AnnotatedType\n"
+" ...\n"
+" }\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:283
+#, no-c-format
+msgid ""
+"The <literal>AnnotatedType</literal> is not the only thing that can be "
+"wrapped by an extension."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:288
+#, no-c-format
+msgid "Wrapping an <literal>InjectionTarget</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:290
+#, no-c-format
+msgid ""
+"The <literal>InjectionTarget</literal> interface exposes operations for "
+"producing and disposing an instance of a component, injecting its "
+"dependencies and invoking its lifecycle callbacks. A portable extension may "
+"wrap the <literal>InjectionTarget</literal> for any Java EE component that "
+"supports injection, allowing it to intercept any of these operations when "
+"they are invoked by the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:297
+#, no-c-format
+msgid ""
+"Here's a CDI portable extension that reads values from properties files and "
+"configures fields of Java EE components, including servlets, EJBs, managed "
+"beans, interceptors and more. In this example, properties for a class such "
+"as <literal>org.mydomain.blog.Blogger</literal> go in a resource named "
+"<literal>org/mydomain/blog/Blogger.properties</literal>, and the name of a "
+"property must match the name of the field to be configured. So "
+"<literal>Blogger.properties</literal> could contain:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:305
+#, no-c-format
+msgid ""
+"firstName=Gavin\n"
+"lastName=King"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:307
+#, no-c-format
+msgid ""
+"The portable extension works by wrapping the containers "
+"<literal>InjectionTarget</literal> and setting field values from the "
+"<literal>inject()</literal> method."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:310
+#, no-c-format
+msgid ""
+"<![CDATA[public class ConfigExtension implements Extension {\n"
+"\n"
+" <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> "
+"pit) {\n"
+" \n"
+" //wrap this to intercept the component lifecycle\n"
+" final InjectionTarget<X> it = pit.getInjectionTarget();\n"
+" \n"
+" final Map<Field, Object> configuredValues = new HashMap<Field, "
+"Object>();\n"
+" \n"
+" //use this to read annotations of the class and its members\n"
+" AnnotatedType<X> at = pit.getAnnotatedType();\n"
+" \n"
+" //read the properties file\n"
+" String propsFileName = at.getClass().getSimpleName() + \".properties"
+"\";\n"
+" InputStream stream = at.getJavaClass().getResourceAsStream"
+"(propsFileName);\n"
+" if (stream!=null) {\n"
+" \n"
+" try {\n"
+" Properties props = new Properties();\n"
+" props.load(stream);\n"
+" for (Map.Entry<Object, Object> property : props.entrySet()) "
+"{\n"
+" String fieldName = property.getKey().toString();\n"
+" Object value = property.getValue();\n"
+" try {\n"
+" Field field = at.getJavaClass().getField"
+"(fieldName);\n"
+" field.setAccessible(true);\n"
+" if ( field.getType().isAssignableFrom( value.getClass"
+"() ) ) {\n"
+" configuredValues.put(field, value);\n"
+" }\n"
+" else {\n"
+" //TODO: do type conversion automatically\n"
+" pit.addDefinitionError( new InjectionException(\n"
+" \"field is not of type String: \" + "
+"field ) );\n"
+" }\n"
+" }\n"
+" catch (NoSuchFieldException nsfe) {\n"
+" pit.addDefinitionError(nsfe);\n"
+" }\n"
+" finally {\n"
+" stream.close();\n"
+" }\n"
+" }\n"
+" }\n"
+" catch (IOException ioe) {\n"
+" pit.addDefinitionError(ioe);\n"
+" }\n"
+" }\n"
+" \n"
+" InjectionTarget<X> wrapped = new InjectionTarget<X>() {\n"
+"\n"
+" @Override\n"
+" public void inject(X instance, CreationalContext<X> ctx) {\n"
+" it.inject(instance, ctx);\n"
+" \n"
+" //set the values onto the new instance of the component\n"
+" for (Map.Entry<Field, Object> configuredValue: "
+"configuredValues.entrySet()) {\n"
+" try {\n"
+" configuredValue.getKey().set(instance, "
+"configuredValue.getValue());\n"
+" }\n"
+" catch (Exception e) {\n"
+" throw new InjectionException(e);\n"
+" }\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void postConstruct(X instance) {\n"
+" it.postConstruct(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void preDestroy(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void dispose(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public X produce(CreationalContext<X> ctx) {\n"
+" return it.produce(ctx);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pit.setInjectionTarget(wrapped);\n"
+" \n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:312
+#, no-c-format
+msgid ""
+"There's a lot more to the portable extension SPI than what we've discussed "
+"here. Check out the CDI spec or Javadoc for more information. For now, we'll "
+"just mention one more extension point."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:320
+#, no-c-format
msgid "The <literal>Context</literal> interface"
msgstr "Das <literal>Context</literal>-Interface"
#. Tag: para
-#: extend.xml:114
+#: extend.xml:322
#, fuzzy, no-c-format
msgid ""
"The <literal>Context</literal> interface supports addition of new scopes to "
@@ -294,7 +1011,7 @@
"Geltungsbereiche zu neuen Umgebungen."
#. Tag: programlisting
-#: extend.xml:119
+#: extend.xml:327
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface Context {\n"
@@ -316,7 +1033,7 @@
"}"
#. Tag: para
-#: extend.xml:121
+#: extend.xml:329
#, fuzzy, no-c-format
msgid ""
"For example, we might implement <literal>Context</literal> to add a business "
@@ -328,6 +1045,16 @@
"Konversationsgeltungsbereich einer Wickets verwendenen Anwendung "
"hinzuzufügen."
+#, fuzzy
+#~ msgid ""
+#~ "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>."
+
#~ msgid "Extending Web Beans"
#~ msgstr "Erweiterung von Web Beans"
@@ -450,9 +1177,6 @@
#~ "\n"
#~ "}]]>"
-#~ msgid "The <literal>Bean</literal> class"
-#~ msgstr "Die <literal>Bean</literal>-Klasse"
-
#~ msgid ""
#~ "public abstract class Bean<T> {\n"
#~ " \n"
Modified: doc/trunk/reference/de-DE/extensions.po
===================================================================
--- doc/trunk/reference/de-DE/extensions.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/extensions.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -37,61 +37,51 @@
#, 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."
+"of a logger object into any CDI bean. Simply create an injection point of "
+"type <literal>org.slf4j.Logger</literal> and an appropriate logger object "
+"will be injected into any instance of the bean."
msgstr ""
#. Tag: programlisting
-#: extensions.xml:26
+#: extensions.xml:25
#, no-c-format
msgid ""
-"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
-"import org.jboss.weld.log.Log;\n"
+"<![CDATA[import org.slf4j.Logger;\n"
+"import javax.inject.Inject;\n"
"\n"
"public class Checkout {\n"
-" private @Inject @Logger Log log;\n"
+" private @Inject Logger log;\n"
"\n"
" public void invoiceItems() {\n"
" ShoppingCart cart;\n"
" ...\n"
-" log.debug(\"Items invoiced for {0}\", cart);\n"
+" log.debug(\"Items invoiced for {}\", cart);\n"
" }\n"
"}]]>"
msgstr ""
#. Tag: para
-#: extensions.xml:28
+#: 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 "
-"<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."
+"The example shows how objects can be interpolated into a message. If you use "
+"this approach, you do not need to surround a call to the logger with a "
+"condition like <literal>if ( log.isDebugEnabled() )</literal> to avoid "
+"string concatenation."
msgstr ""
#. Tag: para
-#: extensions.xml:41
+#: extensions.xml:34
#, 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 "
+"You can add Weld logging 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:46
+#: extensions.xml:39
#, no-c-format
msgid ""
"If you are using Weld as your JSR-299 implementation, there's no need to "
Modified: doc/trunk/reference/de-DE/gettingstarted.po
===================================================================
--- doc/trunk/reference/de-DE/gettingstarted.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/gettingstarted.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: ri\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-02-27 15:36+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -155,9 +155,9 @@
#: gettingstarted.xml:83
#, no-c-format
msgid ""
-"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"To deploy the examples to JBoss AS, you'll need <ulink url=\"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="
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink url="
"\"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 "
@@ -191,7 +191,7 @@
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."
+"<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:"
@@ -268,21 +268,24 @@
#, no-c-format
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 "
+"<ulink url=\"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
-#, no-c-format
+#, fuzzy, no-c-format
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>."
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:152
@@ -369,7 +372,7 @@
#, 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/"
+"bored, read the log messages), and visit <ulink url=\"http://localhost:8080/"
"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
"pseudo-translating."
msgstr ""
@@ -405,10 +408,10 @@
#: gettingstarted.xml:221
#, no-c-format
msgid ""
-"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"To deploy the examples to GlassFish, you'll need the final <ulink url="
"\"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/"
+"download a <ulink url=\"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, "
@@ -469,7 +472,7 @@
#: gettingstarted.xml:255
#, no-c-format
msgid ""
-"You deploy applications to GlassFish using the <ulink src=\"http://"
+"You deploy applications to GlassFish using the <ulink url=\"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 "
@@ -487,14 +490,14 @@
#, no-c-format
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 "
+"URL <ulink url=\"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://"
+"start it. You can see the examples running at either <ulink url=\"http://"
"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
-"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"ulink> or <ulink url=\"http://localhost:7070/weld-translator\">http://"
"localhost:7070/weld-translator</ulink>, depending on which example you "
"deployed."
msgstr ""
@@ -539,7 +542,7 @@
#, 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."
+"need to download Tomcat 6.0.18 or later from <ulink url=\"http://tomcat."
"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
msgstr ""
"Anschließend laden Sie die Web Beans RI unter <ulink url=\"http://"
@@ -690,7 +693,7 @@
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>!"
msgstr ""
@@ -877,7 +880,7 @@
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://"
+"URL: <ulink url=\"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 ""
@@ -957,7 +960,7 @@
"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"
+"application at the following local URL: <ulink url=\"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 ""
Modified: doc/trunk/reference/de-DE/injection.po
===================================================================
--- doc/trunk/reference/de-DE/injection.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/injection.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: injection\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-02-15 15:56+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -560,12 +560,55 @@
#. Tag: title
#: injection.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"The built-in qualifiers <literal>@Default</literal> and <literal>@Any</"
+"literal>"
+msgstr ""
+"Einfache Web Beans unterstützen nur die <literal>@PostConstruct</literal> "
+"und <literal>@PreDestroy</literal> Callbacks."
+
+#. Tag: para
+#: injection.xml:218
#, no-c-format
+msgid ""
+"Whenever a bean or injection point does not explicitly declare a qualifier, "
+"the container assumes the qualifier <literal>@Default</literal>. From time "
+"to time, you'll need to decare an injection point without specifying a "
+"qualifier. There's a qualifier for that too. All beans have the qualifier "
+"<literal>@Any</literal>. Therefore, by explicitly specifying <literal>@Any</"
+"literal> at an injection point, you suppress the default qualifier, without "
+"otherwise restricting the beans that are eligible for injection."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:225
+#, no-c-format
+msgid ""
+"This is especially useful if you want to iterate over all beans with a "
+"certain bean type. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:226
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject \n"
+"void initServices(@Any Instance<Service> services) { \n"
+" for (Service service: services) {\n"
+" service.init();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: injection.xml:232
+#, no-c-format
msgid "Qualifiers with members"
msgstr ""
#. Tag: para
-#: injection.xml:218
+#: injection.xml:234
#, no-c-format
msgid ""
"Java annotations can have members. We can use annotation members to further "
@@ -576,7 +619,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:224
+#: injection.xml:240
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -594,14 +637,14 @@
"}]]>"
#. Tag: para
-#: injection.xml:226
+#: injection.xml:242
#, no-c-format
msgid ""
"Then we select one of the possible member values when appling the qualifier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:230
+#: injection.xml:246
#, fuzzy, no-c-format
msgid ""
"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
@@ -609,18 +652,18 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:232
+#: injection.xml:248
#, 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>."
+"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
+#: injection.xml:253
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -628,7 +671,7 @@
"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
"public @interface PayBy {\n"
" PaymentMethod value();\n"
-" @NonBinding String comment() default \"\";\n"
+" @Nonbinding String comment() default \"\";\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -639,20 +682,20 @@
"}]]>"
#. Tag: title
-#: injection.xml:242
+#: injection.xml:258
#, no-c-format
msgid "Multiple qualifiers"
msgstr ""
#. Tag: para
-#: injection.xml:244
+#: injection.xml:260
#, 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:248
+#: injection.xml:264
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
@@ -661,7 +704,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:250
+#: injection.xml:266
#, fuzzy, no-c-format
msgid ""
"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
@@ -671,7 +714,7 @@
"Binding-Annotationen eingespeist."
#. Tag: programlisting
-#: injection.xml:255
+#: injection.xml:271
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Synchronous @Reliable\n"
@@ -686,13 +729,13 @@
"}]]>"
#. Tag: title
-#: injection.xml:260
+#: injection.xml:276
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: injection.xml:262
+#: injection.xml:278
#, no-c-format
msgid ""
"Alternatives are beans whose implementation is specific to a particular "
@@ -702,7 +745,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:266
+#: injection.xml:282
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
@@ -716,7 +759,7 @@
"}]]>"
#. Tag: para
-#: injection.xml:268
+#: injection.xml:284
#, no-c-format
msgid ""
"By default, <literal>@Alternative</literal> beans are disabled. We need to "
@@ -726,7 +769,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:274
+#: injection.xml:290
#, no-c-format
msgid ""
"<![CDATA[<beans\n"
@@ -742,7 +785,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:276
+#: injection.xml:292
#, no-c-format
msgid ""
"When an ambiguous dependency exists at an injection point, the container "
@@ -752,13 +795,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:285
+#: injection.xml:301
#, fuzzy, no-c-format
msgid "Fixing unsatisfied and ambiguous dependencies"
msgstr "Unbefriedigende Abhängigkeiten beheben"
#. Tag: para
-#: injection.xml:287
+#: injection.xml:303
#, fuzzy, no-c-format
msgid ""
"The typesafe resolution algorithm fails when, after considering the "
@@ -774,7 +817,7 @@
"nicht dazu in der Lage ist, ein einzuspeisendes Web Bean zu identifizieren."
#. Tag: para
-#: injection.xml:294
+#: injection.xml:310
#, no-c-format
msgid ""
"During the course of your development, you're going to encounter this "
@@ -782,13 +825,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:298
+#: injection.xml:314
#, no-c-format
msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:304
+#: injection.xml:320
#, no-c-format
msgid ""
"create a bean which implements the bean type and has all the qualifier types "
@@ -796,7 +839,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:309
+#: injection.xml:325
#, no-c-format
msgid ""
"make sure that the bean you already have is in the classpath of the module "
@@ -804,7 +847,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:314
+#: injection.xml:330
#, no-c-format
msgid ""
"explicitly enable an <literal>@Alternative</literal> bean that implements "
@@ -813,13 +856,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:321
+#: injection.xml:337
#, no-c-format
msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:327
+#: injection.xml:343
#, no-c-format
msgid ""
"introduce a qualifier to distinguish between the two implementations of the "
@@ -827,14 +870,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:332
+#: injection.xml:348
#, no-c-format
msgid ""
"disable one of the beans by annotating it <literal>@Alternative</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:337
+#: injection.xml:353
#, no-c-format
msgid ""
"move one of the implementations to a module that is not in the classpath of "
@@ -842,7 +885,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:343
+#: injection.xml:359
#, no-c-format
msgid ""
"disable one of two <literal>@Alternative</literal> beans that are trying to "
@@ -850,10 +893,10 @@
msgstr ""
#. Tag: para
-#: injection.xml:350
+#: injection.xml:366
#, no-c-format
msgid ""
-"See <ulink src=\"http://sfwk.org/Documentation/"
+"See <ulink url=\"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 "
@@ -861,13 +904,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:358
+#: injection.xml:374
#, no-c-format
msgid "Just remember: \"There can be only one.\""
msgstr ""
#. Tag: para
-#: injection.xml:361
+#: injection.xml:377
#, no-c-format
msgid ""
"On the other hand, if you really do have an optional or multivalued "
@@ -876,7 +919,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:366
+#: injection.xml:382
#, fuzzy, no-c-format
msgid ""
"Now there's one more issue you need to be aware of when using the dependency "
@@ -886,13 +929,13 @@
"\"Dependency\"-Einspeisung in Web Beans gewahr sein sollte."
#. Tag: title
-#: injection.xml:373
+#: injection.xml:389
#, no-c-format
msgid "Client proxies"
msgstr "Client-Proxies"
#. Tag: para
-#: injection.xml:375
+#: injection.xml:391
#, fuzzy, no-c-format
msgid ""
"Clients of an injected bean do not usually hold a direct reference to a bean "
@@ -903,7 +946,7 @@
"Verweis an eine Web Bean Instanz."
#. Tag: para
-#: injection.xml:380
+#: injection.xml:396
#, fuzzy, no-c-format
msgid ""
"Imagine that a bean bound to the application scope held a direct reference "
@@ -919,7 +962,7 @@
"Anfrage gebundenen Web Beans sehen!"
#. Tag: para
-#: injection.xml:386
+#: injection.xml:402
#, fuzzy, no-c-format
msgid ""
"Now imagine that a bean bound to the session scope holds a direct reference "
@@ -938,7 +981,7 @@
"serialisiert werden!"
#. Tag: para
-#: injection.xml:393
+#: injection.xml:409
#, fuzzy, no-c-format
msgid ""
"Therefore, unless a bean has the default scope <literal>@Dependent</"
@@ -960,7 +1003,7 @@
"dassrekursiv andere eingespeiste Web Beans serialisiert werden."
#. Tag: para
-#: injection.xml:401
+#: injection.xml:417
#, fuzzy, no-c-format
msgid ""
"Unfortunately, due to limitations of the Java language, some Java types "
@@ -975,7 +1018,7 @@
"Einspeisungspunkts nicht geproxiet werden kann."
#. Tag: para
-#: injection.xml:407
+#: injection.xml:423
#, fuzzy, no-c-format
msgid "The following Java types cannot be proxied by the container:"
msgstr ""
@@ -983,7 +1026,7 @@
"werden:"
#. Tag: para
-#: injection.xml:411
+#: injection.xml:427
#, fuzzy, no-c-format
msgid ""
"classes which don't have a non-private constructor with no parameters, and"
@@ -991,7 +1034,7 @@
"Klassen, die keinen nicht-privaten Konstruktor ohne Parameter besitzen sowie "
#. Tag: para
-#: injection.xml:414
+#: injection.xml:430
#, no-c-format
msgid ""
"classes which are declared <literal>final</literal> or have a "
@@ -1001,28 +1044,52 @@
"<literal>final</literal>-Methode besitzen,"
#. Tag: para
-#: injection.xml:419
+#: injection.xml:435
#, no-c-format
msgid "arrays and primitive types."
msgstr "Arrays und primitive Typen."
#. Tag: para
-#: injection.xml:423
-#, fuzzy, no-c-format
+#: injection.xml:439
+#, 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 "
+"It's usually very easy to fix an unproxyable dependency problem. If an "
+"injection point of type <literal>X</literal> results in an unproxyable "
+"dependency, simply:"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:446
+#, no-c-format
+msgid "add a constructor with no parameters to <literal>X</literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:451
+#, no-c-format
+msgid ""
+"change the type of the injection point to <literal>Instance<X></"
+"literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:456
+#, no-c-format
+msgid ""
+"introduce an interface <literal>Y</literal>, implemented by the injected "
+"bean, and change the type of the injection point to <literal>Y</literal>, or"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:462
+#, no-c-format
+msgid ""
+"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:430
+#: injection.xml:469
#, no-c-format
msgid ""
"A future release of Weld will likely support a non-standard workaround for "
@@ -1030,7 +1097,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:437
+#: injection.xml:476
#, no-c-format
msgid ""
"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
@@ -1038,7 +1105,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:442
+#: injection.xml:481
#, no-c-format
msgid ""
"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
@@ -1046,19 +1113,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:448
+#: injection.xml:487
#, no-c-format
msgid "But we didn't get around to implementing this yet."
msgstr ""
#. Tag: title
-#: injection.xml:457
+#: injection.xml:496
#, fuzzy, no-c-format
msgid "Obtaining a contextual instance by programmatic lookup"
msgstr "Erhalt eines Web Beans durch programmatsichen \"Lookup\""
#. Tag: para
-#: injection.xml:459
+#: injection.xml:498
#, no-c-format
msgid ""
"In certain situations, injection is not the most convenient way to obtain a "
@@ -1066,13 +1133,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:466
+#: injection.xml:505
#, no-c-format
msgid "the bean type or qualifiers vary dynamically at runtime, or"
msgstr ""
#. Tag: para
-#: injection.xml:471
+#: injection.xml:510
#, no-c-format
msgid ""
"depending upon the deployment, there may be no bean which satisfies the type "
@@ -1080,13 +1147,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:476
+#: injection.xml:515
#, no-c-format
msgid "we would like to iterate over all beans of a certain type."
msgstr ""
#. Tag: para
-#: injection.xml:482
+#: injection.xml:521
#, fuzzy, no-c-format
msgid ""
"In these situations, the application may obtain an instance of the interface "
@@ -1096,13 +1163,13 @@
"<literal>Manager</literal> erhalten:"
#. Tag: programlisting
-#: injection.xml:487
+#: injection.xml:526
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:489
+#: injection.xml:528
#, fuzzy, no-c-format
msgid ""
"The <literal>get()</literal> method of <literal>Instance</literal> produces "
@@ -1112,25 +1179,25 @@
"Testzwecken "
#. Tag: programlisting
-#: injection.xml:493
+#: injection.xml:532
#, fuzzy, no-c-format
msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:495
+#: injection.xml:534
#, no-c-format
msgid "Qualifiers can be specified in one of two ways:"
msgstr ""
#. Tag: para
-#: injection.xml:501
+#: injection.xml:540
#, no-c-format
msgid "by annotating the <literal>Instance</literal> injection point, or"
msgstr ""
#. Tag: para
-#: injection.xml:504
+#: injection.xml:543
#, fuzzy, no-c-format
msgid ""
"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
@@ -1140,13 +1207,13 @@
"und <literal>@PreDestroy</literal> Callbacks."
#. Tag: para
-#: injection.xml:508
+#: injection.xml:547
#, no-c-format
msgid "Specifying the qualifiers at the injection point is much, much easier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:512
+#: injection.xml:551
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
@@ -1155,7 +1222,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:514
+#: injection.xml:553
#, no-c-format
msgid ""
"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
@@ -1163,7 +1230,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:519
+#: injection.xml:558
#, no-c-format
msgid ""
"Alternatively, we can specify the qualifier dynamically. First, we add the "
@@ -1172,14 +1239,14 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:524
+#: injection.xml:563
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:526
+#: injection.xml:565
#, no-c-format
msgid ""
"Next, we need to obtain an instance of our qualifier type. Since annotatons "
@@ -1190,7 +1257,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:533
+#: injection.xml:572
#, fuzzy, no-c-format
msgid ""
"<![CDATA[abstract class AsynchronousQualifier\n"
@@ -1201,13 +1268,13 @@
" implements CreditCard {}]]>"
#. Tag: para
-#: injection.xml:535
+#: injection.xml:574
#, no-c-format
msgid "In some cases, we can use an anonymous class:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:539
+#: injection.xml:578
#, fuzzy, no-c-format
msgid ""
"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
@@ -1219,14 +1286,14 @@
"AnnotationLiteral<CreditCard>(){});]]>"
#. Tag: para
-#: injection.xml:542
+#: injection.xml:581
#, no-c-format
msgid ""
"We can't use an anonymous class to implement a qualifier type with members."
msgstr ""
#. Tag: para
-#: injection.xml:547
+#: injection.xml:586
#, no-c-format
msgid ""
"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
@@ -1234,7 +1301,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:551
+#: injection.xml:590
#, no-c-format
msgid ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
@@ -1244,13 +1311,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:556
+#: injection.xml:595
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
msgstr "Das <literal>InjectionPoint</literal>-Objekt"
#. Tag: para
-#: injection.xml:558
+#: injection.xml:597
#, fuzzy, no-c-format
msgid ""
"There are certain kinds of dependent objects (beans with scope "
@@ -1264,7 +1331,7 @@
"müssen, um ihre Aufgabe zu erledigen. Zum Beispiel: "
#. Tag: para
-#: injection.xml:564
+#: injection.xml:603
#, no-c-format
msgid ""
"The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1274,7 +1341,7 @@
"Klasse des sie besitzenden Objekts ab."
#. Tag: para
-#: injection.xml:568
+#: injection.xml:607
#, no-c-format
msgid ""
"Injection of a HTTP parameter or header value depends upon what parameter or "
@@ -1284,7 +1351,7 @@
"welcher Parameter oder Header-Name am Einspeisungspunkt festgelegt wurde."
#. Tag: para
-#: injection.xml:572
+#: injection.xml:611
#, no-c-format
msgid ""
"Injection of the result of an EL expression evaluation depends upon the "
@@ -1294,7 +1361,7 @@
"Einspeisungspunkt festgelegten Ausdruck ab."
#. Tag: para
-#: injection.xml:577
+#: injection.xml:616
#, fuzzy, no-c-format
msgid ""
"A bean with scope <literal>@Dependent</literal> may inject an instance of "
@@ -1306,7 +1373,7 @@
"zugreifen, die mit dem zugehörigen Einspeisungspunkt zu tun haben."
#. Tag: para
-#: injection.xml:581
+#: injection.xml:620
#, no-c-format
msgid ""
"Let's look at an example. The following code is verbose, and vulnerable to "
@@ -1316,13 +1383,13 @@
"empfänglich für Refaktorierungsprobleme:"
#. Tag: programlisting
-#: injection.xml:584
+#: injection.xml:623
#, 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:586
+#: injection.xml:625
#, no-c-format
msgid ""
"This clever little producer method lets you inject a JDK <literal>Logger</"
@@ -1333,7 +1400,7 @@
"festgelegt werden müsste:"
#. Tag: programlisting
-#: injection.xml:589
+#: injection.xml:628
#, no-c-format
msgid ""
"<![CDATA[class LogFactory {\n"
@@ -1355,19 +1422,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:591
+#: injection.xml:630
#, no-c-format
msgid "We can now write:"
msgstr "Wir können jetzt schreiben:"
#. Tag: programlisting
-#: injection.xml:593
+#: injection.xml:632
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Logger log;]]>"
msgstr "<![CDATA[@Current Logger log;]]>"
#. Tag: para
-#: injection.xml:595
+#: injection.xml:634
#, fuzzy, no-c-format
msgid ""
"Not convinced? Then here's a second example. To inject HTTP parameters, we "
@@ -1378,14 +1445,14 @@
"Typ festlegen:"
#. Tag: programlisting
-#: injection.xml:598
-#, no-c-format
+#: injection.xml:637
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@BindingType\n"
"@Retention(RUNTIME)\n"
"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
"public @interface HttpParam {\n"
-" @NonBinding public String value();\n"
+" @Nonbinding public String value();\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -1396,14 +1463,14 @@
"}]]>"
#. Tag: para
-#: injection.xml:600
+#: injection.xml:639
#, 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:602
+#: injection.xml:641
#, no-c-format
msgid ""
"<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1413,21 +1480,21 @@
"@HttpParam(\"password\") String password;]]>"
#. Tag: para
-#: injection.xml:604
+#: injection.xml:643
#, no-c-format
msgid "The following producer method does the work:"
msgstr "Die folgende Producer-Methode erledigt die Arbeit:"
#. Tag: programlisting
-#: injection.xml:606
-#, no-c-format
+#: injection.xml:645
+#, fuzzy, 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.getAnnotated().getAnnotation(HttpParam."
+"class).value());\n"
" }\n"
"\n"
"}]]>"
@@ -1443,19 +1510,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:608
+#: injection.xml:647
#, 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>)"
+"<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)"
#. Tag: para
-#: injection.xml:611
+#: injection.xml:650
#, fuzzy, no-c-format
msgid ""
"The container provides a built-in bean that implements the "
@@ -1465,15 +1532,17 @@
"<literal>InjectionPoint</literal>-Interface implementiert:"
#. Tag: programlisting
-#: injection.xml:614
-#, no-c-format
+#: injection.xml:653
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface InjectionPoint { \n"
-" public Object getInstance(); \n"
-" public Bean<?> getBean(); \n"
-" public Member getMember(): \n"
-" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
-" public Set<T extends Annotation> getAnnotations(); \n"
+" public Type getType();\n"
+" public Set<Annotation> getQualifiers();\n"
+" public Bean<?> getBean();\n"
+" public Member getMember();\n"
+" public Annotated getAnnotated();\n"
+" public boolean isDelegate();\n"
+" public boolean isTransient();\n"
"}]]>"
msgstr ""
"<![CDATA[public interface InjectionPoint { \n"
@@ -1484,7 +1553,20 @@
" public Set<T extends Annotation> getAnnotations(); \n"
"}]]>"
+#, fuzzy
#~ 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 ""
+#~ "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>."
+
+#~ msgid ""
#~ "Web Beans supports three primary mechanisms for dependency injection:"
#~ msgstr ""
#~ "Web Beans unterstützt drei primäre Mechanismen für \"Dependency\"-"
Modified: doc/trunk/reference/de-DE/interceptors.po
===================================================================
--- doc/trunk/reference/de-DE/interceptors.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/interceptors.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: interceptors\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-02-15 19:11+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -483,7 +483,7 @@
"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:"
+"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 "
@@ -498,7 +498,7 @@
"@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"
Modified: doc/trunk/reference/de-DE/next.po
===================================================================
--- doc/trunk/reference/de-DE/next.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/next.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: next\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-01-28 06:27+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -27,10 +27,10 @@
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 "
+"remains the authority for information on CDI. The spec is 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-"
+"is available on the <ulink url=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
"299 page</ulink> at the JCP website."
msgstr ""
@@ -38,9 +38,9 @@
#: next.xml:14
#, fuzzy, no-c-format
msgid ""
-"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"The CDI reference implementation, Weld, is being developed at the <ulink url="
"\"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."
+"team and the CDI spec lead blog at <ulink url=\"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 "
@@ -56,9 +56,9 @@
#: next.xml:22
#, no-c-format
msgid ""
-"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"We encourage you to follow the <ulink url=\"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 url=\"http://seamframework.org/Weld/Development\">development</"
"ulink>. If you are reading this guide, you likely have something to offer."
msgstr ""
@@ -75,7 +75,7 @@
#: next.xml:35
#, no-c-format
msgid ""
-"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"Checkout source from <ulink url=\"http://anonsvn.jboss.org/repos/weld/doc/"
"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
"ulink> using SVN"
msgstr ""
@@ -92,8 +92,9 @@
#: 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)."
+"Edit the <literal>pom.xml</literal> file in the root of the checkout and "
+"remove the \"<literal>-SNAPSHOT</literal>\" from the version element (so you "
+"don't have to build other Weld modules)."
msgstr ""
#. Tag: para
@@ -121,7 +122,8 @@
#, 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"
+"You can find the HTML version in <literal>target/docbook/publish/en-US/html</"
+"literal>."
msgstr ""
#. Tag: para
Modified: doc/trunk/reference/de-DE/part1.po
===================================================================
--- doc/trunk/reference/de-DE/part1.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/part1.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: part1\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-02-22 16:09+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -19,7 +19,7 @@
#: part1.xml:14
#, fuzzy, no-c-format
msgid ""
-"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"The <ulink url=\"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 "
@@ -360,7 +360,7 @@
#: part1.xml:197
#, no-c-format
msgid ""
-"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"Finally, CDI is a <ulink url=\"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/de-DE/producermethods.po
===================================================================
--- doc/trunk/reference/de-DE/producermethods.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/producermethods.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: producermethods\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-02-23 08:08+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -226,14 +226,27 @@
"<literal>PaymentStrategy</literal> an den Session-Kontext gebunden. Die "
"Producer-Methode wird in drselben Session nicht mehr aufgerufen."
+#. Tag: para
+#: producermethods.xml:95
+#, no-c-format
+msgid ""
+"A producer method does <emphasis>not</emphasis> inherit the scope of the "
+"bean that declares the method. There are two different beans here: the "
+"producer method, and the bean which declares it. The scope of the producer "
+"method determines how often the method will be called, and the lifecycle of "
+"the objects returned by the method. The scope of the bean that declares the "
+"producer method determines the lifecycle of the object upon which the "
+"producer method is invoked."
+msgstr ""
+
#. Tag: title
-#: producermethods.xml:97
+#: producermethods.xml:107
#, no-c-format
msgid "Injection into producer methods"
msgstr "Einspeisung in Producer-Methoden"
#. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:109
#, no-c-format
msgid ""
"There's one potential problem with the code above. The implementations of "
@@ -249,7 +262,7 @@
"nutzen und besitzen keine Interzeptoren."
#. Tag: para
-#: producermethods.xml:106
+#: producermethods.xml:116
#, fuzzy, no-c-format
msgid ""
"If this isn't what we want, we can use dependency injection into the "
@@ -260,7 +273,7 @@
"erhalten: "
#. Tag: programlisting
-#: producermethods.xml:111
+#: producermethods.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -288,7 +301,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:123
#, fuzzy, no-c-format
msgid ""
"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
@@ -311,7 +324,7 @@
"vorsichtig wenn Sie Web Bean Instanzen von Producer-Methoden wiedergeben!"
#. Tag: para
-#: producermethods.xml:122
+#: producermethods.xml:132
#, fuzzy, no-c-format
msgid ""
"There's at least three ways we could go about fixing this bug. We could "
@@ -328,7 +341,7 @@
"<literal>@RequestScoped</literal> zu ändern."
#. Tag: para
-#: producermethods.xml:129
+#: producermethods.xml:139
#, fuzzy, no-c-format
msgid ""
"But a more common solution is to use the special <literal>@New</literal> "
@@ -338,19 +351,19 @@
"Binding-Annotation zu verwenden."
#. Tag: title
-#: producermethods.xml:134
+#: producermethods.xml:144
#, 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:136
+#: producermethods.xml:146
#, no-c-format
msgid "Consider the following producer method:"
msgstr "Sehen Sie sich folgende Producer-Methode an:"
#. Tag: programlisting
-#: producermethods.xml:138
+#: producermethods.xml:148
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -382,7 +395,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:140
+#: producermethods.xml:150
#, no-c-format
msgid ""
"Then a new <emphasis>dependent</emphasis> instance of "
@@ -400,13 +413,13 @@
"am Ende der Session."
#. Tag: title
-#: producermethods.xml:150
+#: producermethods.xml:160
#, fuzzy, no-c-format
msgid "Disposer methods"
msgstr "Producer-Methoden"
#. Tag: para
-#: producermethods.xml:152
+#: producermethods.xml:162
#, no-c-format
msgid ""
"Some producer methods return objects that require explicit destruction. For "
@@ -414,7 +427,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:157
+#: producermethods.xml:167
#, no-c-format
msgid ""
"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
@@ -423,7 +436,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:159
+#: producermethods.xml:169
#, no-c-format
msgid ""
"Destruction can be performed by a matching <emphasis>disposer method</"
@@ -431,7 +444,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:162
+#: producermethods.xml:172
#, no-c-format
msgid ""
"<![CDATA[void close(@Disposes Connection connection) {\n"
@@ -440,7 +453,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:164
+#: producermethods.xml:174
#, no-c-format
msgid ""
"The disposer method must have at least one parameter, annotated "
Modified: doc/trunk/reference/de-DE/resources.po
===================================================================
--- doc/trunk/reference/de-DE/resources.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/resources.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -66,6 +66,45 @@
#: resources.xml:33
#, no-c-format
msgid ""
+"The CDI specification uses the term <emphasis>resource</emphasis> to refer, "
+"generically, to any of the following kinds of object which might be "
+"available in the Java EE component environment:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:38
+#, no-c-format
+msgid ""
+"JDBC <literal>Datasource</literal>s, JMS <literal>Queue</literal>s, "
+"<literal>Topic</literal>s and <literal>ConnectionFactory</literal>s, "
+"JavaMail <literal>Session</literal>s and other transactional resources "
+"including JCA connectors,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"JPA <literal>EntityManager</literal>s and <literal>EntityManagerFactory</"
+"literal>s,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:46
+#, no-c-format
+msgid "remote EJBs, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid "web services"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:53
+#, 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>, "
@@ -73,7 +112,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:37
+#: resources.xml:57
#, no-c-format
msgid ""
"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
@@ -81,7 +120,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:39
+#: resources.xml:59
#, no-c-format
msgid ""
"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
@@ -90,7 +129,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:41
+#: resources.xml:61
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
@@ -98,7 +137,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:43
+#: resources.xml:63
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
@@ -106,7 +145,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:45
+#: resources.xml:65
#, no-c-format
msgid ""
"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
@@ -114,47 +153,69 @@
msgstr ""
#. Tag: para
-#: resources.xml:47
+#: resources.xml:67
#, no-c-format
msgid "The field may be static (but not final)."
msgstr ""
#. Tag: para
-#: resources.xml:49
+#: resources.xml:69
#, no-c-format
+msgid "A resource declaration really contains two pieces of information:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:73
+#, no-c-format
msgid ""
+"the JNDI name, EJB link, persistence unit name, or other metadata needed to "
+"obtain a reference to the resource from the component environment, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:77
+#, no-c-format
+msgid ""
+"the type and qualifiers that we will use to inject the reference into our "
+"beans."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:82
+#, 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</"
+"sense to declare your resources in a class annotated <literal>@Alternative</"
"literal>."
msgstr ""
#. Tag: title
-#: resources.xml:56
+#: resources.xml:90
#, no-c-format
msgid "Typesafe resource injection"
msgstr ""
#. Tag: para
-#: resources.xml:58
+#: resources.xml:92
#, no-c-format
msgid "These resources can now be injected in the usual way."
msgstr ""
#. Tag: programlisting
-#: resources.xml:62
+#: resources.xml:96
#, no-c-format
msgid "<![CDATA[@Inject Catalog catalog;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:63
+#: resources.xml:97
#, no-c-format
msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:64
+#: resources.xml:98
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManager "
@@ -162,7 +223,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:65
+#: resources.xml:99
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
@@ -170,13 +231,13 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:66
+#: resources.xml:100
#, no-c-format
msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
msgstr ""
#. Tag: para
-#: resources.xml:68
+#: resources.xml:102
#, no-c-format
msgid ""
"The bean type and qualifiers of the resource are determined by the producer "
@@ -184,7 +245,7 @@
msgstr ""
#. Tag: para
-#: resources.xml:72
+#: resources.xml:106
#, no-c-format
msgid ""
"It might seem like a pain to have to write these extra producer field "
@@ -196,25 +257,25 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:79
+#: resources.xml:113
#, no-c-format
msgid "@Inject @CustomerDatabase EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:81
+#: resources.xml:115
#, no-c-format
msgid "instead of"
msgstr ""
#. Tag: programlisting
-#: resources.xml:83
+#: resources.xml:117
#, no-c-format
msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:85
+#: resources.xml:119
#, 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/ri-spi.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: ri-spi\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-05 14:40+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -864,6 +864,20 @@
#. Tag: para
#: ri-spi.xml:497
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.ConversationAwareViewHandler</literal> as a "
+"delegating view handler."
+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:502
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -875,7 +889,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:504
+#: ri-spi.xml:509
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -885,7 +899,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:511 ri-spi.xml:557
+#: ri-spi.xml:516 ri-spi.xml:562
#, no-c-format
msgid ""
"There are a number of ways you can obtain the bean manager for the module. "
@@ -895,7 +909,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:518
+#: ri-spi.xml:523
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must register "
@@ -911,19 +925,19 @@
"Applikation erfolgen."
#. Tag: para
-#: ri-spi.xml:526
+#: ri-spi.xml:531
#, no-c-format
msgid "Weld only supports JSF 1.2 and above."
msgstr ""
#. Tag: term
-#: ri-spi.xml:533
+#: ri-spi.xml:538
#, no-c-format
msgid "<term>JSP</term>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:538
+#: ri-spi.xml:543
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must register "
@@ -937,7 +951,7 @@
"Applikation erfolgen."
#. Tag: para
-#: ri-spi.xml:543
+#: ri-spi.xml:548
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -948,7 +962,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:550
+#: ri-spi.xml:555
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -958,13 +972,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:567
+#: ri-spi.xml:572
#, no-c-format
msgid "Session Bean Interceptor"
msgstr "Session Bean Interzeptor"
#. Tag: para
-#: ri-spi.xml:571
+#: ri-spi.xml:576
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into an EJB environment you must register "
@@ -980,7 +994,7 @@
"Enterprise Beans benutzende Web Beans Applikation erfolgen."
#. Tag: para
-#: ri-spi.xml:578
+#: ri-spi.xml:583
#, no-c-format
msgid ""
"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -988,13 +1002,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:586
+#: ri-spi.xml:591
#, fuzzy, no-c-format
msgid "The <literal>weld-core.jar</literal>"
msgstr "Die <literal>webbeans-ri.jar</literal>"
#. Tag: para
-#: ri-spi.xml:590
+#: ri-spi.xml:595
#, no-c-format
msgid ""
"Weld can reside on an isolated classloader, or on a shared classloader. If "
@@ -1006,7 +1020,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:596
+#: ri-spi.xml:601
#, no-c-format
msgid ""
"You can provide your own implementation of <literal>Singleton</literal> and "
@@ -1015,7 +1029,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:601
+#: ri-spi.xml:606
#, no-c-format
msgid ""
"Weld also provides an implementation of Thread Context Classloader per "
@@ -1023,13 +1037,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:608
+#: ri-spi.xml:613
#, no-c-format
msgid "Binding the manager in JNDI"
msgstr ""
#. Tag: para
-#: ri-spi.xml:612
+#: ri-spi.xml:617
#, no-c-format
msgid ""
"You should bind the bean manager for the bean deployment archive into JNDI "
@@ -1040,13 +1054,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:622
+#: ri-spi.xml:627
#, no-c-format
msgid "Performing CDI injection on Java EE component classes"
msgstr ""
#. Tag: para
-#: ri-spi.xml:626
+#: ri-spi.xml:631
#, no-c-format
msgid ""
"The CDI specification requires the container to provide injection into non-"
@@ -1058,7 +1072,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:634
+#: ri-spi.xml:639
#, no-c-format
msgid ""
"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
@@ -1069,7 +1083,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:641
+#: ri-spi.xml:646
#, no-c-format
msgid ""
"To help the integrator, Weld provides <literal>WeldManager."
@@ -1078,7 +1092,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:646
+#: ri-spi.xml:651
#, no-c-format
msgid ""
"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
@@ -1106,7 +1120,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:647
+#: ri-spi.xml:652
#, no-c-format
msgid ""
"The container may intersperse other operations between these calls. Further, "
@@ -1115,7 +1129,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:651
+#: ri-spi.xml:656
#, no-c-format
msgid ""
"When performing injections on EJBs you must use the Weld-defined SPI, "
@@ -1125,7 +1139,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:656
+#: ri-spi.xml:661
#, no-c-format
msgid ""
"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
Modified: doc/trunk/reference/de-DE/scopescontexts.po
===================================================================
--- doc/trunk/reference/de-DE/scopescontexts.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/scopescontexts.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: scopescontexts\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-05 17:54+1100\n"
"Last-Translator: \n"
"Language-Team: <en at li.org>\n"
@@ -83,18 +83,23 @@
#: 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."
+"JPA entities aren't a great fit for this model. Entities have their whole "
+"own lifecycle and identity model which just doesn't map naturally to the "
+"model used in CDI. Therefore, we recommend against treating entities as CDI "
+"beans. You're certainly going to run into problems if you try to give an "
+"entity a scope other than the default scope <literal>@Dependent</literal>. "
+"The client proxy will get in the way if you try to pass an injected instance "
+"to the JPA <literal>EntityManager</literal>."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:41
+#: scopescontexts.xml:45
#, no-c-format
msgid "Scope types"
msgstr "Typen von Geltungsbereichen"
#. Tag: para
-#: scopescontexts.xml:43
+#: scopescontexts.xml:47
#, fuzzy, no-c-format
msgid ""
"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
@@ -105,7 +110,7 @@
"Annotation für einen Geltungsbereich-Typ erstellt:"
#. Tag: programlisting
-#: scopescontexts.xml:48
+#: scopescontexts.xml:52
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ScopeType\n"
@@ -119,7 +124,7 @@
"public @interface ClusterScoped {}]]>"
#. Tag: para
-#: scopescontexts.xml:50
+#: scopescontexts.xml:54
#, fuzzy, no-c-format
msgid ""
"Of course, that's the easy part of the job. For this scope type to be "
@@ -136,7 +141,7 @@
"technisches Unterfangen, das nur für Framework-Entwicklung vorgesehen ist."
#. Tag: para
-#: scopescontexts.xml:57
+#: scopescontexts.xml:61
#, fuzzy, no-c-format
msgid ""
"We can apply a scope type annotation to a bean implementation class to "
@@ -147,7 +152,7 @@
"festzulegen:"
#. Tag: programlisting
-#: scopescontexts.xml:61
+#: scopescontexts.xml:65
#, no-c-format
msgid ""
"<![CDATA[@ClusterScoped\n"
@@ -157,7 +162,7 @@
"public class SecondLevelCache { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:63
+#: scopescontexts.xml:67
#, fuzzy, no-c-format
msgid "Usually, you'll use one of CDI's built-in scopes."
msgstr ""
@@ -165,49 +170,49 @@
"Beans."
#. Tag: title
-#: scopescontexts.xml:68
+#: scopescontexts.xml:72
#, no-c-format
msgid "Built-in scopes"
msgstr "Eingebaute Geltungsbereiche"
#. Tag: para
-#: scopescontexts.xml:70
+#: scopescontexts.xml:74
#, fuzzy, no-c-format
msgid "CDI defines four built-in scopes:"
msgstr "Web Beans definiert vier eingebaute Geltungsbereiche:"
#. Tag: literal
-#: scopescontexts.xml:74
+#: scopescontexts.xml:78
#, no-c-format
msgid "@RequestScoped"
msgstr "@RequestScoped"
#. Tag: literal
-#: scopescontexts.xml:77
+#: scopescontexts.xml:81
#, no-c-format
msgid "@SessionScoped"
msgstr "@SessionScoped"
#. Tag: literal
-#: scopescontexts.xml:80
+#: scopescontexts.xml:84
#, no-c-format
msgid "@ApplicationScoped"
msgstr "@ApplicationScoped"
#. Tag: literal
-#: scopescontexts.xml:83
+#: scopescontexts.xml:87
#, no-c-format
msgid "@ConversationScoped"
msgstr "@ConversationScoped"
#. Tag: para
-#: scopescontexts.xml:87
+#: scopescontexts.xml:91
#, fuzzy, no-c-format
msgid "For a web application that uses CDI:"
msgstr "Für eine Web Beans verwendende Webanwendung:"
#. Tag: para
-#: scopescontexts.xml:91
+#: scopescontexts.xml:95
#, no-c-format
msgid ""
"any servlet request has access to active request, session and application "
@@ -217,52 +222,64 @@
"Geltungsbereiche der Anwendung und zusätzlich "
#. Tag: para
-#: scopescontexts.xml:96
+#: scopescontexts.xml:100
#, 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:101
+#: scopescontexts.xml:105
#, no-c-format
msgid ""
-"A CDI extension can support the conversation scope for other frameworks as "
-"well."
+"A CDI extension can implement support for the conversation scope in other "
+"web frameworks."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:108
#, 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:108
+#: scopescontexts.xml:112
#, no-c-format
msgid "during invocations of EJB remote methods,"
msgstr "während Aufrufen von EJB Remote-Methoden,"
#. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:115
+#, fuzzy, no-c-format
+msgid "during invocations of EJB asynchronous methods,"
+msgstr "während Aufrufen von EJB Remote-Methoden,"
+
+#. Tag: para
+#: scopescontexts.xml:118
#, no-c-format
msgid "during EJB timeouts,"
msgstr "während EJB-Timeouts,"
#. Tag: para
-#: scopescontexts.xml:114
-#, no-c-format
-msgid "during message delivery to a message-driven bean, and"
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
+msgid "during message delivery to a message-driven bean,"
msgstr "während Message Delivery an ein message-betriebenes Bean und "
#. Tag: para
-#: scopescontexts.xml:117
+#: scopescontexts.xml:124
+#, fuzzy, no-c-format
+msgid "during message delivery to a <literal>MessageListener</literal>, and"
+msgstr "während Message Delivery an ein message-betriebenes Bean und "
+
+#. Tag: para
+#: scopescontexts.xml:127
#, no-c-format
msgid "during web service invocations."
msgstr "während Aufrufen von Webdiensten."
#. Tag: para
-#: scopescontexts.xml:121
+#: scopescontexts.xml:131
#, fuzzy, no-c-format
msgid ""
"If the application tries to invoke a bean with a scope that does not have an "
@@ -274,9 +291,18 @@
"literal> vom Web Bean Manager gemeldet."
#. Tag: para
-#: scopescontexts.xml:126
+#: scopescontexts.xml:136
#, no-c-format
msgid ""
+"Managed beans with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal> must be serializable, since the "
+"container passivates the HTTP session from time to time."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:141
+#, no-c-format
+msgid ""
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
@@ -286,13 +312,13 @@
"Einer der Geltungsbereiche jedoch ist neu."
#. Tag: title
-#: scopescontexts.xml:134
+#: scopescontexts.xml:149
#, no-c-format
msgid "The conversation scope"
msgstr "Der Geltungsbereich der Konversation"
#. Tag: para
-#: scopescontexts.xml:136
+#: scopescontexts.xml:151
#, fuzzy, no-c-format
msgid ""
"The conversation scope is a bit like the traditional session scope in that "
@@ -307,13 +333,13 @@
"Geltungsbereich der Konversation jedoch:"
#. Tag: para
-#: scopescontexts.xml:144
+#: scopescontexts.xml:159
#, no-c-format
msgid "is demarcated explicitly by the application, and"
msgstr "ist explizit durch die Applikation demarkiert und "
#. Tag: para
-#: scopescontexts.xml:147
+#: scopescontexts.xml:162
#, no-c-format
msgid ""
"holds state associated with a particular web browser tab in a JSF "
@@ -322,7 +348,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:154
+#: scopescontexts.xml:169
#, fuzzy, no-c-format
msgid ""
"A conversation represents a task—a unit of work from the point of view "
@@ -336,7 +362,7 @@
"mehreren Dingen, so existieren mehrere Konversationen."
#. Tag: para
-#: scopescontexts.xml:160
+#: scopescontexts.xml:175
#, fuzzy, no-c-format
msgid ""
"The conversation context is active during any JSF request. Most "
@@ -351,13 +377,13 @@
"fortgepflanzt werden."
#. Tag: title
-#: scopescontexts.xml:167
+#: scopescontexts.xml:182
#, no-c-format
msgid "Conversation demarcation"
msgstr "Konversationsdemarkierung"
#. Tag: para
-#: scopescontexts.xml:169
+#: scopescontexts.xml:184
#, fuzzy, no-c-format
msgid ""
"CDI provides a built-in bean for controlling the lifecycle of conversations "
@@ -368,13 +394,13 @@
"kann durch Einspeisung erhalten werden:"
#. Tag: programlisting
-#: scopescontexts.xml:174
+#: scopescontexts.xml:189
#, fuzzy, no-c-format
msgid "@Inject Conversation conversation;"
msgstr "@Current Conversation Konversation;"
#. Tag: para
-#: scopescontexts.xml:176
+#: scopescontexts.xml:191
#, no-c-format
msgid ""
"To promote the conversation associated with the current request to a long-"
@@ -390,7 +416,7 @@
"terminieren, rufen Sie <literal>end()</literal> auf."
#. Tag: para
-#: scopescontexts.xml:182
+#: scopescontexts.xml:197
#, fuzzy, no-c-format
msgid ""
"In the following example, a conversation-scoped bean controls the "
@@ -400,7 +426,7 @@
"Konversation, mit der es assoziiert ist:"
#. Tag: programlisting
-#: scopescontexts.xml:186
+#: scopescontexts.xml:201
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ConversationScoped @Stateful\n"
@@ -464,7 +490,7 @@
"}"
#. Tag: para
-#: scopescontexts.xml:188
+#: scopescontexts.xml:203
#, fuzzy, no-c-format
msgid ""
"This bean is able to control its own lifecycle through use of the "
@@ -477,13 +503,13 @@
"Objekt abhängt."
#. Tag: title
-#: scopescontexts.xml:196
+#: scopescontexts.xml:211
#, no-c-format
msgid "Conversation propagation"
msgstr "Konversationsfortpflanzung (Conversation Propagation)"
#. Tag: para
-#: scopescontexts.xml:198
+#: scopescontexts.xml:213
#, fuzzy, no-c-format
msgid ""
"The conversation context automatically propagates with any JSF faces request "
@@ -495,7 +521,7 @@
"automatisch fortgepflanzt, zum Beispiel Navigation via einem Link."
#. Tag: para
-#: scopescontexts.xml:203
+#: scopescontexts.xml:218
#, fuzzy, no-c-format
msgid ""
"We can force the conversation to propagate with a non-faces request by "
@@ -514,13 +540,13 @@
"<literal>conversation</literal> besitzt."
#. Tag: para
-#: scopescontexts.xml:210
+#: scopescontexts.xml:225
#, no-c-format
msgid "Therefore, the following link propagates the conversation:"
msgstr "Daher pflanzt das folgende Link die Konversation fort:"
#. Tag: programlisting
-#: scopescontexts.xml:214
+#: scopescontexts.xml:229
#, no-c-format
msgid ""
"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -530,13 +556,13 @@
">"
#. Tag: para
-#: scopescontexts.xml:216
+#: scopescontexts.xml:231
#, no-c-format
msgid "It's probably better to use one of the link components in JSF 2:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:220
+#: scopescontexts.xml:235
#, no-c-format
msgid ""
"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
@@ -545,7 +571,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:223
+#: scopescontexts.xml:238
#, fuzzy, no-c-format
msgid ""
"The conversation context propagates across redirects, making it very easy to "
@@ -561,13 +587,13 @@
"Manager automatisch einen Anfragenparameter hinzu, um die URL umzuleiten."
#. Tag: title
-#: scopescontexts.xml:233
+#: scopescontexts.xml:248
#, no-c-format
msgid "Conversation timeout"
msgstr "Konversations-Timeout"
#. Tag: para
-#: scopescontexts.xml:235
+#: scopescontexts.xml:250
#, fuzzy, no-c-format
msgid ""
"The container is permitted to destroy a conversation and all state held in "
@@ -585,7 +611,7 @@
"Zeitraum von Inaktivität, ehe die Konversation gelöscht wird."
#. Tag: para
-#: scopescontexts.xml:242
+#: scopescontexts.xml:257
#, fuzzy, no-c-format
msgid ""
"The <literal>Conversation</literal> object provides a method to set the "
@@ -597,24 +623,121 @@
"der die Einstellung ignorieren kann."
#. Tag: programlisting
-#: scopescontexts.xml:247
+#: scopescontexts.xml:262
#, no-c-format
msgid "conversation.setTimeout(timeoutInMillis);"
msgstr "conversation.setTimeout(timeoutInMillis);"
#. Tag: title
-#: scopescontexts.xml:254
+#: scopescontexts.xml:269
+#, fuzzy, no-c-format
+msgid "The singleton pseudo-scope"
+msgstr "Der abhängige Pseudo-Geltungsbereich (\"Pseudo-Scope\")"
+
+#. Tag: para
+#: scopescontexts.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"In addition to the four built-in scopes, CDI also supports two "
+"<emphasis>pseudo-scopes</emphasis>. The first is the <emphasis>singleton "
+"pseudo-scope</emphasis>, which we specify using the annotation "
+"<literal>@Singleton</literal>."
+msgstr ""
+"Neben den vier eingebauten Geltungsbereichen bieten Web Beans den "
+"sogenannten<emphasis>abhängigen Pseudo-Geltungsbereich</emphasis>. Dies ist "
+"der standardmäßige Geltungsbereich für ein Web Bean, das nicht expliziet "
+"einen Typ von Geltungsbereich deklariert."
+
+#. Tag: para
+#: scopescontexts.xml:277
#, no-c-format
+msgid ""
+"Unlike the other scopes, which belong to the package <literal>javax."
+"enterprise.context</literal>, the <literal>@Singleton</literal> annotation "
+"is defined in the package <literal>javax.inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:283
+#, no-c-format
+msgid ""
+"You can guess what \"singleton\" means here. It means a bean that is "
+"instantiated once. Unfortunately, there's a little problem with this pseudo-"
+"scope. Beans with scope <literal>@Singleton</literal> don't have a proxy "
+"object. Clients hold a direct reference to the singleton instance. So we "
+"need to consider the case of a client that can be serialized, for example, "
+"any bean with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal>, any dependent object of a bean with "
+"scope <literal>@SessionScoped</literal> or <literal>@ConversationScoped</"
+"literal>, or any stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:292
+#, no-c-format
+msgid ""
+"Now, if the singleton instance is a simple, immutable, serializable object "
+"like a string, a number or a date, we probably don't mind too much if it "
+"gets duplicated via serialization. However, that makes it no stop being a "
+"true singleton, and we may as well have just declared it with the default "
+"scope."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:298
+#, no-c-format
+msgid ""
+"There are several ways to ensure that the singleton bean remains a singleton "
+"when its client gets serialized:"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:302
+#, no-c-format
+msgid ""
+"have the singleton bean implement <literal>writeResolve()</literal> and "
+"<literal>readReplace()</literal> (as defined by the Java serialization "
+"specification),"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:308
+#, no-c-format
+msgid ""
+"make sure the client keeps only a transient reference to the singleton bean, "
+"or"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:313
+#, no-c-format
+msgid ""
+"give the client a reference of type <literal>Instance<X></literal> "
+"where <literal>X</literal> is the bean type of the singleton bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:320
+#, no-c-format
+msgid ""
+"A fourth, better solution is to instead use <literal>@ApplicationScoped</"
+"literal>, allowing the container to proxy the bean, and take care of "
+"serialization problems automatically."
+msgstr ""
+
+#. Tag: title
+#: scopescontexts.xml:326
+#, no-c-format
msgid "The dependent pseudo-scope"
msgstr "Der abhängige Pseudo-Geltungsbereich (\"Pseudo-Scope\")"
#. Tag: para
-#: scopescontexts.xml:256
+#: scopescontexts.xml:328
#, fuzzy, no-c-format
msgid ""
-"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 "
-"bean which does not explicitly declare a scope type."
+"Finally, CDI features the so-called <emphasis>dependent pseudo-scope</"
+"emphasis>. This is the default scope for a 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 "
@@ -622,7 +745,7 @@
"einen Typ von Geltungsbereich deklariert."
#. Tag: para
-#: scopescontexts.xml:261
+#: scopescontexts.xml:333
#, fuzzy, no-c-format
msgid ""
"For example, this bean has the scope type <literal>@Dependent</literal>:"
@@ -631,24 +754,56 @@
"<literal>@Dependent</literal>:"
#. Tag: programlisting
-#: scopescontexts.xml:265
+#: scopescontexts.xml:337
#, no-c-format
msgid "<![CDATA[public class Calculator { ... }]]>"
msgstr "<![CDATA[public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:267
+#: scopescontexts.xml:339
#, no-c-format
msgid ""
-"An instances of a dependent bean is never shared between different clients "
-"or different injection points. It is strictly a <emphasis>dependent object</"
+"An instance 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:273
+#: scopescontexts.xml:345
+#, no-c-format
+msgid ""
+"If a Unified EL expression refers to a dependent bean by EL name, an "
+"instance of the bean is instantiated every time the expression is evaluated. "
+"The instance is not reused during any other expression evaluation."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:351
+#, no-c-format
+msgid ""
+"If you need to access a bean directly by EL name in a JSF page, you probably "
+"need to give it a scope other than <literal>@Dependent</literal>. Otherwise, "
+"any value that gets set to the bean by a JSF input will be lost immediately. "
+"That's why CDI features the <literal>@Model</literal> stereotype; it lets "
+"you give a bean a name, and set its scope to <literal>@RequestScoped</"
+"literal> in one stroke. If you need to access a bean that really "
+"<emphasis>has</emphasis> to have the scope <literal>@Dependent</literal> "
+"from a JSF page, inject it into a different bean, and expose it to EL via a "
+"getter method."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:361
+#, no-c-format
+msgid ""
+"Beans with scope <literal>@Dependent</literal> don't need a proxy object. "
+"The client holds a direct reference to its instance."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:366
#, fuzzy, no-c-format
msgid ""
"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
@@ -660,13 +815,13 @@
"deklariert sind."
#. Tag: title
-#: scopescontexts.xml:281
+#: scopescontexts.xml:374
#, fuzzy, no-c-format
msgid "The <literal>@New</literal> qualifier"
msgstr "Die <literal>@New</literal>-Annotation"
#. Tag: para
-#: scopescontexts.xml:283
+#: scopescontexts.xml:376
#, no-c-format
msgid ""
"The built-in qualifier <literal>@New</literal> allows us to obtain a "
@@ -674,13 +829,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:287
+#: scopescontexts.xml:380
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
msgstr "<![CDATA[@New Calculator calculator;]]>"
#. Tag: para
-#: scopescontexts.xml:289
+#: scopescontexts.xml:382
#, no-c-format
msgid ""
"The class must be a valid managed bean or session bean, but need not be an "
@@ -688,7 +843,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:291
+#: scopescontexts.xml:384
#, fuzzy, no-c-format
msgid ""
"This works even if <literal>Calculator</literal> is <emphasis>already</"
@@ -699,7 +854,7 @@
"Beispiel:"
#. Tag: programlisting
-#: scopescontexts.xml:296
+#: scopescontexts.xml:389
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped\n"
@@ -709,7 +864,7 @@
"public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:298
+#: scopescontexts.xml:391
#, no-c-format
msgid ""
"So the following injected attributes each get a different instance of "
@@ -719,7 +874,7 @@
"unterschiedliche Instanz von <literal>Calculator</literal>:"
#. Tag: programlisting
-#: scopescontexts.xml:302
+#: scopescontexts.xml:395
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class PaymentCalc {\n"
@@ -735,7 +890,7 @@
"}]]>"
#. Tag: para
-#: scopescontexts.xml:304
+#: scopescontexts.xml:397
#, no-c-format
msgid ""
"The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -750,7 +905,7 @@
"den besitzenden <literal>PaymentCalc</literal> gebunden ist."
#. Tag: para
-#: scopescontexts.xml:310
+#: scopescontexts.xml:403
#, no-c-format
msgid ""
"This feature is particularly useful with producer methods, as we'll see in "
Modified: doc/trunk/reference/de-DE/weldexamples.po
===================================================================
--- doc/trunk/reference/de-DE/weldexamples.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/de-DE/weldexamples.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -144,7 +144,7 @@
"<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"
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"XML"
"\"><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN"
"\"\n"
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
@@ -524,7 +524,7 @@
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."
+"can open the example natively using the <ulink url=\"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.."
@@ -620,8 +620,9 @@
"<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."
+"<ulink url=\"http://localhost:9090\">http://localhost:9090</ulink> to view "
+"the app. To debug choose <emphasis>Debug as Java Application</emphasis> "
+"instead."
msgstr ""
#. Tag: title
@@ -663,8 +664,9 @@
#: 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>."
+"to deploy the example to Tomcat. You can then access application at <ulink "
+"url=\"http://localhost:8080/weld-numberguess-wicket\">http://localhost:8080/"
+"weld-numberguess-wicket</ulink>."
msgstr ""
#. Tag: para
@@ -976,7 +978,7 @@
"\"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"
+"public class Game\n"
"{\n"
"\n"
" public static final int MAX_NUM_GUESSES = 10;\n"
@@ -1078,19 +1080,18 @@
"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"
+"to get the random number at the start of each game. Note that it can't use "
+"<literal>Instance.get()</literal> like the JSF example does because there "
+"will not be any active contexts like there are 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"
@@ -1545,7 +1546,6 @@
#, 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>."
+"information on Weld, please visit <ulink url=\"http://www.seamframework.org/"
+"Weld\">http://www.seamframework.org/Weld</ulink>."
msgstr ""
Modified: doc/trunk/reference/es-ES/beans.po
===================================================================
--- doc/trunk/reference/es-ES/beans.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/beans.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -484,14 +484,14 @@
#, 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."
+"context until the context is destroyed. There is no way to manually remove a "
+"bean from a context. If you don't want the bean to sit in the session "
+"indefinitely, consider using another scope with a shorted lifespan, such as "
+"the request or conversation scope."
msgstr ""
#. Tag: para
-#: beans.xml:272
+#: beans.xml:273
#, no-c-format
msgid ""
"If a scope is not explicitly specified, then the bean belongs to a special "
@@ -501,19 +501,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:278
+#: beans.xml:279
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:283
+#: beans.xml:284
#, no-c-format
msgid "EL name"
msgstr ""
#. Tag: para
-#: beans.xml:285
+#: beans.xml:286
#, no-c-format
msgid ""
"If you want to reference a bean in non-Java code that supports Unified EL "
@@ -522,7 +522,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:290
+#: beans.xml:291
#, no-c-format
msgid ""
"The EL name is specified using the <literal>@Named</literal> annotation, as "
@@ -530,7 +530,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:294
+#: beans.xml:295
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
@@ -538,13 +538,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:296
+#: beans.xml:297
#, no-c-format
msgid "Now we can easily use the bean in any JSF or JSP page:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:298
+#: beans.xml:299
#, no-c-format
msgid ""
"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
@@ -553,7 +553,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:301
+#: beans.xml:302
#, no-c-format
msgid ""
"The <literal>@Named</literal> annotation is not what makes the class a bean. "
@@ -563,7 +563,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:308
+#: beans.xml:309
#, no-c-format
msgid ""
"We can let CDI choose a name for us by leaving off the value of the "
@@ -571,7 +571,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:312
+#: beans.xml:313
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named\n"
@@ -579,7 +579,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:314
+#: beans.xml:315
#, no-c-format
msgid ""
"The name defaults to the unqualified class name, decapitalized; in this "
@@ -587,13 +587,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:324
+#: beans.xml:325
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: beans.xml:326
+#: beans.xml:327
#, no-c-format
msgid ""
"We've already seen how qualifiers let us choose between multiple "
@@ -606,7 +606,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:334
+#: beans.xml:335
#, no-c-format
msgid ""
"<![CDATA[public @Alternative\n"
@@ -614,33 +614,33 @@
msgstr ""
#. Tag: para
-#: beans.xml:336
+#: beans.xml:337
#, 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 "
+"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
+#: beans.xml:345
#, no-c-format
msgid ""
"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:351
+#: beans.xml:352
#, no-c-format
msgid "Interceptor binding types"
msgstr ""
#. Tag: para
-#: beans.xml:353
+#: beans.xml:354
#, no-c-format
msgid ""
"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
@@ -651,7 +651,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:360
+#: beans.xml:361
#, no-c-format
msgid ""
"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
@@ -668,7 +668,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:371
+#: beans.xml:372
#, no-c-format
msgid ""
"CDI provides a new approach to binding interceptors to beans that introduces "
@@ -678,7 +678,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:377
+#: beans.xml:378
#, no-c-format
msgid ""
"An interceptor binding type is a user-defined annotation that is itself "
@@ -688,7 +688,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:382
+#: beans.xml:383
#, no-c-format
msgid ""
"<![CDATA[@InterceptorBinding\n"
@@ -699,7 +699,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:384
+#: beans.xml:385
#, no-c-format
msgid ""
"The interceptor that implements transaction management declares this "
@@ -707,7 +707,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:388
+#: beans.xml:389
#, no-c-format
msgid ""
"<![CDATA[public @Transactional @Interceptor\n"
@@ -715,7 +715,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:390
+#: beans.xml:391
#, no-c-format
msgid ""
"We can apply the interceptor to a bean by annotating the bean class with the "
@@ -723,7 +723,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:394
+#: beans.xml:395
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Transactional\n"
@@ -731,7 +731,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:396
+#: beans.xml:397
#, no-c-format
msgid ""
"Notice that <literal>ShoppingCart</literal> and "
@@ -740,18 +740,18 @@
msgstr ""
#. Tag: para
-#: beans.xml:401
+#: beans.xml:402
#, 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 "
+"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
+#: beans.xml:409
#, no-c-format
msgid ""
"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
@@ -759,13 +759,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:418
+#: beans.xml:419
#, no-c-format
msgid "What kinds of classes are beans?"
msgstr ""
#. Tag: para
-#: beans.xml:420
+#: beans.xml:421
#, no-c-format
msgid ""
"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
@@ -774,13 +774,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:427
+#: beans.xml:428
#, no-c-format
msgid "Managed beans"
msgstr ""
#. Tag: para
-#: beans.xml:429
+#: beans.xml:430
#, no-c-format
msgid ""
"A managed bean is a Java class. The basic lifecycle and semantics of a "
@@ -792,19 +792,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:440
+#: beans.xml:441
#, no-c-format
msgid "It is not a non-static inner class."
msgstr ""
#. Tag: para
-#: beans.xml:443
+#: beans.xml:444
#, no-c-format
msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:446
+#: beans.xml:447
#, no-c-format
msgid ""
"It is not annotated with an EJB component-defining annotation or declared as "
@@ -812,7 +812,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:452
+#: beans.xml:453
#, no-c-format
msgid ""
"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
@@ -820,25 +820,25 @@
msgstr ""
#. Tag: para
-#: beans.xml:455
+#: beans.xml:456
#, no-c-format
msgid "It has an appropriate constructor—either:"
msgstr ""
#. Tag: para
-#: beans.xml:460
+#: beans.xml:461
#, no-c-format
msgid "the class has a constructor with no parameters, or"
msgstr ""
#. Tag: para
-#: beans.xml:463
+#: beans.xml:464
#, no-c-format
msgid "the class declares a constructor annotated <literal>@Inject</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:471
+#: beans.xml:472
#, no-c-format
msgid ""
"The unrestricted set of bean types for a managed bean contains the bean "
@@ -847,7 +847,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:474
+#: beans.xml:475
#, no-c-format
msgid ""
"If a managed bean has a public field, it must have the default scope "
@@ -855,7 +855,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:476
+#: beans.xml:477
#, no-c-format
msgid ""
"Managed beans support the <literal>@PostConstruct</literal> and "
@@ -863,7 +863,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:479
+#: beans.xml:480
#, no-c-format
msgid ""
"Session beans are also, technically, managed beans. However, since they have "
@@ -873,13 +873,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:488
+#: beans.xml:489
#, no-c-format
msgid "Session beans"
msgstr ""
#. Tag: para
-#: beans.xml:490
+#: beans.xml:491
#, no-c-format
msgid ""
"Session beans belong to the EJB specification. They have a special "
@@ -892,7 +892,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:499
+#: beans.xml:500
#, no-c-format
msgid ""
"Message-driven and entity beans are by nature non-contextual objects and may "
@@ -904,7 +904,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:507
+#: beans.xml:508
#, no-c-format
msgid ""
"The unrestricted set of bean types for a session bean contains all local "
@@ -916,7 +916,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:515
+#: beans.xml:516
#, no-c-format
msgid ""
"There's no reason to explicitly declare the scope of a stateless session "
@@ -927,7 +927,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:519
+#: beans.xml:520
#, no-c-format
msgid ""
"Stateful session beans may define a <emphasis>remove method</emphasis>, "
@@ -940,7 +940,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:527
+#: beans.xml:528
#, no-c-format
msgid ""
"So, when should we use a session bean instead of a plain managed bean? "
@@ -948,19 +948,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:534
+#: beans.xml:535
#, no-c-format
msgid "method-level transaction management and security,"
msgstr ""
#. Tag: para
-#: beans.xml:537
+#: beans.xml:538
#, no-c-format
msgid "concurrency management,"
msgstr ""
#. Tag: para
-#: beans.xml:540
+#: beans.xml:541
#, no-c-format
msgid ""
"instance-level passivation for stateful session beans and instance-pooling "
@@ -968,19 +968,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:544
+#: beans.xml:545
#, no-c-format
msgid "remote or web service invocation, or"
msgstr ""
#. Tag: para
-#: beans.xml:547
+#: beans.xml:548
#, no-c-format
msgid "timers and asynchronous methods,"
msgstr ""
#. Tag: para
-#: beans.xml:551
+#: beans.xml:552
#, no-c-format
msgid ""
"When we don't need any of these things, an ordinary managed bean will serve "
@@ -988,7 +988,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:553
+#: beans.xml:554
#, no-c-format
msgid ""
"Many beans (including any <literal>@SessionScoped</literal> or "
@@ -998,7 +998,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:559
+#: beans.xml:560
#, no-c-format
msgid ""
"Beans which hold references to heavy-weight resources, or hold a lot of "
@@ -1008,7 +1008,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:565
+#: beans.xml:566
#, no-c-format
msgid ""
"Finally, it's usually obvious when method-level transaction management, "
@@ -1017,7 +1017,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:570
+#: beans.xml:571
#, no-c-format
msgid ""
"The point we're trying to make is: use a session bean when you need the "
@@ -1030,7 +1030,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:578
+#: beans.xml:579
#, no-c-format
msgid ""
"On the other hand, don't be scared to use session beans just because you've "
@@ -1043,13 +1043,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:589
+#: beans.xml:590
#, no-c-format
msgid "Producer methods"
msgstr ""
#. Tag: para
-#: beans.xml:591
+#: beans.xml:592
#, no-c-format
msgid ""
"Not everything that needs to be injected can be boiled down to a bean class "
@@ -1061,7 +1061,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:599
+#: beans.xml:600
#, no-c-format
msgid ""
"A <emphasis>producer method</emphasis> is a method that acts as a source of "
@@ -1072,7 +1072,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:606
+#: beans.xml:607
#, no-c-format
msgid ""
"A producer method is declared by annotating a method of a bean class with "
@@ -1080,7 +1080,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:611
+#: beans.xml:612
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
@@ -1096,7 +1096,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:613
+#: beans.xml:614
#, no-c-format
msgid ""
"We can't write a bean class that is itself a random number. But we can "
@@ -1111,25 +1111,25 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:622
+#: beans.xml:623
#, no-c-format
msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
msgstr ""
#. Tag: para
-#: beans.xml:624
+#: beans.xml:625
#, no-c-format
msgid "Even in a Unified EL expression:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:628
+#: beans.xml:629
#, no-c-format
msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
msgstr ""
#. Tag: para
-#: beans.xml:630
+#: beans.xml:631
#, no-c-format
msgid ""
"A producer method must be a non-abstract method of a managed bean class or "
@@ -1139,13 +1139,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:636
+#: beans.xml:637
#, no-c-format
msgid "The bean types of a producer method depend upon the method return type:"
msgstr ""
#. Tag: para
-#: beans.xml:642
+#: beans.xml:643
#, no-c-format
msgid ""
"If the return type is an interface, the unrestricted set of bean types "
@@ -1154,7 +1154,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:648
+#: beans.xml:649
#, no-c-format
msgid ""
"If a return type is primitive or is a Java array type, the unrestricted set "
@@ -1163,7 +1163,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:654
+#: beans.xml:655
#, no-c-format
msgid ""
"If the return type is a class, the unrestricted set of bean types contains "
@@ -1172,7 +1172,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:661
+#: beans.xml:662
#, no-c-format
msgid ""
"If the producer method has method parameters, the container will look for a "
@@ -1181,7 +1181,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:667
+#: beans.xml:668
#, no-c-format
msgid ""
"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
@@ -1190,7 +1190,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:669
+#: beans.xml:670
#, no-c-format
msgid ""
"We'll talk much more about producer methods in <xref linkend="
@@ -1198,13 +1198,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:674
+#: beans.xml:675
#, no-c-format
msgid "Producer fields"
msgstr ""
#. Tag: para
-#: beans.xml:676
+#: beans.xml:677
#, no-c-format
msgid ""
"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
@@ -1214,7 +1214,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:682
+#: beans.xml:683
#, no-c-format
msgid ""
"<![CDATA[public class Shop {\n"
@@ -1224,7 +1224,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:684
+#: beans.xml:685
#, no-c-format
msgid ""
"The rules for determining the bean types of a producer field parallel the "
@@ -1232,7 +1232,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:688
+#: beans.xml:689
#, no-c-format
msgid ""
"A producer field is really just a shortcut that lets us avoid writing a "
@@ -1242,3 +1242,405 @@
"linkend=\"resources\"/>. Because we can't wait to get to work on some "
"examples."
msgstr ""
+
+#. Tag: title
+#: beans.xml:701
+#, no-c-format
+msgid "The (minimal) bean descriptor"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:703
+#, no-c-format
+msgid ""
+"First, it's important to understand that the XML bean descriptor in CDI "
+"(beans.xml) is not there to define beans in XML, like in other popular bean "
+"containers. Rather, you use this file to enable CDI services for the current "
+"bean archive that is difficult to define consistently in Java or which you "
+"don't want to define in Java (e.g., to accomodate testing)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:710
+#, no-c-format
+msgid ""
+"For example, the XML is used to enable interceptors (which are disabled by "
+"default) and define interceptor ordering. So the bean descriptor "
+"<emphasis>complements</emphasis> the metadata that is provided in the Java "
+"language syntax. (You may still want to define beans in XML for other "
+"reasons, but that is the concern of an extension)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:717
+#, no-c-format
+msgid ""
+"Let's first ask why the beans.xml is required, then look at what services it "
+"is used used to enable."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:722
+#, no-c-format
+msgid "Why is beans.xml required?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:724
+#, no-c-format
+msgid ""
+"You may be wondering, if beans are not described using XML, why do we need "
+"beans.xml at all, particularly if you don't have anything that you would "
+"need the bean descriptor to enable (alternatives, interceptors or "
+"decorators)?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:730
+#, no-c-format
+msgid "There are two things about CDI that we need to keep in mind:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:736
+#, no-c-format
+msgid ""
+"CDI does not require any special declaration for a Java class to be injected "
+"- that's right, no annotation or XML declaration at all!"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:742
+#, no-c-format
+msgid ""
+"CDI does not define any special kind of module - CDI beans can be deployed "
+"in a library JAR, EJB JAR, WAR, RAR, or JVM classpath directory."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:749
+#, no-c-format
+msgid ""
+"The CDI specification calls the process of identifying beans in modules "
+"<emphasis>bean discovery</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:753
+#, no-c-format
+msgid ""
+"So there are potentially a lot of classes in the classpath which might be "
+"beans! We don't want to force the container to scan every one of those "
+"classes at startup and build its internal metamodel for each of them. This "
+"really could make bean discovery very slow."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:759
+#, no-c-format
+msgid ""
+"But there's another reason we need to give the user some control over which "
+"classes are available for injection. We don't want every class in the "
+"classpath to potentially match an injection point, including classes that "
+"were never intended to be injected into things. This would force the "
+"developer to have to use qualifiers much more often to disambiguate "
+"injection points."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:766
+#, no-c-format
+msgid "So we have two choices. We could have the developer:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:772
+#, no-c-format
+msgid "explicitly exclude modules which do not contain beans, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:775
+#, no-c-format
+msgid "explicitly declare modules which do contain beans."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:779
+#, no-c-format
+msgid ""
+"It should be clear that the second option is a much better way to go. Thus, "
+"CDI has the notion of a bean archive. A bean archive is just a module that "
+"has a file named beans.xml in the META-INF directory. The container looks "
+"for beans in bean archives. It ignores other modules."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:785
+#, no-c-format
+msgid ""
+"Now, you might be wondering if we've got the granularity wrong here. Why "
+"should module be the right criteria to use for including/excluding a class. "
+"Why not consider:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:792
+#, no-c-format
+msgid "a class-level annotation,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:795
+#, no-c-format
+msgid "the package,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:798
+#, no-c-format
+msgid "some type it implements or extends, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:801
+#, no-c-format
+msgid "some naming convention."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:805
+#, no-c-format
+msgid ""
+"We've got the first option covered. Annotate a bean <literal>@Alternative</"
+"literal>, or with an alternative stereotype, and it will be considered "
+"disabled by CDI, as long as you don't explicitly enable it in beans.xml. "
+"That's not quite the same thing as excluding the class from scanning "
+"altogether, but it's close. (One difference is that a portable extension "
+"with still get a <literal>ProcessAnnotatedType</literal> event for that "
+"class)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:813
+#, no-c-format
+msgid ""
+"A future version of CDI might allow you to declare excluded packages in "
+"beans.xml. Excluding a bean by type or naming convention isn't really that "
+"appealing. In the world of CDI, we use stereotypes for identifying "
+"architectural roles. We don't use marker interfaces or naming conventions. "
+"Names really shouldn't affect functionality as it is too fragile."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:820
+#, no-c-format
+msgid "Enough theory, what elements are available in beans.xml?"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:826
+#, no-c-format
+msgid "Bean descriptor schema"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:828
+#, no-c-format
+msgid ""
+"If you don't need to activate any interceptors, decorators or alternatives "
+"(you just have plain beans that you need to use in an archive), the beans."
+"xml file can be <emphasis>empty</emphasis>. If you do have one of these "
+"requirements, then you need to start popularing the descriptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:834
+#, no-c-format
+msgid ""
+"The root element of a beans.xml file is <literal>beans</literal>, with the "
+"following <ulink url=\"http://anonsvn.jboss.org/repos/weld/api/trunk/cdi/src/"
+"main/resources/beans.xsd\">schema</ulink>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:839
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<beans 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"
+"</beans>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:841
+#, no-c-format
+msgid ""
+"The <literal>beans</literal> element can have one or more of each of the "
+"following children:"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:847
+#, no-c-format
+msgid "interceptors"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:850
+#, no-c-format
+msgid "decorators"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:853
+#, no-c-format
+msgid "alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:857
+#, no-c-format
+msgid "Let's look at each element in detail."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:862
+#, no-c-format
+msgid "<interceptors>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:864
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled interceptors bound via interceptor "
+"bindings. An interceptor must be explicitly enabled by listing the fully "
+"qualified class name in a child <class> element of <"
+"interceptors>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:870
+#, no-c-format
+msgid ""
+"There may be zero or more interceptor class elements. The order of the class "
+"declarations determines the interceptor ordering. Interceptors which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an interceptor "
+"class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:877
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.intercept.SecurityInterceptor</class>\n"
+" <class>com.acme.intercept.TransactionInterceptor</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:883
+#, no-c-format
+msgid "<decorators>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:885
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled decorators. A decorator must be "
+"explicitly enabled by listing the fully qualified class name in a child <"
+"class> element of <decorators>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:891
+#, no-c-format
+msgid ""
+"There may be zero or more decorator class elements. The order of the class "
+"declarations determines the decorator ordering. Decorators which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an decorator class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.decorate.BigAccountDecorator</class>\n"
+" <class>com.acme.decorate.SpecialGiftDecorator</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:903
+#, no-c-format
+msgid "<alternatives>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:905
+#, no-c-format
+msgid ""
+"An alternative is a bean that must be explicitly declared in the beans.xml "
+"file if it should be available for lookup, injection or EL resolution. By "
+"default, a bean archive has no active alternatives. An alternative must be "
+"explicitly declared using the fully qualified bean class name or stereotype "
+"class name in either a child <class> or <stereotype> element of "
+"<alternatives>, respectively."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:913
+#, no-c-format
+msgid ""
+"An alternative is selected for the bean archive if either: the alternative "
+"is a managed bean or session bean and the bean class of the bean is listed, "
+"or the alternative is a producer method, field or resource, and the bean "
+"class that declares the method or field is listed, or any "
+"<literal>@Alternative</literal> stereotype of the alternative is listed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:920
+#, no-c-format
+msgid ""
+"There may be zero or more alternative bean class elements. The same class "
+"may not be listed twice. And of course, the class must exist and it must be "
+"an alternative bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:925
+#, no-c-format
+msgid ""
+"There may also be zero or more <literal>@Alternative</literal> stereotype "
+"elements. The same stereotype may not be listed twice. And of course, the "
+"stereotype class must exist and it must be an stereotype annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:931
+#, no-c-format
+msgid ""
+"<![CDATA[<stereotypes>\n"
+" <class>com.acme.business.MockPaymentProcessor</class>\n"
+" <stereotype>com.acme.stereotype.Mock</stereotype>\n"
+"</stereotypes>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:935
+#, no-c-format
+msgid ""
+"And that's it! A very simple schema, used only to activate and order CDI "
+"services."
+msgstr ""
Modified: doc/trunk/reference/es-ES/dependencies.po
===================================================================
--- doc/trunk/reference/es-ES/dependencies.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/dependencies.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -24,7 +24,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/"
+"is currently maintained in the <ulink url=\"https://jira.jboss.org/jira/"
"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
"appendix."
msgstr ""
Modified: doc/trunk/reference/es-ES/ee.po
===================================================================
--- doc/trunk/reference/es-ES/ee.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/ee.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: ee\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -69,7 +69,7 @@
#: ee.xml:32
#, no-c-format
msgid ""
-"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"the default <ulink url=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
"Validation</ulink> <literal>ValidationFactory</literal>, and"
msgstr ""
@@ -81,14 +81,49 @@
"literal>."
msgstr ""
+#. Tag: para
+#: ee.xml:45
+#, no-c-format
+msgid ""
+"The CDI specification does not require the servlet context objects, "
+"<literal>HttpServletRequest</literal>, <literal>HttpSession</literal> and "
+"<literal>ServletContext</literal> to be exposed as injectable beans. If you "
+"really want to be able to inject these objects, it's easy to create a "
+"portable extension to expose them as beans. However, we recommend that "
+"direct access to these objects be limited to servlets, servlet filters and "
+"servlet event listeners, where they may be obtained in the usual way as "
+"defined by the Java Servlets spec. The <literal>FacesContext</literal> is "
+"also not injectable. You can get at it by calling <literal>FacesContext."
+"getCurrentInstance()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ee.xml:57
+#, no-c-format
+msgid ""
+"Oh, you <emphasis>really</emphasis> want to inject the "
+"<literal>FacesContext</literal>? Alright then, try this producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: ee.xml:61
+#, no-c-format
+msgid ""
+"<![CDATA[class FacesContextProducer {\n"
+" @Produces @RequestScoped FacesContext getFacesContext() {\n"
+" return FacesContext.getCurrentInstance();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
#. Tag: title
-#: ee.xml:47
+#: ee.xml:67
#, 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
+#: ee.xml:69
#, fuzzy, no-c-format
msgid ""
"All managed beans may take advantage of Java EE component environment "
@@ -104,7 +139,7 @@
"momento."
#. Tag: programlisting
-#: ee.xml:56
+#: ee.xml:76
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @Interceptor\n"
@@ -126,7 +161,7 @@
"}]]>"
#. Tag: programlisting
-#: ee.xml:58
+#: ee.xml:78
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped\n"
@@ -147,7 +182,7 @@
"}]]>"
#. Tag: para
-#: ee.xml:60
+#: ee.xml:80
#, fuzzy, no-c-format
msgid ""
"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
@@ -161,7 +196,7 @@
"es llamado después de realizar <emphasis>toda</emphasis> la inyección."
#. Tag: para
-#: ee.xml:66
+#: ee.xml:86
#, no-c-format
msgid ""
"Of course, we advise that component environment injection be used to define "
@@ -169,13 +204,13 @@
msgstr ""
#. Tag: title
-#: ee.xml:74
+#: ee.xml:94
#, fuzzy, no-c-format
msgid "Calling a bean from a servlet"
msgstr "Llamando a Web Bean desde un Servlet"
#. Tag: para
-#: ee.xml:76
+#: ee.xml:96
#, fuzzy, no-c-format
msgid ""
"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
@@ -186,7 +221,7 @@
"inicializador."
#. Tag: programlisting
-#: ee.xml:81
+#: ee.xml:101
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class Login extends HttpServlet {\n"
@@ -233,7 +268,7 @@
"}"
#. Tag: para
-#: ee.xml:83
+#: ee.xml:103
#, fuzzy, no-c-format
msgid ""
"Since instances of servlets are shared across all incoming threads, the bean "
@@ -247,13 +282,13 @@
"la petición y sesión HTTP actuales."
#. Tag: title
-#: ee.xml:92
+#: ee.xml:112
#, 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:94
+#: ee.xml:114
#, no-c-format
msgid ""
"CDI injection applies to all EJBs, even when they aren't managed beans. In "
@@ -262,7 +297,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:99
+#: ee.xml:119
#, fuzzy, no-c-format
msgid "You can even use CDI interceptor bindings for message-driven Beans."
msgstr ""
@@ -270,7 +305,7 @@
"Driven Beans."
#. Tag: programlisting
-#: ee.xml:101
+#: ee.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @MessageDriven\n"
@@ -296,7 +331,7 @@
"}"
#. Tag: para
-#: ee.xml:103
+#: ee.xml:123
#, fuzzy, no-c-format
msgid ""
"Please note that there is no session or conversation context available when "
@@ -311,19 +346,19 @@
"literal> Web Beans están disponibles."
#. Tag: para
-#: ee.xml:109
+#: ee.xml:129
#, no-c-format
msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
msgstr ""
#. Tag: title
-#: ee.xml:116
+#: ee.xml:136
#, no-c-format
msgid "JMS endpoints"
msgstr "endpoints JMS"
#. Tag: para
-#: ee.xml:118
+#: ee.xml:138
#, no-c-format
msgid ""
"Sending messages using JMS can be quite complex, because of the number of "
@@ -347,7 +382,7 @@
"de hilos de los cuales tenemos que preocuparnos."
#. Tag: para
-#: ee.xml:127
+#: ee.xml:147
#, no-c-format
msgid ""
"You can use producer fields and methods to prepare all of these resources "
@@ -355,7 +390,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:131
+#: ee.xml:151
#, no-c-format
msgid ""
"<![CDATA[public class OrderResources {\n"
@@ -404,7 +439,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:133
+#: ee.xml:153
#, no-c-format
msgid ""
"In this example, we can just inject the prepared <literal>MessageProducer</"
@@ -412,7 +447,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:138
+#: ee.xml:158
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject Order order;\n"
@@ -436,7 +471,7 @@
"}"
#. Tag: para
-#: ee.xml:144
+#: ee.xml:164
#, fuzzy, no-c-format
msgid ""
"The lifecycle of the injected JMS objects is completely controlled by the "
@@ -446,13 +481,13 @@
"administrador deWeb Bean."
#. Tag: title
-#: ee.xml:151
+#: ee.xml:171
#, no-c-format
msgid "Packaging and deployment"
msgstr "Empaquetamiento y despliegue."
#. Tag: para
-#: ee.xml:153
+#: ee.xml:173
#, fuzzy, no-c-format
msgid ""
"CDI doesn't define any special deployment archive. You can package beans in "
@@ -475,7 +510,7 @@
"estarán disponibles para uso en la aplicación."
#. Tag: para
-#: ee.xml:162
+#: ee.xml:182
#, fuzzy, no-c-format
msgid ""
"In an embeddable EJB container, beans may be deployed in any location in "
Modified: doc/trunk/reference/es-ES/environments.po
===================================================================
--- doc/trunk/reference/es-ES/environments.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/environments.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -383,133 +383,270 @@
"available:"
msgstr ""
-#. Tag: literal
-#: environments.xml:215
+#. Tag: para
+#: environments.xml:214
#, no-c-format
-msgid "POJOs (no EJBs)"
+msgid ""
+"Managed beans with <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:220
#, no-c-format
-msgid "Typesafe Dependency Injection"
+msgid "Dependency injection with qualifiers and alternatives"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:225
#, no-c-format
-msgid "Application and Dependent Contexts"
+msgid ""
+"<literal>@Application</literal>, <literal>@Dependent</literal> and "
+"<literal>@Singleton</literal> scopes"
msgstr ""
-#. Tag: literal
-#: environments.xml:230
+#. Tag: para
+#: environments.xml:231
#, no-c-format
-msgid "Qualifiers"
+msgid "Interceptors and decorators"
msgstr ""
-#. Tag: literal
-#: environments.xml:235
+#. Tag: para
+#: environments.xml:236
#, no-c-format
msgid "Stereotypes"
msgstr ""
-#. Tag: literal
-#: environments.xml:240
+#. Tag: para
+#: environments.xml:241
#, no-c-format
-msgid "Typesafe Event Model"
+msgid "Events"
msgstr ""
-#. Tag: title
+#. Tag: para
#: environments.xml:246
#, no-c-format
+msgid "Portable extension support"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:252
+#, no-c-format
+msgid "EJB beans are not supported."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:257
+#, no-c-format
msgid "CDI SE Module"
msgstr ""
#. Tag: para
-#: environments.xml:248
+#: environments.xml:259
#, 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:"
+"automatically registering all simple beans found on the classpath. The "
+"command line parameters can be injected using either of the following:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:255
+#: environments.xml:264
#, no-c-format
+msgid "<![CDATA[@Inject @Parameters List<String> params;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:266
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters String[] paramsArray;]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:268
+#, no-c-format
+msgid "The second form is useful for compatibility with existing classes."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:273
+#, no-c-format
msgid ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with "
-"existing classes]]>"
+"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 ""
#. Tag: para
-#: environments.xml:257
+#: environments.xml:282
#, no-c-format
msgid "Here's an example of a simple CDI SE application:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:261
+#: environments.xml:286
#, no-c-format
msgid ""
-"<![CDATA[@ApplicationScoped\n"
+"<![CDATA[@Singleton\n"
"public class HelloWorld\n"
"{\n"
-" @Inject @Parameters List<String> parameters;\n"
-"\n"
-" public void printHello(@Observes ContainerInitialized event) {\n"
+" public void printHello(@Observes ContainerInitialized event, @Parameters "
+"List<String> parameters) {\n"
" System.out.println(\"Hello \" + parameters.get(0));\n"
" }\n"
"}]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:292
+#, no-c-format
+msgid "Bootstrapping CDI SE"
+msgstr ""
+
#. Tag: para
-#: environments.xml:263
+#: environments.xml:294
#, no-c-format
+msgid "CDI SE applications can be bootstrapped in the following ways."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:300
+#, no-c-format
+msgid "The ContainerInitialized Event"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:302
+#, no-c-format
msgid ""
-"CDI SE applications can be bootstrapped by running the StartMain class like "
-"so:"
+"Thanks to the power of CDI's typesafe event model, application developers "
+"need not write any bootstrapping code. The Weld SE module comes with a built-"
+"in main method which will bootstrap CDI for you and then fire a "
+"<literal>ContainerInitialized</literal> event. The entry point for your "
+"application code would therefore be a simple bean which observes the "
+"<literal>ContainerInitialized</literal> event, as in the previous example."
msgstr ""
+#. Tag: para
+#: environments.xml:310
+#, no-c-format
+msgid ""
+"In this case your application can be started by calling the provided main "
+"method like so:"
+msgstr ""
+
#. Tag: programlisting
-#: environments.xml:267
+#: environments.xml:313
#, no-c-format
msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:319
+#, no-c-format
+msgid "Programatic Bootstrap API"
+msgstr ""
+
#. Tag: para
-#: environments.xml:269
+#: environments.xml:321
#, 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:"
+"For added flexibility, CDI SE also comes with a bootstrap API which can be "
+"called from within your application in order to initialize CDI and obtain "
+"references to your application's beans and events. The API consists of two "
+"classes: <literal>Weld</literal> and <literal>WeldContainer</literal>."
msgstr ""
#. Tag: programlisting
-#: environments.xml:276
+#: environments.xml:327
#, no-c-format
msgid ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+"<![CDATA[public class Weld\n"
+"{\n"
+"\n"
+" /** Boots Weld and creates and returns a WeldContainer instance, through "
+"which\n"
+" * beans and events can be accesed. */\n"
+" public WeldContainer initialize() {...}\n"
+"\n"
+" /** Convenience method for shutting down the container. */\n"
+" public void shutdown() {...}\n"
+"\n"
"}]]>"
msgstr ""
+#. Tag: programlisting
+#: environments.xml:329
+#, no-c-format
+msgid ""
+"<![CDATA[public class WeldContainer\n"
+"{\n"
+"\n"
+" /** Provides access to all beans within the application. */\n"
+" public Instance<Object> instance() {...}\n"
+"\n"
+" /** Provides access to all events within the application. */\n"
+" public Event<Object> event() {...}\n"
+"\n"
+" /** Provides direct access to the BeanManager. */\n"
+" public BeanManager getBeanManager() {...}\n"
+"\n"
+"}]]>"
+msgstr ""
+
#. Tag: para
-#: environments.xml:279
+#: environments.xml:331
#, 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>."
+"Here's an example application main method which uses this API to initialize "
+"a bean of type <literal>MyApplicationBean</literal>."
msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.instance().select(MyApplicationBean.class).get();\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:336
+#, no-c-format
+msgid ""
+"Alternatively the application could be started by firing a custom event "
+"which would then be observed by another simple bean. The following example "
+"fires <literal>MyEvent</literal> on startup."
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.event().select(MyEvent.class).fire( new MyEvent() );\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: environments.xml:348
+#, no-c-format
+msgid "Setting the Classpath"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:350
+#, no-c-format
+msgid ""
+"Weld SE comes packaged as a 'shaded' jar which includes the CDI API, Weld "
+"Core and all dependant classes bundled into a single jar. Therefore the only "
+"Weld jar you need on the classpath, in addition to your application's "
+"classes and dependant jars, is the Weld SE jar."
+msgstr ""
Modified: doc/trunk/reference/es-ES/example.po
===================================================================
--- doc/trunk/reference/es-ES/example.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/example.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: example\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -28,7 +28,9 @@
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:"
+"request-scoped bean to hold the username and password entered during login, "
+"with constraints defined using annotations from the Bean Validation "
+"specification:"
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 "
@@ -36,7 +38,7 @@
"el inicio de sesión:"
#. Tag: programlisting
-#: example.xml:11
+#: example.xml:12
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Named @RequestScoped\n"
@@ -44,9 +46,11 @@
" private String username;\n"
" private String password;\n"
" \n"
+" @NotNull @Length(min=3, max=25)\n"
" public String getUsername() { return username; }\n"
" public void setUsername(String username) { this.username = username; }\n"
" \n"
+" @NotNull @Length(min=6, max=20)\n"
" public String getPassword() { return password; }\n"
" public void setPassword(String password) { this.password = password; }\n"
"}]]>"
@@ -66,7 +70,7 @@
"}]]>"
#. Tag: para
-#: example.xml:13
+#: example.xml:14
#, fuzzy, no-c-format
msgid "This bean is bound to the login prompt in the following JSF form:"
msgstr ""
@@ -74,15 +78,17 @@
"en el siguiente formulario JSF:"
#. Tag: programlisting
-#: example.xml:15
+#: example.xml:16
#, 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"
+" <f:validateBean>\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"
+" </f:validateBean>\n"
" </h:panelGrid>\n"
" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
"login.loggedIn}\"/>\n"
@@ -104,9 +110,52 @@
"</h:form>]]>"
#. Tag: para
-#: example.xml:17
+#: example.xml:18
+#, no-c-format
+msgid "Users are represented by a JPA entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:22
#, fuzzy, no-c-format
msgid ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+" private @NotNull @Length(min=3, max=25) @Id String username;\n"
+" private @NotNull @Length(min=6, max=20) String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" public String setPassword(String password) { this.password = password; }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class Credentials {\n"
+" \n"
+" private String username;\n"
+" private String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" \n"
+" public String getPassword() { return password; }\n"
+" public void setPassword(String password) { this.password = password; }\n"
+" \n"
+"}]]>"
+
+#. Tag: para
+#: example.xml:24
+#, no-c-format
+msgid ""
+"(Note that we're also going to need a <literal>persistence.xml</literal> "
+"file to configure the JPA persistence unit containing <literal>User</"
+"literal>.)"
+msgstr ""
+
+#. Tag: para
+#: example.xml:29
+#, 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:"
@@ -116,7 +165,7 @@
"<literal>Usuario</literal> a otras Web Beans:"
#. Tag: programlisting
-#: example.xml:22
+#: example.xml:34
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped @Named\n"
@@ -195,7 +244,7 @@
"}]]>"
#. Tag: para
-#: example.xml:24
+#: example.xml:36
#, no-c-format
msgid ""
"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
@@ -203,7 +252,7 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:26
+#: example.xml:38
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -217,7 +266,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: programlisting
-#: example.xml:28
+#: example.xml:40
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -231,7 +280,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: para
-#: example.xml:30
+#: example.xml:42
#, no-c-format
msgid ""
"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
@@ -239,16 +288,17 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:34
+#: example.xml:46
#, no-c-format
msgid ""
-"<![CDATA[public class UserDatabaseProducer {\n"
-" @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"<![CDATA[class UserDatabaseProducer {\n"
+" @Produces @UserDatabase @PersistenceContext \n"
+" static EntityManager userDatabase;\n"
"}]]>"
msgstr ""
#. Tag: para
-#: example.xml:36
+#: example.xml:48
#, fuzzy, no-c-format
msgid ""
"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
@@ -257,7 +307,7 @@
"Ahora, cualquier otro Web Bean puede fácilmente inyectar al usuario actual:"
#. Tag: programlisting
-#: example.xml:38
+#: example.xml:50
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class DocumentEditor {\n"
@@ -285,13 +335,13 @@
"}]]>"
#. Tag: para
-#: example.xml:40
+#: example.xml:52
#, no-c-format
msgid "Or we can reference the current user in a JSF view:"
msgstr ""
#. Tag: programlisting
-#: example.xml:42
+#: example.xml:54
#, no-c-format
msgid ""
"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
@@ -300,7 +350,7 @@
msgstr ""
#. Tag: para
-#: example.xml:44
+#: example.xml:56
#, fuzzy, no-c-format
msgid ""
"Hopefully, this example gave you a taste of the CDI programming model. In "
Modified: doc/trunk/reference/es-ES/extend.po
===================================================================
--- doc/trunk/reference/es-ES/extend.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/extend.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: extend\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -99,27 +99,204 @@
"some other source"
msgstr ""
+#. Tag: title
+#: extend.xml:58
+#, fuzzy, no-c-format
+msgid "Creating an <literal>Extension</literal>"
+msgstr "La clase <literal>Bean</literal>"
+
#. Tag: para
-#: extend.xml:57
-#, fuzzy, no-c-format
+#: extend.xml:60
+#, no-c-format
msgid ""
-"The nerve center for extending CDI is the <literal>BeanManager</literal> "
-"object."
+"The first step in creating a portable extension is to write a class that "
+"implements <literal>Extension</literal>. This marker interface does not "
+"define any methods, but it's needed to satisfy the requirements of Java SE's "
+"service provider architecture."
msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:66
+#, no-c-format
+msgid "class MyExtension implements Extension { ... }"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:68
+#, no-c-format
+msgid ""
+"Next, we need to register our extension as a service provider by creating a "
+"file named <literal>META-INF/services/javax.enterprise.inject.spi.Extension</"
+"literal>, which contains the name of our extension class:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:74
+#, no-c-format
+msgid "org.mydomain.extension.MyExtension"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:76
+#, no-c-format
+msgid ""
+"An extension is not a bean, exactly, since it is instantiated by the "
+"container during the initialization process, before any beans or contexts "
+"exist. However, it can be injected into other beans once the initialization "
+"process is complete."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:82
+#, no-c-format
+msgid ""
+"@Inject \n"
+"MyBean(MyExtension myExtension) {\n"
+" myExtension.doSomething();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:84
+#, no-c-format
+msgid ""
+"And, like beans, extensions can have observer methods. Usually, the observer "
+"methods observe <emphasis>container lifecycle events</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:92
+#, no-c-format
+msgid "Container lifecycle events"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:94
+#, no-c-format
+msgid ""
+"During the initialization process, the container fires a series of events, "
+"including:"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:101
+#, no-c-format
+msgid "BeforeBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:106
+#, no-c-format
+msgid "ProcessAnnotatedType"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:110
+#, no-c-format
+msgid ""
+"<literal>ProcessInjectionTarget</literal> and <literal>ProcessProducer</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:115
+#, no-c-format
+msgid ""
+"<literal>ProcessBean</literal> and <literal>ProcessObserverMethod</literal>"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:121
+#, no-c-format
+msgid "AfterBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:126
+#, no-c-format
+msgid "AfterDeploymentValidation"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:131
+#, no-c-format
+msgid "Extensions may observe these events:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {\n"
+" Logger.global.debug(\"beginning the scanning process\");\n"
+" }\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" Logger.global.debug(\"scanning type: \" + pat.getAnnotatedType()."
+"getJavaClass().getName());\n"
+" } \n"
+"\n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {\n"
+" Logger.global.debug(\"finished the scanning process\");\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:137
+#, no-c-format
+msgid ""
+"In fact, the extension can do a lot more than just observe. The extension is "
+"permitted to modify the container's metamodel and more. Here's a very simple "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" //tell the container to ignore the type if it is annotated @Ignore\n"
+" if ( pat.getAnnotatedType().isAnnotionPresent(Ignore.class) ) pat.veto"
+"(); \n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:144
+#, fuzzy, no-c-format
+msgid "The observer method may inject a <literal>BeanManager</literal>"
+msgstr ""
"El centro nervioso para extender Web Beans es el objeto <literal>Manager</"
"literal>. "
+#. Tag: programlisting
+#: extend.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> "
+"pat, BeanManager beanManager) { ... }]]>"
+msgstr ""
+
#. Tag: title
-#: extend.xml:62
+#: extend.xml:153
#, fuzzy, no-c-format
msgid "The <literal>BeanManager</literal> object"
msgstr "El objeto <literal>Manager</literal>"
#. Tag: para
-#: extend.xml:64
+#: extend.xml:155
#, fuzzy, no-c-format
msgid ""
-"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object. 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 "
@@ -127,27 +304,26 @@
"programada."
#. Tag: programlisting
-#: extend.xml:69
+#: extend.xml:161
#, no-c-format
msgid ""
-"<![CDATA[public interface Manager {\n"
+"<![CDATA[public interface BeanManager {\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(Type beanType, Annotation... qualifiers);\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"
-" public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
-"Annotation... bindings);\n"
+" public void fireEvent(Object event, Annotation... qualifiers);\n"
+" public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, "
+"Annotation... qualifiers);\n"
" public List<Decorator<?>> resolveDecorators(Set<Type> types, "
-"Annotation... bindings);\n"
+"Annotation... qualifiers);\n"
" public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
"Annotation... interceptorBindings);\n"
" public boolean isScope(Class<? extends Annotation> annotationType);\n"
@@ -156,11 +332,11 @@
" public boolean isPassivatingScope(Class<? extends Annotation> "
"annotationType);\n"
" public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
-" public boolean isInterceptorBindingType(Class<? extends Annotation> "
+" public boolean isInterceptorBinding(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> getInterceptorBindingDefinition(Class<? extends "
+"Annotation> bindingType);\n"
" public Set<Annotation> getStereotypeDefinition(Class<? extends "
"Annotation> stereotype);\n"
" public Context getContext(Class<? extends Annotation> scopeType);\n"
@@ -174,21 +350,22 @@
msgstr ""
#. Tag: para
-#: extend.xml:71
+#: extend.xml:163
#, fuzzy, no-c-format
msgid ""
-"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+"Any bean or other Java EE component which supports injection 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:73
+#: extend.xml:166
#, fuzzy, no-c-format
-msgid "@Inject BeanManager beanManager"
+msgid "@Inject BeanManager beanManager;"
msgstr "@Current Manager manager"
#. Tag: para
-#: extend.xml:75
+#: extend.xml:168
#, no-c-format
msgid ""
"Java EE components may obtain an instance of <literal>BeanManager</literal> "
@@ -198,7 +375,7 @@
msgstr ""
#. Tag: para
-#: extend.xml:81
+#: extend.xml:174
#, fuzzy, no-c-format
msgid ""
"Let's study some of the interfaces exposed by the <literal>BeanManager</"
@@ -208,25 +385,99 @@
"literal>. "
#. Tag: title
-#: extend.xml:86
+#: extend.xml:179
#, fuzzy, no-c-format
+msgid "The <literal>InjectionTarget</literal> interface"
+msgstr "La interfaz <literal>Contexto</literal>"
+
+#. Tag: para
+#: extend.xml:181
+#, no-c-format
+msgid ""
+"The first thing that a framework developer is going to look for in the "
+"portable extension SPI is a way to inject CDI beans into objects which are "
+"not under the control of CDI. The <literal>InjectionTarget</literal> "
+"interface makes this very easy."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:188
+#, no-c-format
+msgid ""
+"We recommend that frameworks let CDI take over the job of actually "
+"instantiating the framework-controlled objects. That way, the framework-"
+"controlled objects can take advantage of constructor injection. However, if "
+"the framework requires use of a constructor with a special signature, the "
+"framework will need to instatiate the object itself, and so only method and "
+"field injection will be supported."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[//get the BeanManager from JNDI\n"
+"BeanManager beanManager = (BeanManager) new InitialContext().lookup(\"java:"
+"comp/BeanManager\");\n"
+"\n"
+"//CDI uses an AnnotatedType object to read the annotations of a class\n"
+"AnnotatedType<SomeFrameworkComponent> type = beanManager.createAnnotatedType"
+"(SomeFrameworkComponent.class);\n"
+"\n"
+"//The extension uses an InjectionTarget to delegate instantiation, "
+"dependency injection \n"
+"//and lifecycle callbacks to the CDI container\n"
+"InjectionTarget<SomeFrameworkComponent> it = beanManager."
+"createInjectionTarget(type);\n"
+"\n"
+"//each instance needs its own CDI CreationalContext\n"
+"CreationalContext ctx = beanManager.createCreationalContext(null);\n"
+"\n"
+"//instantiate the framework component and inject its dependencies\n"
+"SomeFrameworkComponent instance = it.produce(ctx); //call the constructor\n"
+"it.inject(instance, ctx); //call initializer methods and perform field "
+"injection\n"
+"it.postConstruct(instance); //call the @PostConstruct method\n"
+"\n"
+"...\n"
+"\n"
+"//destroy the framework component instance and clean up dependent objects\n"
+"it.preDestroy(instance); //call the @PreDestroy method\n"
+"it.dispose(instance); //it is now safe to discard the instance\n"
+"ctx.release(); //clean up dependent objects\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:201
+#, fuzzy, no-c-format
msgid "The <literal>Bean</literal> interface"
msgstr "La interfaz <literal>Contexto</literal>"
#. Tag: para
-#: extend.xml:88
+#: extend.xml:203
#, 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."
+"<literal>BeanManager</literal> object for every bean in the application. "
+"There are even <literal>Bean</literal> objects representing interceptors, "
+"decorators and producer methods."
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: para
+#: extend.xml:210
+#, no-c-format
+msgid ""
+"The <literal>Bean</literal> interface exposes all the interesting things we "
+"dicussed in <xref linkend=\"bean-anatomy\"/>."
+msgstr ""
+
#. Tag: programlisting
-#: extend.xml:94
+#: extend.xml:215
#, no-c-format
msgid ""
"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
@@ -243,16 +494,28 @@
msgstr ""
#. Tag: para
-#: extend.xml:96
+#: extend.xml:217
+#, no-c-format
+msgid "There's an easy way to find out what beans exist in the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[Set<Bean<?>> allBeans = beanManager.getBeans(Obect.class, new "
+"AnnotationLiteral<Any>() {});]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:223
#, 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."
+"The <literal>Bean</literal> interface makes it possible for a portable "
+"extension 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 "
@@ -262,25 +525,480 @@
"literal> para permitir que los objetos sean administrados por otro marco que "
"se inyecta en Web Beans."
+#. Tag: title
+#: extend.xml:233
+#, fuzzy, no-c-format
+msgid "Registering a <literal>Bean</literal>"
+msgstr "La clase <literal>Bean</literal>"
+
#. Tag: para
-#: extend.xml:104
-#, fuzzy, no-c-format
+#: extend.xml:235
+#, no-c-format
msgid ""
-"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
-"specification: <literal>Interceptor</literal> and <literal>Decorator</"
-"literal>."
+"The most common kind of CDI portable extension registers a bean (or beans) "
+"with the container."
msgstr ""
-"Hay dos subclases de <literal>Bean</literal> definidas por la especificación "
-"de Web Beans: <literal>Interceptor</literal> y <literal>Decorador</literal>."
+#. Tag: para
+#: extend.xml:239
+#, no-c-format
+msgid ""
+"In this example, we make a framework class, <literal>SecurityManager</"
+"literal> available for injection. To make things a bit more interesting, "
+"we're going to delegate back to the container's <literal>InjectionTarget</"
+"literal> to perform instantiation and injection upon the "
+"<literal>SecurityManager</literal> instance."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:246
+#, no-c-format
+msgid ""
+"<![CDATA[public class SecurityManagerExtension implements Extension {\n"
+" \n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager "
+"bm) {\n"
+" \n"
+" //use this to read annotations of the class\n"
+" AnnotatedType<SecurityManager> at = bm.createAnnotatedType"
+"(SecurityManager.class); \n"
+"\n"
+" //use this to instantiate the class and inject dependencies\n"
+" final InjectionTarget<SecurityManager> it = bm.createInjectionTarget"
+"(at); \n"
+"\n"
+" abd.addBean( new Bean<SecurityManager>() {\n"
+"\n"
+" @Override\n"
+" public Class<?> getBeanClass() {\n"
+" return SecurityManager.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public String getName() {\n"
+" return \"securityManager\";\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getQualifiers() {\n"
+" Set<Annotation> qualifiers = new HashSet<Annotation>();\n"
+" qualifiers.add( new AnnotationLiteral<Default>() {} );\n"
+" qualifiers.add( new AnnotationLiteral<Any>() {} );\n"
+" return qualifiers;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<? extends Annotation> getScope() {\n"
+" return SessionScoped.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Class<? extends Annotation>> getStereotypes() {\n"
+" return Collections.emptySet();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypes() {\n"
+" Set<Type> types = new HashSet<Type>();\n"
+" types.add(SecurityManager.class);\n"
+" types.add(Object.class);\n"
+" return types;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAlternative() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isNullable() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public SecurityManager create(CreationalContext<SecurityManager> "
+"ctx) {\n"
+" SecurityManager instance = it.produce(ctx);\n"
+" it.inject(instance, ctx);\n"
+" it.postConstruct(instance);\n"
+" return instance;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void destroy(SecurityManager instance, \n"
+" CreationalContext<SecurityManager> ctx) {\n"
+" it.preDestroy(instance);\n"
+" it.dispose(instance);\n"
+" ctx.release();\n"
+" }\n"
+" \n"
+" } );\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:248
+#, no-c-format
+msgid ""
+"But a portable extension can also mess with beans that are discovered "
+"automatically by the container."
+msgstr ""
+
#. Tag: title
-#: extend.xml:112
+#: extend.xml:255
#, no-c-format
+msgid "Wrapping an <literal>AnnotatedType</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:257
+#, no-c-format
+msgid ""
+"One of the most interesting things that an extension class can do is process "
+"the annotations of a bean class <emphasis>before</emphasis> the container "
+"builds its metamodel."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:262
+#, no-c-format
+msgid ""
+"Let's start with an example of an extension that provides support for the "
+"use of <literal>@Named</literal> at the package level. The package-level "
+"name is used to qualify the EL names of all beans defined in that package. "
+"The portable extension uses the <literal>ProcessAnnotatedType</literal> "
+"event to wrap the <literal>AnnotatedType</literal> object and override the "
+"<literal>value()</literal> of the <literal>@Named</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[public class QualifiedNameExtension implements Extension {\n"
+"\n"
+" <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) {\n"
+"\n"
+" //wrap this to override the annotations of the class\n"
+" final AnnotatedType<X> at = pat.getAnnotatedType();\n"
+" \n"
+" AnnotatedType<X> wrapped = new AnnotatedType<X>() {\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedConstructor<X>> getConstructors() {\n"
+" return at.getConstructors();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedField<? super X>> getFields() {\n"
+" return at.getFields();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<X> getJavaClass() {\n"
+" return at.getJavaClass();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedMethod<? super X>> getMethods() {\n"
+" return at.getMethods();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public <T extends Annotation> T getAnnotation(final Class<T> "
+"annType) {\n"
+" if ( Named.class.equals(annType) ) {\n"
+" class NamedLiteral \n"
+" extends AnnotationLiteral<Named> \n"
+" implements Named {\n"
+" @Override\n"
+" public String value() {\n"
+" Package pkg = at.getClass().getPackage();\n"
+" String unqualifiedName = at.getAnnotation(Named."
+"class).value();\n"
+" final String qualifiedName;\n"
+" if ( pkg.isAnnotationPresent(Named.class) ) {\n"
+" qualifiedName = pkg.getAnnotation(Named."
+"class).value() \n"
+" + '.' + unqualifiedName;\n"
+" }\n"
+" else {\n"
+" qualifiedName = unqualifiedName;\n"
+" }\n"
+" return qualifiedName;\n"
+" }\n"
+" }\n"
+" return (T) new NamedLiteral();\n"
+" }\n"
+" else {\n"
+" return at.getAnnotation(annType);\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getAnnotations() {\n"
+" return at.getAnnotations();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Type getBaseType() {\n"
+" return at.getBaseType();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypeClosure() {\n"
+" return at.getTypeClosure();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annType) {\n"
+" return at.isAnnotationPresent(annType);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:272
+#, no-c-format
+msgid ""
+"Here's a second example, which adds the <literal>@Alternative</literal> "
+"annotation to any class which implements a certain <literal>Service</"
+"literal> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[class ServiceAlternativeExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" \n"
+" final AnnotatedType<T> type = pat.getAnnotatedType();\n"
+" \n"
+" if ( Service.class.isAssignableFrom( type.getJavaClass() ) ) {\n"
+" \n"
+" //if the class implements Service, make it an @Alternative\n"
+" AnnotatedType<T> wrapped = new AnnotatedType<T>() {\n"
+" \n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annotationType) {\n"
+" return annotationType.equals(Alternative.class) ? \n"
+" true : type.isAnnotationPresent(annotationType);\n"
+" }\n"
+" \n"
+" //remaining methods of AnnotatedType\n"
+" ...\n"
+" }\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:283
+#, no-c-format
+msgid ""
+"The <literal>AnnotatedType</literal> is not the only thing that can be "
+"wrapped by an extension."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:288
+#, no-c-format
+msgid "Wrapping an <literal>InjectionTarget</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:290
+#, no-c-format
+msgid ""
+"The <literal>InjectionTarget</literal> interface exposes operations for "
+"producing and disposing an instance of a component, injecting its "
+"dependencies and invoking its lifecycle callbacks. A portable extension may "
+"wrap the <literal>InjectionTarget</literal> for any Java EE component that "
+"supports injection, allowing it to intercept any of these operations when "
+"they are invoked by the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:297
+#, no-c-format
+msgid ""
+"Here's a CDI portable extension that reads values from properties files and "
+"configures fields of Java EE components, including servlets, EJBs, managed "
+"beans, interceptors and more. In this example, properties for a class such "
+"as <literal>org.mydomain.blog.Blogger</literal> go in a resource named "
+"<literal>org/mydomain/blog/Blogger.properties</literal>, and the name of a "
+"property must match the name of the field to be configured. So "
+"<literal>Blogger.properties</literal> could contain:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:305
+#, no-c-format
+msgid ""
+"firstName=Gavin\n"
+"lastName=King"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:307
+#, no-c-format
+msgid ""
+"The portable extension works by wrapping the containers "
+"<literal>InjectionTarget</literal> and setting field values from the "
+"<literal>inject()</literal> method."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:310
+#, no-c-format
+msgid ""
+"<![CDATA[public class ConfigExtension implements Extension {\n"
+"\n"
+" <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> "
+"pit) {\n"
+" \n"
+" //wrap this to intercept the component lifecycle\n"
+" final InjectionTarget<X> it = pit.getInjectionTarget();\n"
+" \n"
+" final Map<Field, Object> configuredValues = new HashMap<Field, "
+"Object>();\n"
+" \n"
+" //use this to read annotations of the class and its members\n"
+" AnnotatedType<X> at = pit.getAnnotatedType();\n"
+" \n"
+" //read the properties file\n"
+" String propsFileName = at.getClass().getSimpleName() + \".properties"
+"\";\n"
+" InputStream stream = at.getJavaClass().getResourceAsStream"
+"(propsFileName);\n"
+" if (stream!=null) {\n"
+" \n"
+" try {\n"
+" Properties props = new Properties();\n"
+" props.load(stream);\n"
+" for (Map.Entry<Object, Object> property : props.entrySet()) "
+"{\n"
+" String fieldName = property.getKey().toString();\n"
+" Object value = property.getValue();\n"
+" try {\n"
+" Field field = at.getJavaClass().getField"
+"(fieldName);\n"
+" field.setAccessible(true);\n"
+" if ( field.getType().isAssignableFrom( value.getClass"
+"() ) ) {\n"
+" configuredValues.put(field, value);\n"
+" }\n"
+" else {\n"
+" //TODO: do type conversion automatically\n"
+" pit.addDefinitionError( new InjectionException(\n"
+" \"field is not of type String: \" + "
+"field ) );\n"
+" }\n"
+" }\n"
+" catch (NoSuchFieldException nsfe) {\n"
+" pit.addDefinitionError(nsfe);\n"
+" }\n"
+" finally {\n"
+" stream.close();\n"
+" }\n"
+" }\n"
+" }\n"
+" catch (IOException ioe) {\n"
+" pit.addDefinitionError(ioe);\n"
+" }\n"
+" }\n"
+" \n"
+" InjectionTarget<X> wrapped = new InjectionTarget<X>() {\n"
+"\n"
+" @Override\n"
+" public void inject(X instance, CreationalContext<X> ctx) {\n"
+" it.inject(instance, ctx);\n"
+" \n"
+" //set the values onto the new instance of the component\n"
+" for (Map.Entry<Field, Object> configuredValue: "
+"configuredValues.entrySet()) {\n"
+" try {\n"
+" configuredValue.getKey().set(instance, "
+"configuredValue.getValue());\n"
+" }\n"
+" catch (Exception e) {\n"
+" throw new InjectionException(e);\n"
+" }\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void postConstruct(X instance) {\n"
+" it.postConstruct(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void preDestroy(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void dispose(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public X produce(CreationalContext<X> ctx) {\n"
+" return it.produce(ctx);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pit.setInjectionTarget(wrapped);\n"
+" \n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:312
+#, no-c-format
+msgid ""
+"There's a lot more to the portable extension SPI than what we've discussed "
+"here. Check out the CDI spec or Javadoc for more information. For now, we'll "
+"just mention one more extension point."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:320
+#, no-c-format
msgid "The <literal>Context</literal> interface"
msgstr "La interfaz <literal>Contexto</literal>"
#. Tag: para
-#: extend.xml:114
+#: extend.xml:322
#, fuzzy, no-c-format
msgid ""
"The <literal>Context</literal> interface supports addition of new scopes to "
@@ -290,7 +1008,7 @@
"a Web Beans, o extensión de los ámbitos incorporados a nuevos entornos."
#. Tag: programlisting
-#: extend.xml:119
+#: extend.xml:327
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface Context {\n"
@@ -312,7 +1030,7 @@
"}"
#. Tag: para
-#: extend.xml:121
+#: extend.xml:329
#, fuzzy, no-c-format
msgid ""
"For example, we might implement <literal>Context</literal> to add a business "
@@ -323,6 +1041,16 @@
"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."
+#, fuzzy
+#~ msgid ""
+#~ "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>."
+
#~ msgid "Extending Web Beans"
#~ msgstr "Extensión de Web Beans"
@@ -445,9 +1173,6 @@
#~ "\n"
#~ "}]]>"
-#~ msgid "The <literal>Bean</literal> class"
-#~ msgstr "La clase <literal>Bean</literal>"
-
#~ msgid ""
#~ "public abstract class Bean<T> {\n"
#~ " \n"
Modified: doc/trunk/reference/es-ES/extensions.po
===================================================================
--- doc/trunk/reference/es-ES/extensions.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/extensions.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -37,61 +37,51 @@
#, 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."
+"of a logger object into any CDI bean. Simply create an injection point of "
+"type <literal>org.slf4j.Logger</literal> and an appropriate logger object "
+"will be injected into any instance of the bean."
msgstr ""
#. Tag: programlisting
-#: extensions.xml:26
+#: extensions.xml:25
#, no-c-format
msgid ""
-"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
-"import org.jboss.weld.log.Log;\n"
+"<![CDATA[import org.slf4j.Logger;\n"
+"import javax.inject.Inject;\n"
"\n"
"public class Checkout {\n"
-" private @Inject @Logger Log log;\n"
+" private @Inject Logger log;\n"
"\n"
" public void invoiceItems() {\n"
" ShoppingCart cart;\n"
" ...\n"
-" log.debug(\"Items invoiced for {0}\", cart);\n"
+" log.debug(\"Items invoiced for {}\", cart);\n"
" }\n"
"}]]>"
msgstr ""
#. Tag: para
-#: extensions.xml:28
+#: 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 "
-"<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."
+"The example shows how objects can be interpolated into a message. If you use "
+"this approach, you do not need to surround a call to the logger with a "
+"condition like <literal>if ( log.isDebugEnabled() )</literal> to avoid "
+"string concatenation."
msgstr ""
#. Tag: para
-#: extensions.xml:41
+#: extensions.xml:34
#, 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 "
+"You can add Weld logging 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:46
+#: extensions.xml:39
#, no-c-format
msgid ""
"If you are using Weld as your JSR-299 implementation, there's no need to "
Modified: doc/trunk/reference/es-ES/gettingstarted.po
===================================================================
--- doc/trunk/reference/es-ES/gettingstarted.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/gettingstarted.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: ri\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -156,9 +156,9 @@
#: gettingstarted.xml:83
#, no-c-format
msgid ""
-"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"To deploy the examples to JBoss AS, you'll need <ulink url=\"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="
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink url="
"\"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 "
@@ -192,7 +192,7 @@
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."
+"<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:"
@@ -269,21 +269,24 @@
#, no-c-format
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 "
+"<ulink url=\"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
-#, no-c-format
+#, fuzzy, no-c-format
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>."
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:152
@@ -369,7 +372,7 @@
#, 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/"
+"bored, read the log messages), and visit <ulink url=\"http://localhost:8080/"
"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
"pseudo-translating."
msgstr ""
@@ -405,10 +408,10 @@
#: gettingstarted.xml:221
#, no-c-format
msgid ""
-"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"To deploy the examples to GlassFish, you'll need the final <ulink url="
"\"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/"
+"download a <ulink url=\"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, "
@@ -469,7 +472,7 @@
#: gettingstarted.xml:255
#, no-c-format
msgid ""
-"You deploy applications to GlassFish using the <ulink src=\"http://"
+"You deploy applications to GlassFish using the <ulink url=\"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 "
@@ -487,14 +490,14 @@
#, no-c-format
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 "
+"URL <ulink url=\"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://"
+"start it. You can see the examples running at either <ulink url=\"http://"
"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
-"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"ulink> or <ulink url=\"http://localhost:7070/weld-translator\">http://"
"localhost:7070/weld-translator</ulink>, depending on which example you "
"deployed."
msgstr ""
@@ -539,7 +542,7 @@
#, 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."
+"need to download Tomcat 6.0.18 or later from <ulink url=\"http://tomcat."
"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
msgstr ""
"Luego, descargue la IR de Web Beans desde <ulink url=\"http://seamframework."
@@ -688,7 +691,7 @@
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>!"
msgstr ""
@@ -875,7 +878,7 @@
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://"
+"URL: <ulink url=\"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 ""
@@ -955,7 +958,7 @@
"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"
+"application at the following local URL: <ulink url=\"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 ""
Modified: doc/trunk/reference/es-ES/injection.po
===================================================================
--- doc/trunk/reference/es-ES/injection.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/injection.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: injection\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -559,12 +559,55 @@
#. Tag: title
#: injection.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"The built-in qualifiers <literal>@Default</literal> and <literal>@Any</"
+"literal>"
+msgstr ""
+"Los Web Beans sencillos admiten únicamente las devoluciones de llamadas "
+"<literal>@PostConstruct</literal> y <literal>@PreDestroy</literal>."
+
+#. Tag: para
+#: injection.xml:218
#, no-c-format
+msgid ""
+"Whenever a bean or injection point does not explicitly declare a qualifier, "
+"the container assumes the qualifier <literal>@Default</literal>. From time "
+"to time, you'll need to decare an injection point without specifying a "
+"qualifier. There's a qualifier for that too. All beans have the qualifier "
+"<literal>@Any</literal>. Therefore, by explicitly specifying <literal>@Any</"
+"literal> at an injection point, you suppress the default qualifier, without "
+"otherwise restricting the beans that are eligible for injection."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:225
+#, no-c-format
+msgid ""
+"This is especially useful if you want to iterate over all beans with a "
+"certain bean type. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:226
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject \n"
+"void initServices(@Any Instance<Service> services) { \n"
+" for (Service service: services) {\n"
+" service.init();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: injection.xml:232
+#, no-c-format
msgid "Qualifiers with members"
msgstr ""
#. Tag: para
-#: injection.xml:218
+#: injection.xml:234
#, no-c-format
msgid ""
"Java annotations can have members. We can use annotation members to further "
@@ -575,7 +618,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:224
+#: injection.xml:240
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -593,14 +636,14 @@
"}]]>"
#. Tag: para
-#: injection.xml:226
+#: injection.xml:242
#, no-c-format
msgid ""
"Then we select one of the possible member values when appling the qualifier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:230
+#: injection.xml:246
#, fuzzy, no-c-format
msgid ""
"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
@@ -608,18 +651,18 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:232
+#: injection.xml:248
#, 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>."
+"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
+#: injection.xml:253
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -627,7 +670,7 @@
"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
"public @interface PayBy {\n"
" PaymentMethod value();\n"
-" @NonBinding String comment() default \"\";\n"
+" @Nonbinding String comment() default \"\";\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -638,13 +681,13 @@
"}]]>"
#. Tag: title
-#: injection.xml:242
+#: injection.xml:258
#, no-c-format
msgid "Multiple qualifiers"
msgstr ""
#. Tag: para
-#: injection.xml:244
+#: injection.xml:260
#, fuzzy, no-c-format
msgid "An injection point may specify multiple qualifiers:"
msgstr ""
@@ -652,7 +695,7 @@
"enlace:"
#. Tag: programlisting
-#: injection.xml:248
+#: injection.xml:264
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
@@ -661,7 +704,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:250
+#: injection.xml:266
#, fuzzy, no-c-format
msgid ""
"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
@@ -671,7 +714,7 @@
"anotaciones de enlace sería elegible para inyección."
#. Tag: programlisting
-#: injection.xml:255
+#: injection.xml:271
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Synchronous @Reliable\n"
@@ -686,13 +729,13 @@
"}]]>"
#. Tag: title
-#: injection.xml:260
+#: injection.xml:276
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: injection.xml:262
+#: injection.xml:278
#, no-c-format
msgid ""
"Alternatives are beans whose implementation is specific to a particular "
@@ -702,7 +745,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:266
+#: injection.xml:282
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
@@ -716,7 +759,7 @@
"}]]>"
#. Tag: para
-#: injection.xml:268
+#: injection.xml:284
#, no-c-format
msgid ""
"By default, <literal>@Alternative</literal> beans are disabled. We need to "
@@ -726,7 +769,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:274
+#: injection.xml:290
#, no-c-format
msgid ""
"<![CDATA[<beans\n"
@@ -742,7 +785,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:276
+#: injection.xml:292
#, no-c-format
msgid ""
"When an ambiguous dependency exists at an injection point, the container "
@@ -752,13 +795,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:285
+#: injection.xml:301
#, fuzzy, no-c-format
msgid "Fixing unsatisfied and ambiguous dependencies"
msgstr "Corregir dependencias insatisfechas"
#. Tag: para
-#: injection.xml:287
+#: injection.xml:303
#, fuzzy, no-c-format
msgid ""
"The typesafe resolution algorithm fails when, after considering the "
@@ -774,7 +817,7 @@
"Bean no puede identificar con precisión un Web Bean para inyectar."
#. Tag: para
-#: injection.xml:294
+#: injection.xml:310
#, no-c-format
msgid ""
"During the course of your development, you're going to encounter this "
@@ -782,13 +825,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:298
+#: injection.xml:314
#, no-c-format
msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:304
+#: injection.xml:320
#, no-c-format
msgid ""
"create a bean which implements the bean type and has all the qualifier types "
@@ -796,7 +839,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:309
+#: injection.xml:325
#, no-c-format
msgid ""
"make sure that the bean you already have is in the classpath of the module "
@@ -804,7 +847,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:314
+#: injection.xml:330
#, no-c-format
msgid ""
"explicitly enable an <literal>@Alternative</literal> bean that implements "
@@ -813,13 +856,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:321
+#: injection.xml:337
#, no-c-format
msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:327
+#: injection.xml:343
#, no-c-format
msgid ""
"introduce a qualifier to distinguish between the two implementations of the "
@@ -827,14 +870,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:332
+#: injection.xml:348
#, no-c-format
msgid ""
"disable one of the beans by annotating it <literal>@Alternative</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:337
+#: injection.xml:353
#, no-c-format
msgid ""
"move one of the implementations to a module that is not in the classpath of "
@@ -842,7 +885,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:343
+#: injection.xml:359
#, no-c-format
msgid ""
"disable one of two <literal>@Alternative</literal> beans that are trying to "
@@ -850,10 +893,10 @@
msgstr ""
#. Tag: para
-#: injection.xml:350
+#: injection.xml:366
#, no-c-format
msgid ""
-"See <ulink src=\"http://sfwk.org/Documentation/"
+"See <ulink url=\"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 "
@@ -861,13 +904,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:358
+#: injection.xml:374
#, no-c-format
msgid "Just remember: \"There can be only one.\""
msgstr ""
#. Tag: para
-#: injection.xml:361
+#: injection.xml:377
#, no-c-format
msgid ""
"On the other hand, if you really do have an optional or multivalued "
@@ -876,7 +919,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:366
+#: injection.xml:382
#, fuzzy, no-c-format
msgid ""
"Now there's one more issue you need to be aware of when using the dependency "
@@ -886,13 +929,13 @@
"Web Beans."
#. Tag: title
-#: injection.xml:373
+#: injection.xml:389
#, no-c-format
msgid "Client proxies"
msgstr "Los proxy de cliente"
#. Tag: para
-#: injection.xml:375
+#: injection.xml:391
#, fuzzy, no-c-format
msgid ""
"Clients of an injected bean do not usually hold a direct reference to a bean "
@@ -903,7 +946,7 @@
"directa a una instancia de Web Bean."
#. Tag: para
-#: injection.xml:380
+#: injection.xml:396
#, fuzzy, no-c-format
msgid ""
"Imagine that a bean bound to the application scope held a direct reference "
@@ -918,7 +961,7 @@
"la petición en el ámbito de WebBean!"
#. Tag: para
-#: injection.xml:386
+#: injection.xml:402
#, fuzzy, no-c-format
msgid ""
"Now imagine that a bean bound to the session scope holds a direct reference "
@@ -936,7 +979,7 @@
"sesión en el ámbito de Web Bean!"
#. Tag: para
-#: injection.xml:393
+#: injection.xml:409
#, fuzzy, no-c-format
msgid ""
"Therefore, unless a bean has the default scope <literal>@Dependent</"
@@ -959,7 +1002,7 @@
"recursivo a otros Web Beans inyectados."
#. Tag: para
-#: injection.xml:401
+#: injection.xml:417
#, fuzzy, no-c-format
msgid ""
"Unfortunately, due to limitations of the Java language, some Java types "
@@ -975,7 +1018,7 @@
"proxy al tipo de un punto de inyección."
#. Tag: para
-#: injection.xml:407
+#: injection.xml:423
#, fuzzy, no-c-format
msgid "The following Java types cannot be proxied by the container:"
msgstr ""
@@ -983,14 +1026,14 @@
"de Java:"
#. Tag: para
-#: injection.xml:411
+#: injection.xml:427
#, fuzzy, no-c-format
msgid ""
"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:414
+#: injection.xml:430
#, no-c-format
msgid ""
"classes which are declared <literal>final</literal> or have a "
@@ -1000,27 +1043,52 @@
"<literal>final</literal>,"
#. Tag: para
-#: injection.xml:419
+#: injection.xml:435
#, no-c-format
msgid "arrays and primitive types."
msgstr "matrices y tipos primarios."
#. Tag: para
-#: injection.xml:423
-#, fuzzy, no-c-format
+#: injection.xml:439
+#, 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 "
+"It's usually very easy to fix an unproxyable dependency problem. If an "
+"injection point of type <literal>X</literal> results in an unproxyable "
+"dependency, simply:"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:446
+#, no-c-format
+msgid "add a constructor with no parameters to <literal>X</literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:451
+#, no-c-format
+msgid ""
+"change the type of the injection point to <literal>Instance<X></"
+"literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:456
+#, no-c-format
+msgid ""
+"introduce an interface <literal>Y</literal>, implemented by the injected "
+"bean, and change the type of the injection point to <literal>Y</literal>, or"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:462
+#, no-c-format
+msgid ""
+"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:430
+#: injection.xml:469
#, no-c-format
msgid ""
"A future release of Weld will likely support a non-standard workaround for "
@@ -1028,7 +1096,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:437
+#: injection.xml:476
#, no-c-format
msgid ""
"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
@@ -1036,7 +1104,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:442
+#: injection.xml:481
#, no-c-format
msgid ""
"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
@@ -1044,19 +1112,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:448
+#: injection.xml:487
#, no-c-format
msgid "But we didn't get around to implementing this yet."
msgstr ""
#. Tag: title
-#: injection.xml:457
+#: injection.xml:496
#, 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:459
+#: injection.xml:498
#, no-c-format
msgid ""
"In certain situations, injection is not the most convenient way to obtain a "
@@ -1064,13 +1132,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:466
+#: injection.xml:505
#, no-c-format
msgid "the bean type or qualifiers vary dynamically at runtime, or"
msgstr ""
#. Tag: para
-#: injection.xml:471
+#: injection.xml:510
#, no-c-format
msgid ""
"depending upon the deployment, there may be no bean which satisfies the type "
@@ -1078,13 +1146,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:476
+#: injection.xml:515
#, no-c-format
msgid "we would like to iterate over all beans of a certain type."
msgstr ""
#. Tag: para
-#: injection.xml:482
+#: injection.xml:521
#, fuzzy, no-c-format
msgid ""
"In these situations, the application may obtain an instance of the interface "
@@ -1094,13 +1162,13 @@
"literal> a través de inyección:"
#. Tag: programlisting
-#: injection.xml:487
+#: injection.xml:526
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:489
+#: injection.xml:528
#, fuzzy, no-c-format
msgid ""
"The <literal>get()</literal> method of <literal>Instance</literal> produces "
@@ -1110,25 +1178,25 @@
"para pruebas"
#. Tag: programlisting
-#: injection.xml:493
+#: injection.xml:532
#, fuzzy, no-c-format
msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:495
+#: injection.xml:534
#, no-c-format
msgid "Qualifiers can be specified in one of two ways:"
msgstr ""
#. Tag: para
-#: injection.xml:501
+#: injection.xml:540
#, no-c-format
msgid "by annotating the <literal>Instance</literal> injection point, or"
msgstr ""
#. Tag: para
-#: injection.xml:504
+#: injection.xml:543
#, fuzzy, no-c-format
msgid ""
"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
@@ -1138,13 +1206,13 @@
"<literal>@PostConstruct</literal> y <literal>@PreDestroy</literal>."
#. Tag: para
-#: injection.xml:508
+#: injection.xml:547
#, no-c-format
msgid "Specifying the qualifiers at the injection point is much, much easier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:512
+#: injection.xml:551
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
@@ -1153,7 +1221,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:514
+#: injection.xml:553
#, no-c-format
msgid ""
"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
@@ -1161,7 +1229,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:519
+#: injection.xml:558
#, no-c-format
msgid ""
"Alternatively, we can specify the qualifier dynamically. First, we add the "
@@ -1170,14 +1238,14 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:524
+#: injection.xml:563
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:526
+#: injection.xml:565
#, no-c-format
msgid ""
"Next, we need to obtain an instance of our qualifier type. Since annotatons "
@@ -1188,7 +1256,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:533
+#: injection.xml:572
#, fuzzy, no-c-format
msgid ""
"<![CDATA[abstract class AsynchronousQualifier\n"
@@ -1199,13 +1267,13 @@
" implements CreditCard {}]]>"
#. Tag: para
-#: injection.xml:535
+#: injection.xml:574
#, no-c-format
msgid "In some cases, we can use an anonymous class:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:539
+#: injection.xml:578
#, fuzzy, no-c-format
msgid ""
"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
@@ -1217,14 +1285,14 @@
"AnnotationLiteral<CreditCard>(){});]]>"
#. Tag: para
-#: injection.xml:542
+#: injection.xml:581
#, no-c-format
msgid ""
"We can't use an anonymous class to implement a qualifier type with members."
msgstr ""
#. Tag: para
-#: injection.xml:547
+#: injection.xml:586
#, no-c-format
msgid ""
"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
@@ -1232,7 +1300,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:551
+#: injection.xml:590
#, no-c-format
msgid ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
@@ -1242,13 +1310,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:556
+#: injection.xml:595
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
msgstr "El objeto <literal>InjectionPoint</literal>"
#. Tag: para
-#: injection.xml:558
+#: injection.xml:597
#, fuzzy, no-c-format
msgid ""
"There are certain kinds of dependent objects (beans with scope "
@@ -1262,7 +1330,7 @@
"ejemplo:"
#. Tag: para
-#: injection.xml:564
+#: injection.xml:603
#, no-c-format
msgid ""
"The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1272,7 +1340,7 @@
"clase de objeto que lo posea."
#. Tag: para
-#: injection.xml:568
+#: injection.xml:607
#, no-c-format
msgid ""
"Injection of a HTTP parameter or header value depends upon what parameter or "
@@ -1282,7 +1350,7 @@
"parámetro o del nombre de encabezado especificado en el punto de inyección."
#. Tag: para
-#: injection.xml:572
+#: injection.xml:611
#, no-c-format
msgid ""
"Injection of the result of an EL expression evaluation depends upon the "
@@ -1292,7 +1360,7 @@
"expresión que fue especificada en el punto de inyección."
#. Tag: para
-#: injection.xml:577
+#: injection.xml:616
#, fuzzy, no-c-format
msgid ""
"A bean with scope <literal>@Dependent</literal> may inject an instance of "
@@ -1304,7 +1372,7 @@
"relativos al punto de inyección al que pertenezca."
#. Tag: para
-#: injection.xml:581
+#: injection.xml:620
#, no-c-format
msgid ""
"Let's look at an example. The following code is verbose, and vulnerable to "
@@ -1314,13 +1382,13 @@
"problemas de refactorización:"
#. Tag: programlisting
-#: injection.xml:584
+#: injection.xml:623
#, 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:586
+#: injection.xml:625
#, no-c-format
msgid ""
"This clever little producer method lets you inject a JDK <literal>Logger</"
@@ -1330,7 +1398,7 @@
"literal> JDK sin especificar explícitamente la categoría de registro:"
#. Tag: programlisting
-#: injection.xml:589
+#: injection.xml:628
#, no-c-format
msgid ""
"<![CDATA[class LogFactory {\n"
@@ -1352,19 +1420,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:591
+#: injection.xml:630
#, no-c-format
msgid "We can now write:"
msgstr "Ahora podemos escribir:"
#. Tag: programlisting
-#: injection.xml:593
+#: injection.xml:632
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Logger log;]]>"
msgstr "<![CDATA[@Current Logger log;]]>"
#. Tag: para
-#: injection.xml:595
+#: injection.xml:634
#, fuzzy, no-c-format
msgid ""
"Not convinced? Then here's a second example. To inject HTTP parameters, we "
@@ -1374,14 +1442,14 @@
"parámetros, necesitamos definir el tipo de vinculación:"
#. Tag: programlisting
-#: injection.xml:598
-#, no-c-format
+#: injection.xml:637
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@BindingType\n"
"@Retention(RUNTIME)\n"
"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
"public @interface HttpParam {\n"
-" @NonBinding public String value();\n"
+" @Nonbinding public String value();\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -1392,7 +1460,7 @@
"}]]>"
#. Tag: para
-#: injection.xml:600
+#: injection.xml:639
#, fuzzy, no-c-format
msgid "We would use this qualifier type at injection points as follows:"
msgstr ""
@@ -1400,7 +1468,7 @@
"continuación:"
#. Tag: programlisting
-#: injection.xml:602
+#: injection.xml:641
#, no-c-format
msgid ""
"<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1410,21 +1478,21 @@
"@HttpParam(\"password\") String password;]]>"
#. Tag: para
-#: injection.xml:604
+#: injection.xml:643
#, no-c-format
msgid "The following producer method does the work:"
msgstr "El siguiente método de productor sí funciona:"
#. Tag: programlisting
-#: injection.xml:606
-#, no-c-format
+#: injection.xml:645
+#, fuzzy, 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.getAnnotated().getAnnotation(HttpParam."
+"class).value());\n"
" }\n"
"\n"
"}]]>"
@@ -1440,19 +1508,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:608
+#: injection.xml:647
#, 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>)"
+"<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>)"
#. Tag: para
-#: injection.xml:611
+#: injection.xml:650
#, fuzzy, no-c-format
msgid ""
"The container provides a built-in bean that implements the "
@@ -1462,15 +1530,17 @@
"implementa la interfaz <literal>InjectionPoint</literal>:"
#. Tag: programlisting
-#: injection.xml:614
-#, no-c-format
+#: injection.xml:653
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface InjectionPoint { \n"
-" public Object getInstance(); \n"
-" public Bean<?> getBean(); \n"
-" public Member getMember(): \n"
-" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
-" public Set<T extends Annotation> getAnnotations(); \n"
+" public Type getType();\n"
+" public Set<Annotation> getQualifiers();\n"
+" public Bean<?> getBean();\n"
+" public Member getMember();\n"
+" public Annotated getAnnotated();\n"
+" public boolean isDelegate();\n"
+" public boolean isTransient();\n"
"}]]>"
msgstr ""
"<![CDATA[public interface InjectionPoint { \n"
@@ -1481,7 +1551,19 @@
" public Set<T extends Annotation> getAnnotations(); \n"
"}]]>"
+#, fuzzy
#~ 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 ""
+#~ "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>."
+
+#~ msgid ""
#~ "Web Beans supports three primary mechanisms for dependency injection:"
#~ msgstr ""
#~ "Web Beans soporta tres mecanismos primarios para inyección de dependencia:"
Modified: doc/trunk/reference/es-ES/interceptors.po
===================================================================
--- doc/trunk/reference/es-ES/interceptors.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/interceptors.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: interceptors\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -481,7 +481,7 @@
"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:"
+"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 "
@@ -495,7 +495,7 @@
"@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"
Modified: doc/trunk/reference/es-ES/next.po
===================================================================
--- doc/trunk/reference/es-ES/next.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/next.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: next\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -28,10 +28,10 @@
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 "
+"remains the authority for information on CDI. The spec is 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-"
+"is available on the <ulink url=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
"299 page</ulink> at the JCP website."
msgstr ""
@@ -39,9 +39,9 @@
#: next.xml:14
#, fuzzy, no-c-format
msgid ""
-"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"The CDI reference implementation, Weld, is being developed at the <ulink url="
"\"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."
+"team and the CDI spec lead blog at <ulink url=\"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 "
@@ -57,9 +57,9 @@
#: next.xml:22
#, no-c-format
msgid ""
-"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"We encourage you to follow the <ulink url=\"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 url=\"http://seamframework.org/Weld/Development\">development</"
"ulink>. If you are reading this guide, you likely have something to offer."
msgstr ""
@@ -76,7 +76,7 @@
#: next.xml:35
#, no-c-format
msgid ""
-"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"Checkout source from <ulink url=\"http://anonsvn.jboss.org/repos/weld/doc/"
"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
"ulink> using SVN"
msgstr ""
@@ -93,8 +93,9 @@
#: 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)."
+"Edit the <literal>pom.xml</literal> file in the root of the checkout and "
+"remove the \"<literal>-SNAPSHOT</literal>\" from the version element (so you "
+"don't have to build other Weld modules)."
msgstr ""
#. Tag: para
@@ -122,7 +123,8 @@
#, 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"
+"You can find the HTML version in <literal>target/docbook/publish/en-US/html</"
+"literal>."
msgstr ""
#. Tag: para
Modified: doc/trunk/reference/es-ES/part1.po
===================================================================
--- doc/trunk/reference/es-ES/part1.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/part1.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: part1\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -20,7 +20,7 @@
#: part1.xml:14
#, fuzzy, no-c-format
msgid ""
-"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"The <ulink url=\"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 "
@@ -356,7 +356,7 @@
#: part1.xml:197
#, no-c-format
msgid ""
-"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"Finally, CDI is a <ulink url=\"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/es-ES/producermethods.po
===================================================================
--- doc/trunk/reference/es-ES/producermethods.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/producermethods.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: producermethods\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -226,14 +226,27 @@
"<literal>PaymentStrategy</literal> devuelto se enlazará con el contexto de "
"sesión. El método de productor no será llamado otra vez en la misma sesión."
+#. Tag: para
+#: producermethods.xml:95
+#, no-c-format
+msgid ""
+"A producer method does <emphasis>not</emphasis> inherit the scope of the "
+"bean that declares the method. There are two different beans here: the "
+"producer method, and the bean which declares it. The scope of the producer "
+"method determines how often the method will be called, and the lifecycle of "
+"the objects returned by the method. The scope of the bean that declares the "
+"producer method determines the lifecycle of the object upon which the "
+"producer method is invoked."
+msgstr ""
+
#. Tag: title
-#: producermethods.xml:97
+#: producermethods.xml:107
#, no-c-format
msgid "Injection into producer methods"
msgstr "Inyección dentro de métodos de productor"
#. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:109
#, no-c-format
msgid ""
"There's one potential problem with the code above. The implementations of "
@@ -249,7 +262,7 @@
"dependencia y no tienen interceptores."
#. Tag: para
-#: producermethods.xml:106
+#: producermethods.xml:116
#, fuzzy, no-c-format
msgid ""
"If this isn't what we want, we can use dependency injection into the "
@@ -259,7 +272,7 @@
"dentro del método del productor para obtener las instancias de Web Bean:"
#. Tag: programlisting
-#: producermethods.xml:111
+#: producermethods.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -287,7 +300,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:123
#, fuzzy, no-c-format
msgid ""
"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
@@ -310,7 +323,7 @@
"retornar instancias de Web Bean desde métodos de productor!"
#. Tag: para
-#: producermethods.xml:122
+#: producermethods.xml:132
#, fuzzy, no-c-format
msgid ""
"There's at least three ways we could go about fixing this bug. We could "
@@ -326,7 +339,7 @@
"<literal>@RequestScoped</literal>."
#. Tag: para
-#: producermethods.xml:129
+#: producermethods.xml:139
#, fuzzy, no-c-format
msgid ""
"But a more common solution is to use the special <literal>@New</literal> "
@@ -336,19 +349,19 @@
"<literal>@New</literal>."
#. Tag: title
-#: producermethods.xml:134
+#: producermethods.xml:144
#, 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:136
+#: producermethods.xml:146
#, no-c-format
msgid "Consider the following producer method:"
msgstr "Considere el siguiente método de productor:"
#. Tag: programlisting
-#: producermethods.xml:138
+#: producermethods.xml:148
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -380,7 +393,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:140
+#: producermethods.xml:150
#, no-c-format
msgid ""
"Then a new <emphasis>dependent</emphasis> instance of "
@@ -397,13 +410,13 @@
"objeto <literal>Preferencias</literal> sea destruido, al final de la sesión."
#. Tag: title
-#: producermethods.xml:150
+#: producermethods.xml:160
#, fuzzy, no-c-format
msgid "Disposer methods"
msgstr "Métodos de productor"
#. Tag: para
-#: producermethods.xml:152
+#: producermethods.xml:162
#, no-c-format
msgid ""
"Some producer methods return objects that require explicit destruction. For "
@@ -411,7 +424,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:157
+#: producermethods.xml:167
#, no-c-format
msgid ""
"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
@@ -420,7 +433,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:159
+#: producermethods.xml:169
#, no-c-format
msgid ""
"Destruction can be performed by a matching <emphasis>disposer method</"
@@ -428,7 +441,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:162
+#: producermethods.xml:172
#, no-c-format
msgid ""
"<![CDATA[void close(@Disposes Connection connection) {\n"
@@ -437,7 +450,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:164
+#: producermethods.xml:174
#, no-c-format
msgid ""
"The disposer method must have at least one parameter, annotated "
Modified: doc/trunk/reference/es-ES/resources.po
===================================================================
--- doc/trunk/reference/es-ES/resources.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/resources.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -66,6 +66,45 @@
#: resources.xml:33
#, no-c-format
msgid ""
+"The CDI specification uses the term <emphasis>resource</emphasis> to refer, "
+"generically, to any of the following kinds of object which might be "
+"available in the Java EE component environment:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:38
+#, no-c-format
+msgid ""
+"JDBC <literal>Datasource</literal>s, JMS <literal>Queue</literal>s, "
+"<literal>Topic</literal>s and <literal>ConnectionFactory</literal>s, "
+"JavaMail <literal>Session</literal>s and other transactional resources "
+"including JCA connectors,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"JPA <literal>EntityManager</literal>s and <literal>EntityManagerFactory</"
+"literal>s,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:46
+#, no-c-format
+msgid "remote EJBs, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid "web services"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:53
+#, 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>, "
@@ -73,7 +112,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:37
+#: resources.xml:57
#, no-c-format
msgid ""
"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
@@ -81,7 +120,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:39
+#: resources.xml:59
#, no-c-format
msgid ""
"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
@@ -90,7 +129,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:41
+#: resources.xml:61
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
@@ -98,7 +137,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:43
+#: resources.xml:63
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
@@ -106,7 +145,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:45
+#: resources.xml:65
#, no-c-format
msgid ""
"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
@@ -114,47 +153,69 @@
msgstr ""
#. Tag: para
-#: resources.xml:47
+#: resources.xml:67
#, no-c-format
msgid "The field may be static (but not final)."
msgstr ""
#. Tag: para
-#: resources.xml:49
+#: resources.xml:69
#, no-c-format
+msgid "A resource declaration really contains two pieces of information:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:73
+#, no-c-format
msgid ""
+"the JNDI name, EJB link, persistence unit name, or other metadata needed to "
+"obtain a reference to the resource from the component environment, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:77
+#, no-c-format
+msgid ""
+"the type and qualifiers that we will use to inject the reference into our "
+"beans."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:82
+#, 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</"
+"sense to declare your resources in a class annotated <literal>@Alternative</"
"literal>."
msgstr ""
#. Tag: title
-#: resources.xml:56
+#: resources.xml:90
#, no-c-format
msgid "Typesafe resource injection"
msgstr ""
#. Tag: para
-#: resources.xml:58
+#: resources.xml:92
#, no-c-format
msgid "These resources can now be injected in the usual way."
msgstr ""
#. Tag: programlisting
-#: resources.xml:62
+#: resources.xml:96
#, no-c-format
msgid "<![CDATA[@Inject Catalog catalog;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:63
+#: resources.xml:97
#, no-c-format
msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:64
+#: resources.xml:98
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManager "
@@ -162,7 +223,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:65
+#: resources.xml:99
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
@@ -170,13 +231,13 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:66
+#: resources.xml:100
#, no-c-format
msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
msgstr ""
#. Tag: para
-#: resources.xml:68
+#: resources.xml:102
#, no-c-format
msgid ""
"The bean type and qualifiers of the resource are determined by the producer "
@@ -184,7 +245,7 @@
msgstr ""
#. Tag: para
-#: resources.xml:72
+#: resources.xml:106
#, no-c-format
msgid ""
"It might seem like a pain to have to write these extra producer field "
@@ -196,25 +257,25 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:79
+#: resources.xml:113
#, no-c-format
msgid "@Inject @CustomerDatabase EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:81
+#: resources.xml:115
#, no-c-format
msgid "instead of"
msgstr ""
#. Tag: programlisting
-#: resources.xml:83
+#: resources.xml:117
#, no-c-format
msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:85
+#: resources.xml:119
#, 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/ri-spi.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: ri-spi\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -819,6 +819,19 @@
#. Tag: para
#: ri-spi.xml:497
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.ConversationAwareViewHandler</literal> as a "
+"delegating view handler."
+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:502
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -830,7 +843,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:504
+#: ri-spi.xml:509
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -840,7 +853,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:511 ri-spi.xml:557
+#: ri-spi.xml:516 ri-spi.xml:562
#, no-c-format
msgid ""
"There are a number of ways you can obtain the bean manager for the module. "
@@ -850,7 +863,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:518
+#: ri-spi.xml:523
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must register "
@@ -865,19 +878,19 @@
"configuración de usuario, para cada aplicación Web Beans que utiliza Servlet."
#. Tag: para
-#: ri-spi.xml:526
+#: ri-spi.xml:531
#, no-c-format
msgid "Weld only supports JSF 1.2 and above."
msgstr ""
#. Tag: term
-#: ri-spi.xml:533
+#: ri-spi.xml:538
#, no-c-format
msgid "<term>JSP</term>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:538
+#: ri-spi.xml:543
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must register "
@@ -890,7 +903,7 @@
"configuración de usuario, para cada aplicación Web Beans que utiliza Servlet."
#. Tag: para
-#: ri-spi.xml:543
+#: ri-spi.xml:548
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -901,7 +914,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:550
+#: ri-spi.xml:555
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -911,13 +924,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:567
+#: ri-spi.xml:572
#, no-c-format
msgid "Session Bean Interceptor"
msgstr "Intercepción de sesión de Bean"
#. Tag: para
-#: ri-spi.xml:571
+#: ri-spi.xml:576
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into an EJB environment you must register "
@@ -933,7 +946,7 @@
"Beans empresariales."
#. Tag: para
-#: ri-spi.xml:578
+#: ri-spi.xml:583
#, no-c-format
msgid ""
"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -941,13 +954,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:586
+#: ri-spi.xml:591
#, fuzzy, no-c-format
msgid "The <literal>weld-core.jar</literal>"
msgstr "El <literal>webbeans-ri.jar</literal>"
#. Tag: para
-#: ri-spi.xml:590
+#: ri-spi.xml:595
#, no-c-format
msgid ""
"Weld can reside on an isolated classloader, or on a shared classloader. If "
@@ -959,7 +972,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:596
+#: ri-spi.xml:601
#, no-c-format
msgid ""
"You can provide your own implementation of <literal>Singleton</literal> and "
@@ -968,7 +981,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:601
+#: ri-spi.xml:606
#, no-c-format
msgid ""
"Weld also provides an implementation of Thread Context Classloader per "
@@ -976,13 +989,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:608
+#: ri-spi.xml:613
#, no-c-format
msgid "Binding the manager in JNDI"
msgstr ""
#. Tag: para
-#: ri-spi.xml:612
+#: ri-spi.xml:617
#, no-c-format
msgid ""
"You should bind the bean manager for the bean deployment archive into JNDI "
@@ -993,13 +1006,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:622
+#: ri-spi.xml:627
#, no-c-format
msgid "Performing CDI injection on Java EE component classes"
msgstr ""
#. Tag: para
-#: ri-spi.xml:626
+#: ri-spi.xml:631
#, no-c-format
msgid ""
"The CDI specification requires the container to provide injection into non-"
@@ -1011,7 +1024,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:634
+#: ri-spi.xml:639
#, no-c-format
msgid ""
"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
@@ -1022,7 +1035,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:641
+#: ri-spi.xml:646
#, no-c-format
msgid ""
"To help the integrator, Weld provides <literal>WeldManager."
@@ -1031,7 +1044,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:646
+#: ri-spi.xml:651
#, no-c-format
msgid ""
"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
@@ -1059,7 +1072,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:647
+#: ri-spi.xml:652
#, no-c-format
msgid ""
"The container may intersperse other operations between these calls. Further, "
@@ -1068,7 +1081,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:651
+#: ri-spi.xml:656
#, no-c-format
msgid ""
"When performing injections on EJBs you must use the Weld-defined SPI, "
@@ -1078,7 +1091,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:656
+#: ri-spi.xml:661
#, no-c-format
msgid ""
"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
Modified: doc/trunk/reference/es-ES/scopescontexts.po
===================================================================
--- doc/trunk/reference/es-ES/scopescontexts.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/scopescontexts.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: scopescontexts\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -81,18 +81,23 @@
#: 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."
+"JPA entities aren't a great fit for this model. Entities have their whole "
+"own lifecycle and identity model which just doesn't map naturally to the "
+"model used in CDI. Therefore, we recommend against treating entities as CDI "
+"beans. You're certainly going to run into problems if you try to give an "
+"entity a scope other than the default scope <literal>@Dependent</literal>. "
+"The client proxy will get in the way if you try to pass an injected instance "
+"to the JPA <literal>EntityManager</literal>."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:41
+#: scopescontexts.xml:45
#, no-c-format
msgid "Scope types"
msgstr "Tipos de ámbito"
#. Tag: para
-#: scopescontexts.xml:43
+#: scopescontexts.xml:47
#, fuzzy, no-c-format
msgid ""
"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
@@ -102,7 +107,7 @@
"posible definir nuevos ámbitos creando una nueva anotación de tipo de ámbito:"
#. Tag: programlisting
-#: scopescontexts.xml:48
+#: scopescontexts.xml:52
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ScopeType\n"
@@ -116,7 +121,7 @@
"public @interface ClusterScoped {}]]>"
#. Tag: para
-#: scopescontexts.xml:50
+#: scopescontexts.xml:54
#, fuzzy, no-c-format
msgid ""
"Of course, that's the easy part of the job. For this scope type to be "
@@ -132,7 +137,7 @@
"suele ser una tarea muy técnica, únicamente destinada a desarrollo de marco."
#. Tag: para
-#: scopescontexts.xml:57
+#: scopescontexts.xml:61
#, fuzzy, no-c-format
msgid ""
"We can apply a scope type annotation to a bean implementation class to "
@@ -142,7 +147,7 @@
"de Web Bean para especificar el ámbito del Web Bean:"
#. Tag: programlisting
-#: scopescontexts.xml:61
+#: scopescontexts.xml:65
#, no-c-format
msgid ""
"<![CDATA[@ClusterScoped\n"
@@ -152,56 +157,56 @@
"public class SecondLevelCache { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:63
+#: scopescontexts.xml:67
#, 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:68
+#: scopescontexts.xml:72
#, no-c-format
msgid "Built-in scopes"
msgstr "Ámbitos incorporados"
#. Tag: para
-#: scopescontexts.xml:70
+#: scopescontexts.xml:74
#, fuzzy, no-c-format
msgid "CDI defines four built-in scopes:"
msgstr "Web Beans define cuatro ámbitos incorporados:"
#. Tag: literal
-#: scopescontexts.xml:74
+#: scopescontexts.xml:78
#, no-c-format
msgid "@RequestScoped"
msgstr "@RequestScoped"
#. Tag: literal
-#: scopescontexts.xml:77
+#: scopescontexts.xml:81
#, no-c-format
msgid "@SessionScoped"
msgstr "@SessionScoped"
#. Tag: literal
-#: scopescontexts.xml:80
+#: scopescontexts.xml:84
#, no-c-format
msgid "@ApplicationScoped"
msgstr "@ApplicationScoped"
#. Tag: literal
-#: scopescontexts.xml:83
+#: scopescontexts.xml:87
#, no-c-format
msgid "@ConversationScoped"
msgstr "@ConversationScoped"
#. Tag: para
-#: scopescontexts.xml:87
+#: scopescontexts.xml:91
#, 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:91
+#: scopescontexts.xml:95
#, no-c-format
msgid ""
"any servlet request has access to active request, session and application "
@@ -211,52 +216,64 @@
"ámbitos de aplicación, y adicionalmente,"
#. Tag: para
-#: scopescontexts.xml:96
+#: scopescontexts.xml:100
#, 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:101
+#: scopescontexts.xml:105
#, no-c-format
msgid ""
-"A CDI extension can support the conversation scope for other frameworks as "
-"well."
+"A CDI extension can implement support for the conversation scope in other "
+"web frameworks."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:108
#, 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:108
+#: scopescontexts.xml:112
#, no-c-format
msgid "during invocations of EJB remote methods,"
msgstr "durante invocaciones de métodos remotos EJB,"
#. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:115
+#, fuzzy, no-c-format
+msgid "during invocations of EJB asynchronous methods,"
+msgstr "durante invocaciones de métodos remotos EJB,"
+
+#. Tag: para
+#: scopescontexts.xml:118
#, no-c-format
msgid "during EJB timeouts,"
msgstr "durante pausas EJB,"
#. Tag: para
-#: scopescontexts.xml:114
-#, no-c-format
-msgid "during message delivery to a message-driven bean, and"
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
+msgid "during message delivery to a message-driven bean,"
msgstr "durante la entrega de mensaje a un bean controlado por mensajes, y"
#. Tag: para
-#: scopescontexts.xml:117
+#: scopescontexts.xml:124
+#, fuzzy, no-c-format
+msgid "during message delivery to a <literal>MessageListener</literal>, and"
+msgstr "durante la entrega de mensaje a un bean controlado por mensajes, y"
+
+#. Tag: para
+#: scopescontexts.xml:127
#, no-c-format
msgid "during web service invocations."
msgstr "durante invocaciones de servicio de red."
#. Tag: para
-#: scopescontexts.xml:121
+#: scopescontexts.xml:131
#, fuzzy, no-c-format
msgid ""
"If the application tries to invoke a bean with a scope that does not have an "
@@ -269,9 +286,18 @@
"ejecución."
#. Tag: para
-#: scopescontexts.xml:126
+#: scopescontexts.xml:136
#, no-c-format
msgid ""
+"Managed beans with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal> must be serializable, since the "
+"container passivates the HTTP session from time to time."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:141
+#, no-c-format
+msgid ""
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
@@ -281,13 +307,13 @@
"explicarlos aquí. No obstante, uno de los ámbitos es nuevo."
#. Tag: title
-#: scopescontexts.xml:134
+#: scopescontexts.xml:149
#, no-c-format
msgid "The conversation scope"
msgstr "El ámbito de conversación"
#. Tag: para
-#: scopescontexts.xml:136
+#: scopescontexts.xml:151
#, fuzzy, no-c-format
msgid ""
"The conversation scope is a bit like the traditional session scope in that "
@@ -301,13 +327,13 @@
"del ámbito de sesión, el ámbito de conversación:"
#. Tag: para
-#: scopescontexts.xml:144
+#: scopescontexts.xml:159
#, 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:147
+#: scopescontexts.xml:162
#, no-c-format
msgid ""
"holds state associated with a particular web browser tab in a JSF "
@@ -316,7 +342,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:154
+#: scopescontexts.xml:169
#, fuzzy, no-c-format
msgid ""
"A conversation represents a task—a unit of work from the point of view "
@@ -331,7 +357,7 @@
"conversaciones."
#. Tag: para
-#: scopescontexts.xml:160
+#: scopescontexts.xml:175
#, fuzzy, no-c-format
msgid ""
"The conversation context is active during any JSF request. Most "
@@ -346,13 +372,13 @@
"larga</emphasis>."
#. Tag: title
-#: scopescontexts.xml:167
+#: scopescontexts.xml:182
#, no-c-format
msgid "Conversation demarcation"
msgstr "Demarcación de conversación"
#. Tag: para
-#: scopescontexts.xml:169
+#: scopescontexts.xml:184
#, fuzzy, no-c-format
msgid ""
"CDI provides a built-in bean for controlling the lifecycle of conversations "
@@ -363,13 +389,13 @@
"inyección:"
#. Tag: programlisting
-#: scopescontexts.xml:174
+#: scopescontexts.xml:189
#, fuzzy, no-c-format
msgid "@Inject Conversation conversation;"
msgstr "@Current Conversation conversation;"
#. Tag: para
-#: scopescontexts.xml:176
+#: scopescontexts.xml:191
#, no-c-format
msgid ""
"To promote the conversation associated with the current request to a long-"
@@ -385,7 +411,7 @@
"literal>."
#. Tag: para
-#: scopescontexts.xml:182
+#: scopescontexts.xml:197
#, fuzzy, no-c-format
msgid ""
"In the following example, a conversation-scoped bean controls the "
@@ -395,7 +421,7 @@
"la conversación con la que está asociada."
#. Tag: programlisting
-#: scopescontexts.xml:186
+#: scopescontexts.xml:201
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ConversationScoped @Stateful\n"
@@ -459,7 +485,7 @@
"}"
#. Tag: para
-#: scopescontexts.xml:188
+#: scopescontexts.xml:203
#, fuzzy, no-c-format
msgid ""
"This bean is able to control its own lifecycle through use of the "
@@ -471,13 +497,13 @@
"un ciclo de vida que depende totalmente de otro objeto."
#. Tag: title
-#: scopescontexts.xml:196
+#: scopescontexts.xml:211
#, no-c-format
msgid "Conversation propagation"
msgstr "Propagación de conversación"
#. Tag: para
-#: scopescontexts.xml:198
+#: scopescontexts.xml:213
#, fuzzy, no-c-format
msgid ""
"The conversation context automatically propagates with any JSF faces request "
@@ -490,7 +516,7 @@
"mediante un enlace."
#. Tag: para
-#: scopescontexts.xml:203
+#: scopescontexts.xml:218
#, fuzzy, no-c-format
msgid ""
"We can force the conversation to propagate with a non-faces request by "
@@ -508,13 +534,13 @@
"cual tiene el nombre de Web Beans <literal>conversation</literal>."
#. Tag: para
-#: scopescontexts.xml:210
+#: scopescontexts.xml:225
#, 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:214
+#: scopescontexts.xml:229
#, no-c-format
msgid ""
"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -524,13 +550,13 @@
">"
#. Tag: para
-#: scopescontexts.xml:216
+#: scopescontexts.xml:231
#, no-c-format
msgid "It's probably better to use one of the link components in JSF 2:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:220
+#: scopescontexts.xml:235
#, no-c-format
msgid ""
"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
@@ -539,7 +565,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:223
+#: scopescontexts.xml:238
#, fuzzy, no-c-format
msgid ""
"The conversation context propagates across redirects, making it very easy to "
@@ -555,13 +581,13 @@
"automáticamente un parámetro a la URL de redirección."
#. Tag: title
-#: scopescontexts.xml:233
+#: scopescontexts.xml:248
#, no-c-format
msgid "Conversation timeout"
msgstr "Pausa de conversación"
#. Tag: para
-#: scopescontexts.xml:235
+#: scopescontexts.xml:250
#, fuzzy, no-c-format
msgid ""
"The container is permitted to destroy a conversation and all state held in "
@@ -579,7 +605,7 @@
"la destrucción de la conversación."
#. Tag: para
-#: scopescontexts.xml:242
+#: scopescontexts.xml:257
#, fuzzy, no-c-format
msgid ""
"The <literal>Conversation</literal> object provides a method to set the "
@@ -591,31 +617,127 @@
"de Web Bean quién tiene la libertad de pasar por alto la configuración."
#. Tag: programlisting
-#: scopescontexts.xml:247
+#: scopescontexts.xml:262
#, no-c-format
msgid "conversation.setTimeout(timeoutInMillis);"
msgstr "conversation.setTimeout(timeoutInMillis);"
#. Tag: title
-#: scopescontexts.xml:254
+#: scopescontexts.xml:269
+#, fuzzy, no-c-format
+msgid "The singleton pseudo-scope"
+msgstr "El seudo ámbito dependiente"
+
+#. Tag: para
+#: scopescontexts.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"In addition to the four built-in scopes, CDI also supports two "
+"<emphasis>pseudo-scopes</emphasis>. The first is the <emphasis>singleton "
+"pseudo-scope</emphasis>, which we specify using the annotation "
+"<literal>@Singleton</literal>."
+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:277
#, no-c-format
+msgid ""
+"Unlike the other scopes, which belong to the package <literal>javax."
+"enterprise.context</literal>, the <literal>@Singleton</literal> annotation "
+"is defined in the package <literal>javax.inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:283
+#, no-c-format
+msgid ""
+"You can guess what \"singleton\" means here. It means a bean that is "
+"instantiated once. Unfortunately, there's a little problem with this pseudo-"
+"scope. Beans with scope <literal>@Singleton</literal> don't have a proxy "
+"object. Clients hold a direct reference to the singleton instance. So we "
+"need to consider the case of a client that can be serialized, for example, "
+"any bean with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal>, any dependent object of a bean with "
+"scope <literal>@SessionScoped</literal> or <literal>@ConversationScoped</"
+"literal>, or any stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:292
+#, no-c-format
+msgid ""
+"Now, if the singleton instance is a simple, immutable, serializable object "
+"like a string, a number or a date, we probably don't mind too much if it "
+"gets duplicated via serialization. However, that makes it no stop being a "
+"true singleton, and we may as well have just declared it with the default "
+"scope."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:298
+#, no-c-format
+msgid ""
+"There are several ways to ensure that the singleton bean remains a singleton "
+"when its client gets serialized:"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:302
+#, no-c-format
+msgid ""
+"have the singleton bean implement <literal>writeResolve()</literal> and "
+"<literal>readReplace()</literal> (as defined by the Java serialization "
+"specification),"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:308
+#, no-c-format
+msgid ""
+"make sure the client keeps only a transient reference to the singleton bean, "
+"or"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:313
+#, no-c-format
+msgid ""
+"give the client a reference of type <literal>Instance<X></literal> "
+"where <literal>X</literal> is the bean type of the singleton bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:320
+#, no-c-format
+msgid ""
+"A fourth, better solution is to instead use <literal>@ApplicationScoped</"
+"literal>, allowing the container to proxy the bean, and take care of "
+"serialization problems automatically."
+msgstr ""
+
+#. Tag: title
+#: scopescontexts.xml:326
+#, no-c-format
msgid "The dependent pseudo-scope"
msgstr "El seudo ámbito dependiente"
#. Tag: para
-#: scopescontexts.xml:256
+#: scopescontexts.xml:328
#, fuzzy, no-c-format
msgid ""
-"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 "
-"bean which does not explicitly declare a scope type."
+"Finally, CDI features the so-called <emphasis>dependent pseudo-scope</"
+"emphasis>. This is the default scope for a 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:261
+#: scopescontexts.xml:333
#, fuzzy, no-c-format
msgid ""
"For example, this bean has the scope type <literal>@Dependent</literal>:"
@@ -624,24 +746,56 @@
"literal>:"
#. Tag: programlisting
-#: scopescontexts.xml:265
+#: scopescontexts.xml:337
#, no-c-format
msgid "<![CDATA[public class Calculator { ... }]]>"
msgstr "<![CDATA[public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:267
+#: scopescontexts.xml:339
#, no-c-format
msgid ""
-"An instances of a dependent bean is never shared between different clients "
-"or different injection points. It is strictly a <emphasis>dependent object</"
+"An instance 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:273
+#: scopescontexts.xml:345
+#, no-c-format
+msgid ""
+"If a Unified EL expression refers to a dependent bean by EL name, an "
+"instance of the bean is instantiated every time the expression is evaluated. "
+"The instance is not reused during any other expression evaluation."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:351
+#, no-c-format
+msgid ""
+"If you need to access a bean directly by EL name in a JSF page, you probably "
+"need to give it a scope other than <literal>@Dependent</literal>. Otherwise, "
+"any value that gets set to the bean by a JSF input will be lost immediately. "
+"That's why CDI features the <literal>@Model</literal> stereotype; it lets "
+"you give a bean a name, and set its scope to <literal>@RequestScoped</"
+"literal> in one stroke. If you need to access a bean that really "
+"<emphasis>has</emphasis> to have the scope <literal>@Dependent</literal> "
+"from a JSF page, inject it into a different bean, and expose it to EL via a "
+"getter method."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:361
+#, no-c-format
+msgid ""
+"Beans with scope <literal>@Dependent</literal> don't need a proxy object. "
+"The client holds a direct reference to its instance."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:366
#, fuzzy, no-c-format
msgid ""
"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
@@ -652,13 +806,13 @@
"Bean con algún otro tipo de ámbito."
#. Tag: title
-#: scopescontexts.xml:281
+#: scopescontexts.xml:374
#, fuzzy, no-c-format
msgid "The <literal>@New</literal> qualifier"
msgstr "La anotación <literal>@New</literal>"
#. Tag: para
-#: scopescontexts.xml:283
+#: scopescontexts.xml:376
#, no-c-format
msgid ""
"The built-in qualifier <literal>@New</literal> allows us to obtain a "
@@ -666,13 +820,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:287
+#: scopescontexts.xml:380
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
msgstr "<![CDATA[@New Calculator calculator;]]>"
#. Tag: para
-#: scopescontexts.xml:289
+#: scopescontexts.xml:382
#, no-c-format
msgid ""
"The class must be a valid managed bean or session bean, but need not be an "
@@ -680,7 +834,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:291
+#: scopescontexts.xml:384
#, fuzzy, no-c-format
msgid ""
"This works even if <literal>Calculator</literal> is <emphasis>already</"
@@ -690,7 +844,7 @@
"emphasis> declarado con un tipo de ámbito diferente, por ejemplo:"
#. Tag: programlisting
-#: scopescontexts.xml:296
+#: scopescontexts.xml:389
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped\n"
@@ -700,7 +854,7 @@
"public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:298
+#: scopescontexts.xml:391
#, no-c-format
msgid ""
"So the following injected attributes each get a different instance of "
@@ -710,7 +864,7 @@
"instancia diferente a <literal>Calculator</literal>:"
#. Tag: programlisting
-#: scopescontexts.xml:302
+#: scopescontexts.xml:395
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class PaymentCalc {\n"
@@ -726,7 +880,7 @@
"}]]>"
#. Tag: para
-#: scopescontexts.xml:304
+#: scopescontexts.xml:397
#, no-c-format
msgid ""
"The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -741,7 +895,7 @@
"propietario de <literal>PaymentCalc</literal>."
#. Tag: para
-#: scopescontexts.xml:310
+#: scopescontexts.xml:403
#, no-c-format
msgid ""
"This feature is particularly useful with producer methods, as we'll see in "
Modified: doc/trunk/reference/es-ES/weldexamples.po
===================================================================
--- doc/trunk/reference/es-ES/weldexamples.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/es-ES/weldexamples.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -144,7 +144,7 @@
"<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"
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"XML"
"\"><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN"
"\"\n"
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
@@ -524,7 +524,7 @@
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."
+"can open the example natively using the <ulink url=\"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.."
@@ -620,8 +620,9 @@
"<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."
+"<ulink url=\"http://localhost:9090\">http://localhost:9090</ulink> to view "
+"the app. To debug choose <emphasis>Debug as Java Application</emphasis> "
+"instead."
msgstr ""
#. Tag: title
@@ -663,8 +664,9 @@
#: 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>."
+"to deploy the example to Tomcat. You can then access application at <ulink "
+"url=\"http://localhost:8080/weld-numberguess-wicket\">http://localhost:8080/"
+"weld-numberguess-wicket</ulink>."
msgstr ""
#. Tag: para
@@ -976,7 +978,7 @@
"\"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"
+"public class Game\n"
"{\n"
"\n"
" public static final int MAX_NUM_GUESSES = 10;\n"
@@ -1078,19 +1080,18 @@
"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"
+"to get the random number at the start of each game. Note that it can't use "
+"<literal>Instance.get()</literal> like the JSF example does because there "
+"will not be any active contexts like there are 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"
@@ -1545,7 +1546,6 @@
#, 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>."
+"information on Weld, please visit <ulink url=\"http://www.seamframework.org/"
+"Weld\">http://www.seamframework.org/Weld</ulink>."
msgstr ""
Modified: doc/trunk/reference/fr-FR/beans.po
===================================================================
--- doc/trunk/reference/fr-FR/beans.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/beans.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -484,14 +484,14 @@
#, 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."
+"context until the context is destroyed. There is no way to manually remove a "
+"bean from a context. If you don't want the bean to sit in the session "
+"indefinitely, consider using another scope with a shorted lifespan, such as "
+"the request or conversation scope."
msgstr ""
#. Tag: para
-#: beans.xml:272
+#: beans.xml:273
#, no-c-format
msgid ""
"If a scope is not explicitly specified, then the bean belongs to a special "
@@ -501,19 +501,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:278
+#: beans.xml:279
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:283
+#: beans.xml:284
#, no-c-format
msgid "EL name"
msgstr ""
#. Tag: para
-#: beans.xml:285
+#: beans.xml:286
#, no-c-format
msgid ""
"If you want to reference a bean in non-Java code that supports Unified EL "
@@ -522,7 +522,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:290
+#: beans.xml:291
#, no-c-format
msgid ""
"The EL name is specified using the <literal>@Named</literal> annotation, as "
@@ -530,7 +530,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:294
+#: beans.xml:295
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
@@ -538,13 +538,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:296
+#: beans.xml:297
#, no-c-format
msgid "Now we can easily use the bean in any JSF or JSP page:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:298
+#: beans.xml:299
#, no-c-format
msgid ""
"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
@@ -553,7 +553,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:301
+#: beans.xml:302
#, no-c-format
msgid ""
"The <literal>@Named</literal> annotation is not what makes the class a bean. "
@@ -563,7 +563,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:308
+#: beans.xml:309
#, no-c-format
msgid ""
"We can let CDI choose a name for us by leaving off the value of the "
@@ -571,7 +571,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:312
+#: beans.xml:313
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named\n"
@@ -579,7 +579,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:314
+#: beans.xml:315
#, no-c-format
msgid ""
"The name defaults to the unqualified class name, decapitalized; in this "
@@ -587,13 +587,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:324
+#: beans.xml:325
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: beans.xml:326
+#: beans.xml:327
#, no-c-format
msgid ""
"We've already seen how qualifiers let us choose between multiple "
@@ -606,7 +606,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:334
+#: beans.xml:335
#, no-c-format
msgid ""
"<![CDATA[public @Alternative\n"
@@ -614,33 +614,33 @@
msgstr ""
#. Tag: para
-#: beans.xml:336
+#: beans.xml:337
#, 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 "
+"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
+#: beans.xml:345
#, no-c-format
msgid ""
"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:351
+#: beans.xml:352
#, no-c-format
msgid "Interceptor binding types"
msgstr ""
#. Tag: para
-#: beans.xml:353
+#: beans.xml:354
#, no-c-format
msgid ""
"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
@@ -651,7 +651,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:360
+#: beans.xml:361
#, no-c-format
msgid ""
"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
@@ -668,7 +668,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:371
+#: beans.xml:372
#, no-c-format
msgid ""
"CDI provides a new approach to binding interceptors to beans that introduces "
@@ -678,7 +678,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:377
+#: beans.xml:378
#, no-c-format
msgid ""
"An interceptor binding type is a user-defined annotation that is itself "
@@ -688,7 +688,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:382
+#: beans.xml:383
#, no-c-format
msgid ""
"<![CDATA[@InterceptorBinding\n"
@@ -699,7 +699,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:384
+#: beans.xml:385
#, no-c-format
msgid ""
"The interceptor that implements transaction management declares this "
@@ -707,7 +707,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:388
+#: beans.xml:389
#, no-c-format
msgid ""
"<![CDATA[public @Transactional @Interceptor\n"
@@ -715,7 +715,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:390
+#: beans.xml:391
#, no-c-format
msgid ""
"We can apply the interceptor to a bean by annotating the bean class with the "
@@ -723,7 +723,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:394
+#: beans.xml:395
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Transactional\n"
@@ -731,7 +731,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:396
+#: beans.xml:397
#, no-c-format
msgid ""
"Notice that <literal>ShoppingCart</literal> and "
@@ -740,18 +740,18 @@
msgstr ""
#. Tag: para
-#: beans.xml:401
+#: beans.xml:402
#, 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 "
+"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
+#: beans.xml:409
#, no-c-format
msgid ""
"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
@@ -759,13 +759,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:418
+#: beans.xml:419
#, no-c-format
msgid "What kinds of classes are beans?"
msgstr ""
#. Tag: para
-#: beans.xml:420
+#: beans.xml:421
#, no-c-format
msgid ""
"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
@@ -774,13 +774,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:427
+#: beans.xml:428
#, no-c-format
msgid "Managed beans"
msgstr ""
#. Tag: para
-#: beans.xml:429
+#: beans.xml:430
#, no-c-format
msgid ""
"A managed bean is a Java class. The basic lifecycle and semantics of a "
@@ -792,19 +792,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:440
+#: beans.xml:441
#, no-c-format
msgid "It is not a non-static inner class."
msgstr ""
#. Tag: para
-#: beans.xml:443
+#: beans.xml:444
#, no-c-format
msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:446
+#: beans.xml:447
#, no-c-format
msgid ""
"It is not annotated with an EJB component-defining annotation or declared as "
@@ -812,7 +812,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:452
+#: beans.xml:453
#, no-c-format
msgid ""
"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
@@ -820,25 +820,25 @@
msgstr ""
#. Tag: para
-#: beans.xml:455
+#: beans.xml:456
#, no-c-format
msgid "It has an appropriate constructor—either:"
msgstr ""
#. Tag: para
-#: beans.xml:460
+#: beans.xml:461
#, no-c-format
msgid "the class has a constructor with no parameters, or"
msgstr ""
#. Tag: para
-#: beans.xml:463
+#: beans.xml:464
#, no-c-format
msgid "the class declares a constructor annotated <literal>@Inject</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:471
+#: beans.xml:472
#, no-c-format
msgid ""
"The unrestricted set of bean types for a managed bean contains the bean "
@@ -847,7 +847,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:474
+#: beans.xml:475
#, no-c-format
msgid ""
"If a managed bean has a public field, it must have the default scope "
@@ -855,7 +855,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:476
+#: beans.xml:477
#, no-c-format
msgid ""
"Managed beans support the <literal>@PostConstruct</literal> and "
@@ -863,7 +863,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:479
+#: beans.xml:480
#, no-c-format
msgid ""
"Session beans are also, technically, managed beans. However, since they have "
@@ -873,13 +873,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:488
+#: beans.xml:489
#, no-c-format
msgid "Session beans"
msgstr ""
#. Tag: para
-#: beans.xml:490
+#: beans.xml:491
#, no-c-format
msgid ""
"Session beans belong to the EJB specification. They have a special "
@@ -892,7 +892,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:499
+#: beans.xml:500
#, no-c-format
msgid ""
"Message-driven and entity beans are by nature non-contextual objects and may "
@@ -904,7 +904,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:507
+#: beans.xml:508
#, no-c-format
msgid ""
"The unrestricted set of bean types for a session bean contains all local "
@@ -916,7 +916,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:515
+#: beans.xml:516
#, no-c-format
msgid ""
"There's no reason to explicitly declare the scope of a stateless session "
@@ -927,7 +927,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:519
+#: beans.xml:520
#, no-c-format
msgid ""
"Stateful session beans may define a <emphasis>remove method</emphasis>, "
@@ -940,7 +940,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:527
+#: beans.xml:528
#, no-c-format
msgid ""
"So, when should we use a session bean instead of a plain managed bean? "
@@ -948,19 +948,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:534
+#: beans.xml:535
#, no-c-format
msgid "method-level transaction management and security,"
msgstr ""
#. Tag: para
-#: beans.xml:537
+#: beans.xml:538
#, no-c-format
msgid "concurrency management,"
msgstr ""
#. Tag: para
-#: beans.xml:540
+#: beans.xml:541
#, no-c-format
msgid ""
"instance-level passivation for stateful session beans and instance-pooling "
@@ -968,19 +968,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:544
+#: beans.xml:545
#, no-c-format
msgid "remote or web service invocation, or"
msgstr ""
#. Tag: para
-#: beans.xml:547
+#: beans.xml:548
#, no-c-format
msgid "timers and asynchronous methods,"
msgstr ""
#. Tag: para
-#: beans.xml:551
+#: beans.xml:552
#, no-c-format
msgid ""
"When we don't need any of these things, an ordinary managed bean will serve "
@@ -988,7 +988,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:553
+#: beans.xml:554
#, no-c-format
msgid ""
"Many beans (including any <literal>@SessionScoped</literal> or "
@@ -998,7 +998,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:559
+#: beans.xml:560
#, no-c-format
msgid ""
"Beans which hold references to heavy-weight resources, or hold a lot of "
@@ -1008,7 +1008,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:565
+#: beans.xml:566
#, no-c-format
msgid ""
"Finally, it's usually obvious when method-level transaction management, "
@@ -1017,7 +1017,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:570
+#: beans.xml:571
#, no-c-format
msgid ""
"The point we're trying to make is: use a session bean when you need the "
@@ -1030,7 +1030,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:578
+#: beans.xml:579
#, no-c-format
msgid ""
"On the other hand, don't be scared to use session beans just because you've "
@@ -1043,13 +1043,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:589
+#: beans.xml:590
#, no-c-format
msgid "Producer methods"
msgstr ""
#. Tag: para
-#: beans.xml:591
+#: beans.xml:592
#, no-c-format
msgid ""
"Not everything that needs to be injected can be boiled down to a bean class "
@@ -1061,7 +1061,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:599
+#: beans.xml:600
#, no-c-format
msgid ""
"A <emphasis>producer method</emphasis> is a method that acts as a source of "
@@ -1072,7 +1072,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:606
+#: beans.xml:607
#, no-c-format
msgid ""
"A producer method is declared by annotating a method of a bean class with "
@@ -1080,7 +1080,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:611
+#: beans.xml:612
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
@@ -1096,7 +1096,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:613
+#: beans.xml:614
#, no-c-format
msgid ""
"We can't write a bean class that is itself a random number. But we can "
@@ -1111,25 +1111,25 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:622
+#: beans.xml:623
#, no-c-format
msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
msgstr ""
#. Tag: para
-#: beans.xml:624
+#: beans.xml:625
#, no-c-format
msgid "Even in a Unified EL expression:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:628
+#: beans.xml:629
#, no-c-format
msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
msgstr ""
#. Tag: para
-#: beans.xml:630
+#: beans.xml:631
#, no-c-format
msgid ""
"A producer method must be a non-abstract method of a managed bean class or "
@@ -1139,13 +1139,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:636
+#: beans.xml:637
#, no-c-format
msgid "The bean types of a producer method depend upon the method return type:"
msgstr ""
#. Tag: para
-#: beans.xml:642
+#: beans.xml:643
#, no-c-format
msgid ""
"If the return type is an interface, the unrestricted set of bean types "
@@ -1154,7 +1154,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:648
+#: beans.xml:649
#, no-c-format
msgid ""
"If a return type is primitive or is a Java array type, the unrestricted set "
@@ -1163,7 +1163,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:654
+#: beans.xml:655
#, no-c-format
msgid ""
"If the return type is a class, the unrestricted set of bean types contains "
@@ -1172,7 +1172,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:661
+#: beans.xml:662
#, no-c-format
msgid ""
"If the producer method has method parameters, the container will look for a "
@@ -1181,7 +1181,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:667
+#: beans.xml:668
#, no-c-format
msgid ""
"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
@@ -1190,7 +1190,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:669
+#: beans.xml:670
#, no-c-format
msgid ""
"We'll talk much more about producer methods in <xref linkend="
@@ -1198,13 +1198,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:674
+#: beans.xml:675
#, no-c-format
msgid "Producer fields"
msgstr ""
#. Tag: para
-#: beans.xml:676
+#: beans.xml:677
#, no-c-format
msgid ""
"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
@@ -1214,7 +1214,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:682
+#: beans.xml:683
#, no-c-format
msgid ""
"<![CDATA[public class Shop {\n"
@@ -1224,7 +1224,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:684
+#: beans.xml:685
#, no-c-format
msgid ""
"The rules for determining the bean types of a producer field parallel the "
@@ -1232,7 +1232,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:688
+#: beans.xml:689
#, no-c-format
msgid ""
"A producer field is really just a shortcut that lets us avoid writing a "
@@ -1242,3 +1242,405 @@
"linkend=\"resources\"/>. Because we can't wait to get to work on some "
"examples."
msgstr ""
+
+#. Tag: title
+#: beans.xml:701
+#, no-c-format
+msgid "The (minimal) bean descriptor"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:703
+#, no-c-format
+msgid ""
+"First, it's important to understand that the XML bean descriptor in CDI "
+"(beans.xml) is not there to define beans in XML, like in other popular bean "
+"containers. Rather, you use this file to enable CDI services for the current "
+"bean archive that is difficult to define consistently in Java or which you "
+"don't want to define in Java (e.g., to accomodate testing)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:710
+#, no-c-format
+msgid ""
+"For example, the XML is used to enable interceptors (which are disabled by "
+"default) and define interceptor ordering. So the bean descriptor "
+"<emphasis>complements</emphasis> the metadata that is provided in the Java "
+"language syntax. (You may still want to define beans in XML for other "
+"reasons, but that is the concern of an extension)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:717
+#, no-c-format
+msgid ""
+"Let's first ask why the beans.xml is required, then look at what services it "
+"is used used to enable."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:722
+#, no-c-format
+msgid "Why is beans.xml required?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:724
+#, no-c-format
+msgid ""
+"You may be wondering, if beans are not described using XML, why do we need "
+"beans.xml at all, particularly if you don't have anything that you would "
+"need the bean descriptor to enable (alternatives, interceptors or "
+"decorators)?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:730
+#, no-c-format
+msgid "There are two things about CDI that we need to keep in mind:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:736
+#, no-c-format
+msgid ""
+"CDI does not require any special declaration for a Java class to be injected "
+"- that's right, no annotation or XML declaration at all!"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:742
+#, no-c-format
+msgid ""
+"CDI does not define any special kind of module - CDI beans can be deployed "
+"in a library JAR, EJB JAR, WAR, RAR, or JVM classpath directory."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:749
+#, no-c-format
+msgid ""
+"The CDI specification calls the process of identifying beans in modules "
+"<emphasis>bean discovery</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:753
+#, no-c-format
+msgid ""
+"So there are potentially a lot of classes in the classpath which might be "
+"beans! We don't want to force the container to scan every one of those "
+"classes at startup and build its internal metamodel for each of them. This "
+"really could make bean discovery very slow."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:759
+#, no-c-format
+msgid ""
+"But there's another reason we need to give the user some control over which "
+"classes are available for injection. We don't want every class in the "
+"classpath to potentially match an injection point, including classes that "
+"were never intended to be injected into things. This would force the "
+"developer to have to use qualifiers much more often to disambiguate "
+"injection points."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:766
+#, no-c-format
+msgid "So we have two choices. We could have the developer:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:772
+#, no-c-format
+msgid "explicitly exclude modules which do not contain beans, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:775
+#, no-c-format
+msgid "explicitly declare modules which do contain beans."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:779
+#, no-c-format
+msgid ""
+"It should be clear that the second option is a much better way to go. Thus, "
+"CDI has the notion of a bean archive. A bean archive is just a module that "
+"has a file named beans.xml in the META-INF directory. The container looks "
+"for beans in bean archives. It ignores other modules."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:785
+#, no-c-format
+msgid ""
+"Now, you might be wondering if we've got the granularity wrong here. Why "
+"should module be the right criteria to use for including/excluding a class. "
+"Why not consider:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:792
+#, no-c-format
+msgid "a class-level annotation,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:795
+#, no-c-format
+msgid "the package,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:798
+#, no-c-format
+msgid "some type it implements or extends, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:801
+#, no-c-format
+msgid "some naming convention."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:805
+#, no-c-format
+msgid ""
+"We've got the first option covered. Annotate a bean <literal>@Alternative</"
+"literal>, or with an alternative stereotype, and it will be considered "
+"disabled by CDI, as long as you don't explicitly enable it in beans.xml. "
+"That's not quite the same thing as excluding the class from scanning "
+"altogether, but it's close. (One difference is that a portable extension "
+"with still get a <literal>ProcessAnnotatedType</literal> event for that "
+"class)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:813
+#, no-c-format
+msgid ""
+"A future version of CDI might allow you to declare excluded packages in "
+"beans.xml. Excluding a bean by type or naming convention isn't really that "
+"appealing. In the world of CDI, we use stereotypes for identifying "
+"architectural roles. We don't use marker interfaces or naming conventions. "
+"Names really shouldn't affect functionality as it is too fragile."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:820
+#, no-c-format
+msgid "Enough theory, what elements are available in beans.xml?"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:826
+#, no-c-format
+msgid "Bean descriptor schema"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:828
+#, no-c-format
+msgid ""
+"If you don't need to activate any interceptors, decorators or alternatives "
+"(you just have plain beans that you need to use in an archive), the beans."
+"xml file can be <emphasis>empty</emphasis>. If you do have one of these "
+"requirements, then you need to start popularing the descriptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:834
+#, no-c-format
+msgid ""
+"The root element of a beans.xml file is <literal>beans</literal>, with the "
+"following <ulink url=\"http://anonsvn.jboss.org/repos/weld/api/trunk/cdi/src/"
+"main/resources/beans.xsd\">schema</ulink>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:839
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<beans 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"
+"</beans>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:841
+#, no-c-format
+msgid ""
+"The <literal>beans</literal> element can have one or more of each of the "
+"following children:"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:847
+#, no-c-format
+msgid "interceptors"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:850
+#, no-c-format
+msgid "decorators"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:853
+#, no-c-format
+msgid "alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:857
+#, no-c-format
+msgid "Let's look at each element in detail."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:862
+#, no-c-format
+msgid "<interceptors>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:864
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled interceptors bound via interceptor "
+"bindings. An interceptor must be explicitly enabled by listing the fully "
+"qualified class name in a child <class> element of <"
+"interceptors>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:870
+#, no-c-format
+msgid ""
+"There may be zero or more interceptor class elements. The order of the class "
+"declarations determines the interceptor ordering. Interceptors which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an interceptor "
+"class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:877
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.intercept.SecurityInterceptor</class>\n"
+" <class>com.acme.intercept.TransactionInterceptor</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:883
+#, no-c-format
+msgid "<decorators>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:885
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled decorators. A decorator must be "
+"explicitly enabled by listing the fully qualified class name in a child <"
+"class> element of <decorators>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:891
+#, no-c-format
+msgid ""
+"There may be zero or more decorator class elements. The order of the class "
+"declarations determines the decorator ordering. Decorators which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an decorator class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.decorate.BigAccountDecorator</class>\n"
+" <class>com.acme.decorate.SpecialGiftDecorator</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:903
+#, no-c-format
+msgid "<alternatives>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:905
+#, no-c-format
+msgid ""
+"An alternative is a bean that must be explicitly declared in the beans.xml "
+"file if it should be available for lookup, injection or EL resolution. By "
+"default, a bean archive has no active alternatives. An alternative must be "
+"explicitly declared using the fully qualified bean class name or stereotype "
+"class name in either a child <class> or <stereotype> element of "
+"<alternatives>, respectively."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:913
+#, no-c-format
+msgid ""
+"An alternative is selected for the bean archive if either: the alternative "
+"is a managed bean or session bean and the bean class of the bean is listed, "
+"or the alternative is a producer method, field or resource, and the bean "
+"class that declares the method or field is listed, or any "
+"<literal>@Alternative</literal> stereotype of the alternative is listed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:920
+#, no-c-format
+msgid ""
+"There may be zero or more alternative bean class elements. The same class "
+"may not be listed twice. And of course, the class must exist and it must be "
+"an alternative bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:925
+#, no-c-format
+msgid ""
+"There may also be zero or more <literal>@Alternative</literal> stereotype "
+"elements. The same stereotype may not be listed twice. And of course, the "
+"stereotype class must exist and it must be an stereotype annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:931
+#, no-c-format
+msgid ""
+"<![CDATA[<stereotypes>\n"
+" <class>com.acme.business.MockPaymentProcessor</class>\n"
+" <stereotype>com.acme.stereotype.Mock</stereotype>\n"
+"</stereotypes>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:935
+#, no-c-format
+msgid ""
+"And that's it! A very simple schema, used only to activate and order CDI "
+"services."
+msgstr ""
Modified: doc/trunk/reference/fr-FR/dependencies.po
===================================================================
--- doc/trunk/reference/fr-FR/dependencies.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/dependencies.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -24,7 +24,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/"
+"is currently maintained in the <ulink url=\"https://jira.jboss.org/jira/"
"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
"appendix."
msgstr ""
Modified: doc/trunk/reference/fr-FR/ee.po
===================================================================
--- doc/trunk/reference/fr-FR/ee.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/ee.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -66,7 +66,7 @@
#: ee.xml:32
#, no-c-format
msgid ""
-"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"the default <ulink url=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
"Validation</ulink> <literal>ValidationFactory</literal>, and"
msgstr ""
@@ -78,14 +78,49 @@
"literal>."
msgstr ""
+#. Tag: para
+#: ee.xml:45
+#, no-c-format
+msgid ""
+"The CDI specification does not require the servlet context objects, "
+"<literal>HttpServletRequest</literal>, <literal>HttpSession</literal> and "
+"<literal>ServletContext</literal> to be exposed as injectable beans. If you "
+"really want to be able to inject these objects, it's easy to create a "
+"portable extension to expose them as beans. However, we recommend that "
+"direct access to these objects be limited to servlets, servlet filters and "
+"servlet event listeners, where they may be obtained in the usual way as "
+"defined by the Java Servlets spec. The <literal>FacesContext</literal> is "
+"also not injectable. You can get at it by calling <literal>FacesContext."
+"getCurrentInstance()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ee.xml:57
+#, no-c-format
+msgid ""
+"Oh, you <emphasis>really</emphasis> want to inject the "
+"<literal>FacesContext</literal>? Alright then, try this producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: ee.xml:61
+#, no-c-format
+msgid ""
+"<![CDATA[class FacesContextProducer {\n"
+" @Produces @RequestScoped FacesContext getFacesContext() {\n"
+" return FacesContext.getCurrentInstance();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
#. Tag: title
-#: ee.xml:47
+#: ee.xml:67
#, 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
+#: ee.xml:69
#, fuzzy, no-c-format
msgid ""
"All managed beans may take advantage of Java EE component environment "
@@ -101,7 +136,7 @@
"fait attention sur le moment:"
#. Tag: programlisting
-#: ee.xml:56
+#: ee.xml:76
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @Interceptor\n"
@@ -123,7 +158,7 @@
"}]]>"
#. Tag: programlisting
-#: ee.xml:58
+#: ee.xml:78
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped\n"
@@ -144,7 +179,7 @@
"}]]>"
#. Tag: para
-#: ee.xml:60
+#: ee.xml:80
#, fuzzy, no-c-format
msgid ""
"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
@@ -158,7 +193,7 @@
"est appelée après que <emphasis>toute</emphasis> injection ait été effectuée."
#. Tag: para
-#: ee.xml:66
+#: ee.xml:86
#, no-c-format
msgid ""
"Of course, we advise that component environment injection be used to define "
@@ -166,13 +201,13 @@
msgstr ""
#. Tag: title
-#: ee.xml:74
+#: ee.xml:94
#, fuzzy, no-c-format
msgid "Calling a bean from a servlet"
msgstr "Appeler un Web Bean à partir d'un Servlet"
#. Tag: para
-#: ee.xml:76
+#: ee.xml:96
#, fuzzy, no-c-format
msgid ""
"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
@@ -183,7 +218,7 @@
"champs ou de méthode d'initialisation."
#. Tag: programlisting
-#: ee.xml:81
+#: ee.xml:101
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class Login extends HttpServlet {\n"
@@ -230,7 +265,7 @@
"}"
#. Tag: para
-#: ee.xml:83
+#: ee.xml:103
#, fuzzy, no-c-format
msgid ""
"Since instances of servlets are shared across all incoming threads, the bean "
@@ -243,13 +278,13 @@
"<literal>Login</literal> pour la requête courante et la session HTTP."
#. Tag: title
-#: ee.xml:92
+#: ee.xml:112
#, 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:94
+#: ee.xml:114
#, no-c-format
msgid ""
"CDI injection applies to all EJBs, even when they aren't managed beans. In "
@@ -258,7 +293,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:99
+#: ee.xml:119
#, fuzzy, no-c-format
msgid "You can even use CDI interceptor bindings for message-driven Beans."
msgstr ""
@@ -266,7 +301,7 @@
"Message-Driven Beans."
#. Tag: programlisting
-#: ee.xml:101
+#: ee.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @MessageDriven\n"
@@ -292,7 +327,7 @@
"}"
#. Tag: para
-#: ee.xml:103
+#: ee.xml:123
#, fuzzy, no-c-format
msgid ""
"Please note that there is no session or conversation context available when "
@@ -307,19 +342,19 @@
"<literal>@ApplicationScoped</literal> sont disponibles."
#. Tag: para
-#: ee.xml:109
+#: ee.xml:129
#, no-c-format
msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
msgstr ""
#. Tag: title
-#: ee.xml:116
+#: ee.xml:136
#, no-c-format
msgid "JMS endpoints"
msgstr "Terminaisons JMS"
#. Tag: para
-#: ee.xml:118
+#: ee.xml:138
#, no-c-format
msgid ""
"Sending messages using JMS can be quite complex, because of the number of "
@@ -343,7 +378,7 @@
"de vie et son modèle de threads dont nous devons nous soucier."
#. Tag: para
-#: ee.xml:127
+#: ee.xml:147
#, no-c-format
msgid ""
"You can use producer fields and methods to prepare all of these resources "
@@ -351,7 +386,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:131
+#: ee.xml:151
#, no-c-format
msgid ""
"<![CDATA[public class OrderResources {\n"
@@ -400,7 +435,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:133
+#: ee.xml:153
#, no-c-format
msgid ""
"In this example, we can just inject the prepared <literal>MessageProducer</"
@@ -408,7 +443,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:138
+#: ee.xml:158
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject Order order;\n"
@@ -432,7 +467,7 @@
"}"
#. Tag: para
-#: ee.xml:144
+#: ee.xml:164
#, fuzzy, no-c-format
msgid ""
"The lifecycle of the injected JMS objects is completely controlled by the "
@@ -442,13 +477,13 @@
"gestionnaire de Web Beans."
#. Tag: title
-#: ee.xml:151
+#: ee.xml:171
#, no-c-format
msgid "Packaging and deployment"
msgstr "Paquetage et déploiement"
#. Tag: para
-#: ee.xml:153
+#: ee.xml:173
#, fuzzy, no-c-format
msgid ""
"CDI doesn't define any special deployment archive. You can package beans in "
@@ -471,7 +506,7 @@
"xml</literal> ne seront pas disponibles pour utilisation dans l'application."
#. Tag: para
-#: ee.xml:162
+#: ee.xml:182
#, fuzzy, no-c-format
msgid ""
"In an embeddable EJB container, beans may be deployed in any location in "
Modified: doc/trunk/reference/fr-FR/environments.po
===================================================================
--- doc/trunk/reference/fr-FR/environments.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/environments.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -383,133 +383,270 @@
"available:"
msgstr ""
-#. Tag: literal
-#: environments.xml:215
+#. Tag: para
+#: environments.xml:214
#, no-c-format
-msgid "POJOs (no EJBs)"
+msgid ""
+"Managed beans with <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:220
#, no-c-format
-msgid "Typesafe Dependency Injection"
+msgid "Dependency injection with qualifiers and alternatives"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:225
#, no-c-format
-msgid "Application and Dependent Contexts"
+msgid ""
+"<literal>@Application</literal>, <literal>@Dependent</literal> and "
+"<literal>@Singleton</literal> scopes"
msgstr ""
-#. Tag: literal
-#: environments.xml:230
+#. Tag: para
+#: environments.xml:231
#, no-c-format
-msgid "Qualifiers"
+msgid "Interceptors and decorators"
msgstr ""
-#. Tag: literal
-#: environments.xml:235
+#. Tag: para
+#: environments.xml:236
#, no-c-format
msgid "Stereotypes"
msgstr ""
-#. Tag: literal
-#: environments.xml:240
+#. Tag: para
+#: environments.xml:241
#, no-c-format
-msgid "Typesafe Event Model"
+msgid "Events"
msgstr ""
-#. Tag: title
+#. Tag: para
#: environments.xml:246
#, no-c-format
+msgid "Portable extension support"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:252
+#, no-c-format
+msgid "EJB beans are not supported."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:257
+#, no-c-format
msgid "CDI SE Module"
msgstr ""
#. Tag: para
-#: environments.xml:248
+#: environments.xml:259
#, 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:"
+"automatically registering all simple beans found on the classpath. The "
+"command line parameters can be injected using either of the following:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:255
+#: environments.xml:264
#, no-c-format
+msgid "<![CDATA[@Inject @Parameters List<String> params;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:266
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters String[] paramsArray;]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:268
+#, no-c-format
+msgid "The second form is useful for compatibility with existing classes."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:273
+#, no-c-format
msgid ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with "
-"existing classes]]>"
+"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 ""
#. Tag: para
-#: environments.xml:257
+#: environments.xml:282
#, no-c-format
msgid "Here's an example of a simple CDI SE application:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:261
+#: environments.xml:286
#, no-c-format
msgid ""
-"<![CDATA[@ApplicationScoped\n"
+"<![CDATA[@Singleton\n"
"public class HelloWorld\n"
"{\n"
-" @Inject @Parameters List<String> parameters;\n"
-"\n"
-" public void printHello(@Observes ContainerInitialized event) {\n"
+" public void printHello(@Observes ContainerInitialized event, @Parameters "
+"List<String> parameters) {\n"
" System.out.println(\"Hello \" + parameters.get(0));\n"
" }\n"
"}]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:292
+#, no-c-format
+msgid "Bootstrapping CDI SE"
+msgstr ""
+
#. Tag: para
-#: environments.xml:263
+#: environments.xml:294
#, no-c-format
+msgid "CDI SE applications can be bootstrapped in the following ways."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:300
+#, no-c-format
+msgid "The ContainerInitialized Event"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:302
+#, no-c-format
msgid ""
-"CDI SE applications can be bootstrapped by running the StartMain class like "
-"so:"
+"Thanks to the power of CDI's typesafe event model, application developers "
+"need not write any bootstrapping code. The Weld SE module comes with a built-"
+"in main method which will bootstrap CDI for you and then fire a "
+"<literal>ContainerInitialized</literal> event. The entry point for your "
+"application code would therefore be a simple bean which observes the "
+"<literal>ContainerInitialized</literal> event, as in the previous example."
msgstr ""
+#. Tag: para
+#: environments.xml:310
+#, no-c-format
+msgid ""
+"In this case your application can be started by calling the provided main "
+"method like so:"
+msgstr ""
+
#. Tag: programlisting
-#: environments.xml:267
+#: environments.xml:313
#, no-c-format
msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:319
+#, no-c-format
+msgid "Programatic Bootstrap API"
+msgstr ""
+
#. Tag: para
-#: environments.xml:269
+#: environments.xml:321
#, 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:"
+"For added flexibility, CDI SE also comes with a bootstrap API which can be "
+"called from within your application in order to initialize CDI and obtain "
+"references to your application's beans and events. The API consists of two "
+"classes: <literal>Weld</literal> and <literal>WeldContainer</literal>."
msgstr ""
#. Tag: programlisting
-#: environments.xml:276
+#: environments.xml:327
#, no-c-format
msgid ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+"<![CDATA[public class Weld\n"
+"{\n"
+"\n"
+" /** Boots Weld and creates and returns a WeldContainer instance, through "
+"which\n"
+" * beans and events can be accesed. */\n"
+" public WeldContainer initialize() {...}\n"
+"\n"
+" /** Convenience method for shutting down the container. */\n"
+" public void shutdown() {...}\n"
+"\n"
"}]]>"
msgstr ""
+#. Tag: programlisting
+#: environments.xml:329
+#, no-c-format
+msgid ""
+"<![CDATA[public class WeldContainer\n"
+"{\n"
+"\n"
+" /** Provides access to all beans within the application. */\n"
+" public Instance<Object> instance() {...}\n"
+"\n"
+" /** Provides access to all events within the application. */\n"
+" public Event<Object> event() {...}\n"
+"\n"
+" /** Provides direct access to the BeanManager. */\n"
+" public BeanManager getBeanManager() {...}\n"
+"\n"
+"}]]>"
+msgstr ""
+
#. Tag: para
-#: environments.xml:279
+#: environments.xml:331
#, 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>."
+"Here's an example application main method which uses this API to initialize "
+"a bean of type <literal>MyApplicationBean</literal>."
msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.instance().select(MyApplicationBean.class).get();\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:336
+#, no-c-format
+msgid ""
+"Alternatively the application could be started by firing a custom event "
+"which would then be observed by another simple bean. The following example "
+"fires <literal>MyEvent</literal> on startup."
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.event().select(MyEvent.class).fire( new MyEvent() );\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: environments.xml:348
+#, no-c-format
+msgid "Setting the Classpath"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:350
+#, no-c-format
+msgid ""
+"Weld SE comes packaged as a 'shaded' jar which includes the CDI API, Weld "
+"Core and all dependant classes bundled into a single jar. Therefore the only "
+"Weld jar you need on the classpath, in addition to your application's "
+"classes and dependant jars, is the Weld SE jar."
+msgstr ""
Modified: doc/trunk/reference/fr-FR/example.po
===================================================================
--- doc/trunk/reference/fr-FR/example.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/example.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -25,7 +25,9 @@
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:"
+"request-scoped bean to hold the username and password entered during login, "
+"with constraints defined using annotations from the Bean Validation "
+"specification:"
msgstr ""
"Illustrons ces idées avec un exemple complet. Nous allons implémenter la "
"connexion/déconnexion d'un utilisateur à une application utilisant JSF. "
@@ -33,7 +35,7 @@
"et le mot de passe saisis lors de l'identification:"
#. Tag: programlisting
-#: example.xml:11
+#: example.xml:12
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Named @RequestScoped\n"
@@ -41,9 +43,11 @@
" private String username;\n"
" private String password;\n"
" \n"
+" @NotNull @Length(min=3, max=25)\n"
" public String getUsername() { return username; }\n"
" public void setUsername(String username) { this.username = username; }\n"
" \n"
+" @NotNull @Length(min=6, max=20)\n"
" public String getPassword() { return password; }\n"
" public void setPassword(String password) { this.password = password; }\n"
"}]]>"
@@ -63,22 +67,24 @@
"}]]>"
#. Tag: para
-#: example.xml:13
+#: example.xml:14
#, 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
+#: example.xml:16
#, 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"
+" <f:validateBean>\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"
+" </f:validateBean>\n"
" </h:panelGrid>\n"
" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
"login.loggedIn}\"/>\n"
@@ -100,9 +106,52 @@
"</h:form>]]>"
#. Tag: para
-#: example.xml:17
+#: example.xml:18
+#, no-c-format
+msgid "Users are represented by a JPA entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:22
#, fuzzy, no-c-format
msgid ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+" private @NotNull @Length(min=3, max=25) @Id String username;\n"
+" private @NotNull @Length(min=6, max=20) String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" public String setPassword(String password) { this.password = password; }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class Credentials {\n"
+" \n"
+" private String username;\n"
+" private String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" \n"
+" public String getPassword() { return password; }\n"
+" public void setPassword(String password) { this.password = password; }\n"
+" \n"
+"}]]>"
+
+#. Tag: para
+#: example.xml:24
+#, no-c-format
+msgid ""
+"(Note that we're also going to need a <literal>persistence.xml</literal> "
+"file to configure the JPA persistence unit containing <literal>User</"
+"literal>.)"
+msgstr ""
+
+#. Tag: para
+#: example.xml:29
+#, 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:"
@@ -112,7 +161,7 @@
"expose l'entité <literal>User</literal> aux autres Web Beans:"
#. Tag: programlisting
-#: example.xml:22
+#: example.xml:34
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped @Named\n"
@@ -191,7 +240,7 @@
"}]]>"
#. Tag: para
-#: example.xml:24
+#: example.xml:36
#, no-c-format
msgid ""
"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
@@ -199,7 +248,7 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:26
+#: example.xml:38
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -213,7 +262,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: programlisting
-#: example.xml:28
+#: example.xml:40
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -227,7 +276,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: para
-#: example.xml:30
+#: example.xml:42
#, no-c-format
msgid ""
"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
@@ -235,16 +284,17 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:34
+#: example.xml:46
#, no-c-format
msgid ""
-"<![CDATA[public class UserDatabaseProducer {\n"
-" @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"<![CDATA[class UserDatabaseProducer {\n"
+" @Produces @UserDatabase @PersistenceContext \n"
+" static EntityManager userDatabase;\n"
"}]]>"
msgstr ""
#. Tag: para
-#: example.xml:36
+#: example.xml:48
#, fuzzy, no-c-format
msgid ""
"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
@@ -254,7 +304,7 @@
"l'utilisateur courant:"
#. Tag: programlisting
-#: example.xml:38
+#: example.xml:50
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class DocumentEditor {\n"
@@ -282,13 +332,13 @@
"}]]>"
#. Tag: para
-#: example.xml:40
+#: example.xml:52
#, no-c-format
msgid "Or we can reference the current user in a JSF view:"
msgstr ""
#. Tag: programlisting
-#: example.xml:42
+#: example.xml:54
#, no-c-format
msgid ""
"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
@@ -297,7 +347,7 @@
msgstr ""
#. Tag: para
-#: example.xml:44
+#: example.xml:56
#, fuzzy, no-c-format
msgid ""
"Hopefully, this example gave you a taste of the CDI programming model. In "
Modified: doc/trunk/reference/fr-FR/extend.po
===================================================================
--- doc/trunk/reference/fr-FR/extend.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/extend.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -98,27 +98,204 @@
"some other source"
msgstr ""
+#. Tag: title
+#: extend.xml:58
+#, fuzzy, no-c-format
+msgid "Creating an <literal>Extension</literal>"
+msgstr "La classe <literal>Bean</literal>"
+
#. Tag: para
-#: extend.xml:57
-#, fuzzy, no-c-format
+#: extend.xml:60
+#, no-c-format
msgid ""
-"The nerve center for extending CDI is the <literal>BeanManager</literal> "
-"object."
+"The first step in creating a portable extension is to write a class that "
+"implements <literal>Extension</literal>. This marker interface does not "
+"define any methods, but it's needed to satisfy the requirements of Java SE's "
+"service provider architecture."
msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:66
+#, no-c-format
+msgid "class MyExtension implements Extension { ... }"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:68
+#, no-c-format
+msgid ""
+"Next, we need to register our extension as a service provider by creating a "
+"file named <literal>META-INF/services/javax.enterprise.inject.spi.Extension</"
+"literal>, which contains the name of our extension class:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:74
+#, no-c-format
+msgid "org.mydomain.extension.MyExtension"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:76
+#, no-c-format
+msgid ""
+"An extension is not a bean, exactly, since it is instantiated by the "
+"container during the initialization process, before any beans or contexts "
+"exist. However, it can be injected into other beans once the initialization "
+"process is complete."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:82
+#, no-c-format
+msgid ""
+"@Inject \n"
+"MyBean(MyExtension myExtension) {\n"
+" myExtension.doSomething();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:84
+#, no-c-format
+msgid ""
+"And, like beans, extensions can have observer methods. Usually, the observer "
+"methods observe <emphasis>container lifecycle events</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:92
+#, no-c-format
+msgid "Container lifecycle events"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:94
+#, no-c-format
+msgid ""
+"During the initialization process, the container fires a series of events, "
+"including:"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:101
+#, no-c-format
+msgid "BeforeBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:106
+#, no-c-format
+msgid "ProcessAnnotatedType"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:110
+#, no-c-format
+msgid ""
+"<literal>ProcessInjectionTarget</literal> and <literal>ProcessProducer</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:115
+#, no-c-format
+msgid ""
+"<literal>ProcessBean</literal> and <literal>ProcessObserverMethod</literal>"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:121
+#, no-c-format
+msgid "AfterBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:126
+#, no-c-format
+msgid "AfterDeploymentValidation"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:131
+#, no-c-format
+msgid "Extensions may observe these events:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {\n"
+" Logger.global.debug(\"beginning the scanning process\");\n"
+" }\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" Logger.global.debug(\"scanning type: \" + pat.getAnnotatedType()."
+"getJavaClass().getName());\n"
+" } \n"
+"\n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {\n"
+" Logger.global.debug(\"finished the scanning process\");\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:137
+#, no-c-format
+msgid ""
+"In fact, the extension can do a lot more than just observe. The extension is "
+"permitted to modify the container's metamodel and more. Here's a very simple "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" //tell the container to ignore the type if it is annotated @Ignore\n"
+" if ( pat.getAnnotatedType().isAnnotionPresent(Ignore.class) ) pat.veto"
+"(); \n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:144
+#, fuzzy, no-c-format
+msgid "The observer method may inject a <literal>BeanManager</literal>"
+msgstr ""
"Le centre nerveux pour l'extension des Web Beans est l'objet "
"<literal>Manager</literal>."
+#. Tag: programlisting
+#: extend.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> "
+"pat, BeanManager beanManager) { ... }]]>"
+msgstr ""
+
#. Tag: title
-#: extend.xml:62
+#: extend.xml:153
#, fuzzy, no-c-format
msgid "The <literal>BeanManager</literal> object"
msgstr "L'object <literal>Manager</literal>"
#. Tag: para
-#: extend.xml:64
+#: extend.xml:155
#, fuzzy, no-c-format
msgid ""
-"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object. 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 "
@@ -126,27 +303,26 @@
"contextes de manière programmatique."
#. Tag: programlisting
-#: extend.xml:69
+#: extend.xml:161
#, no-c-format
msgid ""
-"<![CDATA[public interface Manager {\n"
+"<![CDATA[public interface BeanManager {\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(Type beanType, Annotation... qualifiers);\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"
-" public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
-"Annotation... bindings);\n"
+" public void fireEvent(Object event, Annotation... qualifiers);\n"
+" public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, "
+"Annotation... qualifiers);\n"
" public List<Decorator<?>> resolveDecorators(Set<Type> types, "
-"Annotation... bindings);\n"
+"Annotation... qualifiers);\n"
" public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
"Annotation... interceptorBindings);\n"
" public boolean isScope(Class<? extends Annotation> annotationType);\n"
@@ -155,11 +331,11 @@
" public boolean isPassivatingScope(Class<? extends Annotation> "
"annotationType);\n"
" public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
-" public boolean isInterceptorBindingType(Class<? extends Annotation> "
+" public boolean isInterceptorBinding(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> getInterceptorBindingDefinition(Class<? extends "
+"Annotation> bindingType);\n"
" public Set<Annotation> getStereotypeDefinition(Class<? extends "
"Annotation> stereotype);\n"
" public Context getContext(Class<? extends Annotation> scopeType);\n"
@@ -173,22 +349,23 @@
msgstr ""
#. Tag: para
-#: extend.xml:71
+#: extend.xml:163
#, fuzzy, no-c-format
msgid ""
-"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+"Any bean or other Java EE component which supports injection 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:73
+#: extend.xml:166
#, fuzzy, no-c-format
-msgid "@Inject BeanManager beanManager"
+msgid "@Inject BeanManager beanManager;"
msgstr "@Current Manager manager"
#. Tag: para
-#: extend.xml:75
+#: extend.xml:168
#, no-c-format
msgid ""
"Java EE components may obtain an instance of <literal>BeanManager</literal> "
@@ -198,7 +375,7 @@
msgstr ""
#. Tag: para
-#: extend.xml:81
+#: extend.xml:174
#, fuzzy, no-c-format
msgid ""
"Let's study some of the interfaces exposed by the <literal>BeanManager</"
@@ -208,26 +385,100 @@
"<literal>Manager</literal>."
#. Tag: title
-#: extend.xml:86
+#: extend.xml:179
#, fuzzy, no-c-format
+msgid "The <literal>InjectionTarget</literal> interface"
+msgstr "L'interface <literal>Context</literal>"
+
+#. Tag: para
+#: extend.xml:181
+#, no-c-format
+msgid ""
+"The first thing that a framework developer is going to look for in the "
+"portable extension SPI is a way to inject CDI beans into objects which are "
+"not under the control of CDI. The <literal>InjectionTarget</literal> "
+"interface makes this very easy."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:188
+#, no-c-format
+msgid ""
+"We recommend that frameworks let CDI take over the job of actually "
+"instantiating the framework-controlled objects. That way, the framework-"
+"controlled objects can take advantage of constructor injection. However, if "
+"the framework requires use of a constructor with a special signature, the "
+"framework will need to instatiate the object itself, and so only method and "
+"field injection will be supported."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[//get the BeanManager from JNDI\n"
+"BeanManager beanManager = (BeanManager) new InitialContext().lookup(\"java:"
+"comp/BeanManager\");\n"
+"\n"
+"//CDI uses an AnnotatedType object to read the annotations of a class\n"
+"AnnotatedType<SomeFrameworkComponent> type = beanManager.createAnnotatedType"
+"(SomeFrameworkComponent.class);\n"
+"\n"
+"//The extension uses an InjectionTarget to delegate instantiation, "
+"dependency injection \n"
+"//and lifecycle callbacks to the CDI container\n"
+"InjectionTarget<SomeFrameworkComponent> it = beanManager."
+"createInjectionTarget(type);\n"
+"\n"
+"//each instance needs its own CDI CreationalContext\n"
+"CreationalContext ctx = beanManager.createCreationalContext(null);\n"
+"\n"
+"//instantiate the framework component and inject its dependencies\n"
+"SomeFrameworkComponent instance = it.produce(ctx); //call the constructor\n"
+"it.inject(instance, ctx); //call initializer methods and perform field "
+"injection\n"
+"it.postConstruct(instance); //call the @PostConstruct method\n"
+"\n"
+"...\n"
+"\n"
+"//destroy the framework component instance and clean up dependent objects\n"
+"it.preDestroy(instance); //call the @PreDestroy method\n"
+"it.dispose(instance); //it is now safe to discard the instance\n"
+"ctx.release(); //clean up dependent objects\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:201
+#, fuzzy, no-c-format
msgid "The <literal>Bean</literal> interface"
msgstr "L'interface <literal>Context</literal>"
#. Tag: para
-#: extend.xml:88
+#: extend.xml:203
#, 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."
+"<literal>BeanManager</literal> object for every bean in the application. "
+"There are even <literal>Bean</literal> objects representing interceptors, "
+"decorators and producer methods."
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: para
+#: extend.xml:210
+#, no-c-format
+msgid ""
+"The <literal>Bean</literal> interface exposes all the interesting things we "
+"dicussed in <xref linkend=\"bean-anatomy\"/>."
+msgstr ""
+
#. Tag: programlisting
-#: extend.xml:94
+#: extend.xml:215
#, no-c-format
msgid ""
"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
@@ -244,16 +495,28 @@
msgstr ""
#. Tag: para
-#: extend.xml:96
+#: extend.xml:217
+#, no-c-format
+msgid "There's an easy way to find out what beans exist in the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[Set<Bean<?>> allBeans = beanManager.getBeans(Obect.class, new "
+"AnnotationLiteral<Any>() {});]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:223
#, 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."
+"The <literal>Bean</literal> interface makes it possible for a portable "
+"extension 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> "
@@ -263,26 +526,480 @@
"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: title
+#: extend.xml:233
+#, fuzzy, no-c-format
+msgid "Registering a <literal>Bean</literal>"
+msgstr "La classe <literal>Bean</literal>"
+
#. Tag: para
-#: extend.xml:104
-#, fuzzy, no-c-format
+#: extend.xml:235
+#, no-c-format
msgid ""
-"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
-"specification: <literal>Interceptor</literal> and <literal>Decorator</"
-"literal>."
+"The most common kind of CDI portable extension registers a bean (or beans) "
+"with the container."
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: para
+#: extend.xml:239
+#, no-c-format
+msgid ""
+"In this example, we make a framework class, <literal>SecurityManager</"
+"literal> available for injection. To make things a bit more interesting, "
+"we're going to delegate back to the container's <literal>InjectionTarget</"
+"literal> to perform instantiation and injection upon the "
+"<literal>SecurityManager</literal> instance."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:246
+#, no-c-format
+msgid ""
+"<![CDATA[public class SecurityManagerExtension implements Extension {\n"
+" \n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager "
+"bm) {\n"
+" \n"
+" //use this to read annotations of the class\n"
+" AnnotatedType<SecurityManager> at = bm.createAnnotatedType"
+"(SecurityManager.class); \n"
+"\n"
+" //use this to instantiate the class and inject dependencies\n"
+" final InjectionTarget<SecurityManager> it = bm.createInjectionTarget"
+"(at); \n"
+"\n"
+" abd.addBean( new Bean<SecurityManager>() {\n"
+"\n"
+" @Override\n"
+" public Class<?> getBeanClass() {\n"
+" return SecurityManager.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public String getName() {\n"
+" return \"securityManager\";\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getQualifiers() {\n"
+" Set<Annotation> qualifiers = new HashSet<Annotation>();\n"
+" qualifiers.add( new AnnotationLiteral<Default>() {} );\n"
+" qualifiers.add( new AnnotationLiteral<Any>() {} );\n"
+" return qualifiers;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<? extends Annotation> getScope() {\n"
+" return SessionScoped.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Class<? extends Annotation>> getStereotypes() {\n"
+" return Collections.emptySet();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypes() {\n"
+" Set<Type> types = new HashSet<Type>();\n"
+" types.add(SecurityManager.class);\n"
+" types.add(Object.class);\n"
+" return types;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAlternative() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isNullable() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public SecurityManager create(CreationalContext<SecurityManager> "
+"ctx) {\n"
+" SecurityManager instance = it.produce(ctx);\n"
+" it.inject(instance, ctx);\n"
+" it.postConstruct(instance);\n"
+" return instance;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void destroy(SecurityManager instance, \n"
+" CreationalContext<SecurityManager> ctx) {\n"
+" it.preDestroy(instance);\n"
+" it.dispose(instance);\n"
+" ctx.release();\n"
+" }\n"
+" \n"
+" } );\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:248
+#, no-c-format
+msgid ""
+"But a portable extension can also mess with beans that are discovered "
+"automatically by the container."
+msgstr ""
+
#. Tag: title
-#: extend.xml:112
+#: extend.xml:255
#, no-c-format
+msgid "Wrapping an <literal>AnnotatedType</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:257
+#, no-c-format
+msgid ""
+"One of the most interesting things that an extension class can do is process "
+"the annotations of a bean class <emphasis>before</emphasis> the container "
+"builds its metamodel."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:262
+#, no-c-format
+msgid ""
+"Let's start with an example of an extension that provides support for the "
+"use of <literal>@Named</literal> at the package level. The package-level "
+"name is used to qualify the EL names of all beans defined in that package. "
+"The portable extension uses the <literal>ProcessAnnotatedType</literal> "
+"event to wrap the <literal>AnnotatedType</literal> object and override the "
+"<literal>value()</literal> of the <literal>@Named</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[public class QualifiedNameExtension implements Extension {\n"
+"\n"
+" <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) {\n"
+"\n"
+" //wrap this to override the annotations of the class\n"
+" final AnnotatedType<X> at = pat.getAnnotatedType();\n"
+" \n"
+" AnnotatedType<X> wrapped = new AnnotatedType<X>() {\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedConstructor<X>> getConstructors() {\n"
+" return at.getConstructors();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedField<? super X>> getFields() {\n"
+" return at.getFields();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<X> getJavaClass() {\n"
+" return at.getJavaClass();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedMethod<? super X>> getMethods() {\n"
+" return at.getMethods();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public <T extends Annotation> T getAnnotation(final Class<T> "
+"annType) {\n"
+" if ( Named.class.equals(annType) ) {\n"
+" class NamedLiteral \n"
+" extends AnnotationLiteral<Named> \n"
+" implements Named {\n"
+" @Override\n"
+" public String value() {\n"
+" Package pkg = at.getClass().getPackage();\n"
+" String unqualifiedName = at.getAnnotation(Named."
+"class).value();\n"
+" final String qualifiedName;\n"
+" if ( pkg.isAnnotationPresent(Named.class) ) {\n"
+" qualifiedName = pkg.getAnnotation(Named."
+"class).value() \n"
+" + '.' + unqualifiedName;\n"
+" }\n"
+" else {\n"
+" qualifiedName = unqualifiedName;\n"
+" }\n"
+" return qualifiedName;\n"
+" }\n"
+" }\n"
+" return (T) new NamedLiteral();\n"
+" }\n"
+" else {\n"
+" return at.getAnnotation(annType);\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getAnnotations() {\n"
+" return at.getAnnotations();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Type getBaseType() {\n"
+" return at.getBaseType();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypeClosure() {\n"
+" return at.getTypeClosure();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annType) {\n"
+" return at.isAnnotationPresent(annType);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:272
+#, no-c-format
+msgid ""
+"Here's a second example, which adds the <literal>@Alternative</literal> "
+"annotation to any class which implements a certain <literal>Service</"
+"literal> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[class ServiceAlternativeExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" \n"
+" final AnnotatedType<T> type = pat.getAnnotatedType();\n"
+" \n"
+" if ( Service.class.isAssignableFrom( type.getJavaClass() ) ) {\n"
+" \n"
+" //if the class implements Service, make it an @Alternative\n"
+" AnnotatedType<T> wrapped = new AnnotatedType<T>() {\n"
+" \n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annotationType) {\n"
+" return annotationType.equals(Alternative.class) ? \n"
+" true : type.isAnnotationPresent(annotationType);\n"
+" }\n"
+" \n"
+" //remaining methods of AnnotatedType\n"
+" ...\n"
+" }\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:283
+#, no-c-format
+msgid ""
+"The <literal>AnnotatedType</literal> is not the only thing that can be "
+"wrapped by an extension."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:288
+#, no-c-format
+msgid "Wrapping an <literal>InjectionTarget</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:290
+#, no-c-format
+msgid ""
+"The <literal>InjectionTarget</literal> interface exposes operations for "
+"producing and disposing an instance of a component, injecting its "
+"dependencies and invoking its lifecycle callbacks. A portable extension may "
+"wrap the <literal>InjectionTarget</literal> for any Java EE component that "
+"supports injection, allowing it to intercept any of these operations when "
+"they are invoked by the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:297
+#, no-c-format
+msgid ""
+"Here's a CDI portable extension that reads values from properties files and "
+"configures fields of Java EE components, including servlets, EJBs, managed "
+"beans, interceptors and more. In this example, properties for a class such "
+"as <literal>org.mydomain.blog.Blogger</literal> go in a resource named "
+"<literal>org/mydomain/blog/Blogger.properties</literal>, and the name of a "
+"property must match the name of the field to be configured. So "
+"<literal>Blogger.properties</literal> could contain:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:305
+#, no-c-format
+msgid ""
+"firstName=Gavin\n"
+"lastName=King"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:307
+#, no-c-format
+msgid ""
+"The portable extension works by wrapping the containers "
+"<literal>InjectionTarget</literal> and setting field values from the "
+"<literal>inject()</literal> method."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:310
+#, no-c-format
+msgid ""
+"<![CDATA[public class ConfigExtension implements Extension {\n"
+"\n"
+" <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> "
+"pit) {\n"
+" \n"
+" //wrap this to intercept the component lifecycle\n"
+" final InjectionTarget<X> it = pit.getInjectionTarget();\n"
+" \n"
+" final Map<Field, Object> configuredValues = new HashMap<Field, "
+"Object>();\n"
+" \n"
+" //use this to read annotations of the class and its members\n"
+" AnnotatedType<X> at = pit.getAnnotatedType();\n"
+" \n"
+" //read the properties file\n"
+" String propsFileName = at.getClass().getSimpleName() + \".properties"
+"\";\n"
+" InputStream stream = at.getJavaClass().getResourceAsStream"
+"(propsFileName);\n"
+" if (stream!=null) {\n"
+" \n"
+" try {\n"
+" Properties props = new Properties();\n"
+" props.load(stream);\n"
+" for (Map.Entry<Object, Object> property : props.entrySet()) "
+"{\n"
+" String fieldName = property.getKey().toString();\n"
+" Object value = property.getValue();\n"
+" try {\n"
+" Field field = at.getJavaClass().getField"
+"(fieldName);\n"
+" field.setAccessible(true);\n"
+" if ( field.getType().isAssignableFrom( value.getClass"
+"() ) ) {\n"
+" configuredValues.put(field, value);\n"
+" }\n"
+" else {\n"
+" //TODO: do type conversion automatically\n"
+" pit.addDefinitionError( new InjectionException(\n"
+" \"field is not of type String: \" + "
+"field ) );\n"
+" }\n"
+" }\n"
+" catch (NoSuchFieldException nsfe) {\n"
+" pit.addDefinitionError(nsfe);\n"
+" }\n"
+" finally {\n"
+" stream.close();\n"
+" }\n"
+" }\n"
+" }\n"
+" catch (IOException ioe) {\n"
+" pit.addDefinitionError(ioe);\n"
+" }\n"
+" }\n"
+" \n"
+" InjectionTarget<X> wrapped = new InjectionTarget<X>() {\n"
+"\n"
+" @Override\n"
+" public void inject(X instance, CreationalContext<X> ctx) {\n"
+" it.inject(instance, ctx);\n"
+" \n"
+" //set the values onto the new instance of the component\n"
+" for (Map.Entry<Field, Object> configuredValue: "
+"configuredValues.entrySet()) {\n"
+" try {\n"
+" configuredValue.getKey().set(instance, "
+"configuredValue.getValue());\n"
+" }\n"
+" catch (Exception e) {\n"
+" throw new InjectionException(e);\n"
+" }\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void postConstruct(X instance) {\n"
+" it.postConstruct(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void preDestroy(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void dispose(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public X produce(CreationalContext<X> ctx) {\n"
+" return it.produce(ctx);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pit.setInjectionTarget(wrapped);\n"
+" \n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:312
+#, no-c-format
+msgid ""
+"There's a lot more to the portable extension SPI than what we've discussed "
+"here. Check out the CDI spec or Javadoc for more information. For now, we'll "
+"just mention one more extension point."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:320
+#, no-c-format
msgid "The <literal>Context</literal> interface"
msgstr "L'interface <literal>Context</literal>"
#. Tag: para
-#: extend.xml:114
+#: extend.xml:322
#, fuzzy, no-c-format
msgid ""
"The <literal>Context</literal> interface supports addition of new scopes to "
@@ -293,7 +1010,7 @@
"environnements."
#. Tag: programlisting
-#: extend.xml:119
+#: extend.xml:327
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface Context {\n"
@@ -315,7 +1032,7 @@
"}"
#. Tag: para
-#: extend.xml:121
+#: extend.xml:329
#, fuzzy, no-c-format
msgid ""
"For example, we might implement <literal>Context</literal> to add a business "
@@ -326,6 +1043,16 @@
"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."
+#, fuzzy
+#~ 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>."
+
#~ msgid "Extending Web Beans"
#~ msgstr "Etendre les Web Beans"
@@ -448,9 +1175,6 @@
#~ "\n"
#~ "}]]>"
-#~ msgid "The <literal>Bean</literal> class"
-#~ msgstr "La classe <literal>Bean</literal>"
-
#~ msgid ""
#~ "public abstract class Bean<T> {\n"
#~ " \n"
Modified: doc/trunk/reference/fr-FR/extensions.po
===================================================================
--- doc/trunk/reference/fr-FR/extensions.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/extensions.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -37,61 +37,51 @@
#, 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."
+"of a logger object into any CDI bean. Simply create an injection point of "
+"type <literal>org.slf4j.Logger</literal> and an appropriate logger object "
+"will be injected into any instance of the bean."
msgstr ""
#. Tag: programlisting
-#: extensions.xml:26
+#: extensions.xml:25
#, no-c-format
msgid ""
-"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
-"import org.jboss.weld.log.Log;\n"
+"<![CDATA[import org.slf4j.Logger;\n"
+"import javax.inject.Inject;\n"
"\n"
"public class Checkout {\n"
-" private @Inject @Logger Log log;\n"
+" private @Inject Logger log;\n"
"\n"
" public void invoiceItems() {\n"
" ShoppingCart cart;\n"
" ...\n"
-" log.debug(\"Items invoiced for {0}\", cart);\n"
+" log.debug(\"Items invoiced for {}\", cart);\n"
" }\n"
"}]]>"
msgstr ""
#. Tag: para
-#: extensions.xml:28
+#: 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 "
-"<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."
+"The example shows how objects can be interpolated into a message. If you use "
+"this approach, you do not need to surround a call to the logger with a "
+"condition like <literal>if ( log.isDebugEnabled() )</literal> to avoid "
+"string concatenation."
msgstr ""
#. Tag: para
-#: extensions.xml:41
+#: extensions.xml:34
#, 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 "
+"You can add Weld logging 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:46
+#: extensions.xml:39
#, no-c-format
msgid ""
"If you are using Weld as your JSR-299 implementation, there's no need to "
Modified: doc/trunk/reference/fr-FR/gettingstarted.po
===================================================================
--- doc/trunk/reference/fr-FR/gettingstarted.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/gettingstarted.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2008-12-19 20:26+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -153,9 +153,9 @@
#: gettingstarted.xml:83
#, no-c-format
msgid ""
-"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"To deploy the examples to JBoss AS, you'll need <ulink url=\"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="
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink url="
"\"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 "
@@ -189,7 +189,7 @@
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."
+"<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:"
@@ -264,7 +264,7 @@
#, no-c-format
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 "
+"<ulink url=\"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 ""
@@ -275,7 +275,7 @@
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>."
msgstr ""
@@ -357,7 +357,7 @@
#, 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/"
+"bored, read the log messages), and visit <ulink url=\"http://localhost:8080/"
"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
"pseudo-translating."
msgstr ""
@@ -390,10 +390,10 @@
#: gettingstarted.xml:221
#, no-c-format
msgid ""
-"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"To deploy the examples to GlassFish, you'll need the final <ulink url="
"\"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/"
+"download a <ulink url=\"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, "
@@ -454,7 +454,7 @@
#: gettingstarted.xml:255
#, no-c-format
msgid ""
-"You deploy applications to GlassFish using the <ulink src=\"http://"
+"You deploy applications to GlassFish using the <ulink url=\"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 "
@@ -472,14 +472,14 @@
#, no-c-format
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 "
+"URL <ulink url=\"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://"
+"start it. You can see the examples running at either <ulink url=\"http://"
"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
-"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"ulink> or <ulink url=\"http://localhost:7070/weld-translator\">http://"
"localhost:7070/weld-translator</ulink>, depending on which example you "
"deployed."
msgstr ""
@@ -524,7 +524,7 @@
#, 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."
+"need to download Tomcat 6.0.18 or later from <ulink url=\"http://tomcat."
"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
msgstr ""
@@ -660,7 +660,7 @@
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>!"
msgstr ""
@@ -847,7 +847,7 @@
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://"
+"URL: <ulink url=\"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 ""
@@ -927,7 +927,7 @@
"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"
+"application at the following local URL: <ulink url=\"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 ""
Modified: doc/trunk/reference/fr-FR/injection.po
===================================================================
--- doc/trunk/reference/fr-FR/injection.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/injection.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -562,13 +562,54 @@
#. Tag: title
#: injection.xml:216
#, no-c-format
-msgid "Qualifiers with members"
+msgid ""
+"The built-in qualifiers <literal>@Default</literal> and <literal>@Any</"
+"literal>"
msgstr ""
#. Tag: para
#: injection.xml:218
#, no-c-format
msgid ""
+"Whenever a bean or injection point does not explicitly declare a qualifier, "
+"the container assumes the qualifier <literal>@Default</literal>. From time "
+"to time, you'll need to decare an injection point without specifying a "
+"qualifier. There's a qualifier for that too. All beans have the qualifier "
+"<literal>@Any</literal>. Therefore, by explicitly specifying <literal>@Any</"
+"literal> at an injection point, you suppress the default qualifier, without "
+"otherwise restricting the beans that are eligible for injection."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:225
+#, no-c-format
+msgid ""
+"This is especially useful if you want to iterate over all beans with a "
+"certain bean type. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:226
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject \n"
+"void initServices(@Any Instance<Service> services) { \n"
+" for (Service service: services) {\n"
+" service.init();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: injection.xml:232
+#, no-c-format
+msgid "Qualifiers with members"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:234
+#, no-c-format
+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 "
@@ -577,7 +618,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:224
+#: injection.xml:240
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -595,14 +636,14 @@
"}]]>"
#. Tag: para
-#: injection.xml:226
+#: injection.xml:242
#, no-c-format
msgid ""
"Then we select one of the possible member values when appling the qualifier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:230
+#: injection.xml:246
#, fuzzy, no-c-format
msgid ""
"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
@@ -610,17 +651,17 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:232
+#: injection.xml:248
#, 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>."
+"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:237
+#: injection.xml:253
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -628,7 +669,7 @@
"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
"public @interface PayBy {\n"
" PaymentMethod value();\n"
-" @NonBinding String comment() default \"\";\n"
+" @Nonbinding String comment() default \"\";\n"
"}]]>"
msgstr ""
"<![CDATA[@Retention(RUNTIME)\n"
@@ -639,20 +680,20 @@
"}]]>"
#. Tag: title
-#: injection.xml:242
+#: injection.xml:258
#, no-c-format
msgid "Multiple qualifiers"
msgstr ""
#. Tag: para
-#: injection.xml:244
+#: injection.xml:260
#, 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: programlisting
-#: injection.xml:248
+#: injection.xml:264
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
@@ -661,7 +702,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:250
+#: injection.xml:266
#, fuzzy, no-c-format
msgid ""
"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
@@ -671,7 +712,7 @@
"annotations de liaison serait éligible pour l'injection."
#. Tag: programlisting
-#: injection.xml:255
+#: injection.xml:271
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Synchronous @Reliable\n"
@@ -686,13 +727,13 @@
"}]]>"
#. Tag: title
-#: injection.xml:260
+#: injection.xml:276
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: injection.xml:262
+#: injection.xml:278
#, no-c-format
msgid ""
"Alternatives are beans whose implementation is specific to a particular "
@@ -702,7 +743,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:266
+#: injection.xml:282
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
@@ -716,7 +757,7 @@
"}]]>"
#. Tag: para
-#: injection.xml:268
+#: injection.xml:284
#, no-c-format
msgid ""
"By default, <literal>@Alternative</literal> beans are disabled. We need to "
@@ -726,7 +767,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:274
+#: injection.xml:290
#, no-c-format
msgid ""
"<![CDATA[<beans\n"
@@ -742,7 +783,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:276
+#: injection.xml:292
#, no-c-format
msgid ""
"When an ambiguous dependency exists at an injection point, the container "
@@ -752,13 +793,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:285
+#: injection.xml:301
#, fuzzy, no-c-format
msgid "Fixing unsatisfied and ambiguous dependencies"
msgstr "Résoudre les dépendances insatisfaites"
#. Tag: para
-#: injection.xml:287
+#: injection.xml:303
#, fuzzy, no-c-format
msgid ""
"The typesafe resolution algorithm fails when, after considering the "
@@ -774,7 +815,7 @@
"incapable d'identifier exactement un Web Bean à injecter."
#. Tag: para
-#: injection.xml:294
+#: injection.xml:310
#, no-c-format
msgid ""
"During the course of your development, you're going to encounter this "
@@ -782,13 +823,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:298
+#: injection.xml:314
#, no-c-format
msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:304
+#: injection.xml:320
#, no-c-format
msgid ""
"create a bean which implements the bean type and has all the qualifier types "
@@ -796,7 +837,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:309
+#: injection.xml:325
#, no-c-format
msgid ""
"make sure that the bean you already have is in the classpath of the module "
@@ -804,7 +845,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:314
+#: injection.xml:330
#, no-c-format
msgid ""
"explicitly enable an <literal>@Alternative</literal> bean that implements "
@@ -813,13 +854,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:321
+#: injection.xml:337
#, no-c-format
msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:327
+#: injection.xml:343
#, no-c-format
msgid ""
"introduce a qualifier to distinguish between the two implementations of the "
@@ -827,14 +868,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:332
+#: injection.xml:348
#, no-c-format
msgid ""
"disable one of the beans by annotating it <literal>@Alternative</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:337
+#: injection.xml:353
#, no-c-format
msgid ""
"move one of the implementations to a module that is not in the classpath of "
@@ -842,7 +883,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:343
+#: injection.xml:359
#, no-c-format
msgid ""
"disable one of two <literal>@Alternative</literal> beans that are trying to "
@@ -850,10 +891,10 @@
msgstr ""
#. Tag: para
-#: injection.xml:350
+#: injection.xml:366
#, no-c-format
msgid ""
-"See <ulink src=\"http://sfwk.org/Documentation/"
+"See <ulink url=\"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 "
@@ -861,13 +902,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:358
+#: injection.xml:374
#, no-c-format
msgid "Just remember: \"There can be only one.\""
msgstr ""
#. Tag: para
-#: injection.xml:361
+#: injection.xml:377
#, no-c-format
msgid ""
"On the other hand, if you really do have an optional or multivalued "
@@ -876,7 +917,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:366
+#: injection.xml:382
#, no-c-format
msgid ""
"Now there's one more issue you need to be aware of when using the dependency "
@@ -884,13 +925,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:373
+#: injection.xml:389
#, no-c-format
msgid "Client proxies"
msgstr ""
#. Tag: para
-#: injection.xml:375
+#: injection.xml:391
#, no-c-format
msgid ""
"Clients of an injected bean do not usually hold a direct reference to a bean "
@@ -899,7 +940,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:380
+#: injection.xml:396
#, no-c-format
msgid ""
"Imagine that a bean bound to the application scope held a direct reference "
@@ -909,7 +950,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:386
+#: injection.xml:402
#, no-c-format
msgid ""
"Now imagine that a bean bound to the session scope holds a direct reference "
@@ -921,7 +962,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:393
+#: injection.xml:409
#, no-c-format
msgid ""
"Therefore, unless a bean has the default scope <literal>@Dependent</"
@@ -935,7 +976,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:401
+#: injection.xml:417
#, no-c-format
msgid ""
"Unfortunately, due to limitations of the Java language, some Java types "
@@ -946,20 +987,20 @@
msgstr ""
#. Tag: para
-#: injection.xml:407
+#: injection.xml:423
#, no-c-format
msgid "The following Java types cannot be proxied by the container:"
msgstr ""
#. Tag: para
-#: injection.xml:411
+#: injection.xml:427
#, no-c-format
msgid ""
"classes which don't have a non-private constructor with no parameters, and"
msgstr ""
#. Tag: para
-#: injection.xml:414
+#: injection.xml:430
#, no-c-format
msgid ""
"classes which are declared <literal>final</literal> or have a "
@@ -967,23 +1008,52 @@
msgstr ""
#. Tag: para
-#: injection.xml:419
+#: injection.xml:435
#, no-c-format
msgid "arrays and primitive types."
msgstr ""
#. Tag: para
-#: injection.xml:423
+#: injection.xml:439
#, 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 "
+"It's usually very easy to fix an unproxyable dependency problem. If an "
+"injection point of type <literal>X</literal> results in an unproxyable "
+"dependency, simply:"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:446
+#, no-c-format
+msgid "add a constructor with no parameters to <literal>X</literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:451
+#, no-c-format
+msgid ""
+"change the type of the injection point to <literal>Instance<X></"
+"literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:456
+#, no-c-format
+msgid ""
+"introduce an interface <literal>Y</literal>, implemented by the injected "
+"bean, and change the type of the injection point to <literal>Y</literal>, or"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:462
+#, no-c-format
+msgid ""
+"if all else fails, change the scope of the injected bean to "
"<literal>@Dependent</literal>."
msgstr ""
#. Tag: para
-#: injection.xml:430
+#: injection.xml:469
#, no-c-format
msgid ""
"A future release of Weld will likely support a non-standard workaround for "
@@ -991,7 +1061,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:437
+#: injection.xml:476
#, no-c-format
msgid ""
"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
@@ -999,7 +1069,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:442
+#: injection.xml:481
#, no-c-format
msgid ""
"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
@@ -1007,19 +1077,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:448
+#: injection.xml:487
#, no-c-format
msgid "But we didn't get around to implementing this yet."
msgstr ""
#. Tag: title
-#: injection.xml:457
+#: injection.xml:496
#, no-c-format
msgid "Obtaining a contextual instance by programmatic lookup"
msgstr ""
#. Tag: para
-#: injection.xml:459
+#: injection.xml:498
#, no-c-format
msgid ""
"In certain situations, injection is not the most convenient way to obtain a "
@@ -1027,13 +1097,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:466
+#: injection.xml:505
#, no-c-format
msgid "the bean type or qualifiers vary dynamically at runtime, or"
msgstr ""
#. Tag: para
-#: injection.xml:471
+#: injection.xml:510
#, no-c-format
msgid ""
"depending upon the deployment, there may be no bean which satisfies the type "
@@ -1041,13 +1111,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:476
+#: injection.xml:515
#, no-c-format
msgid "we would like to iterate over all beans of a certain type."
msgstr ""
#. Tag: para
-#: injection.xml:482
+#: injection.xml:521
#, no-c-format
msgid ""
"In these situations, the application may obtain an instance of the interface "
@@ -1055,13 +1125,13 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:487
+#: injection.xml:526
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:489
+#: injection.xml:528
#, fuzzy, no-c-format
msgid ""
"The <literal>get()</literal> method of <literal>Instance</literal> produces "
@@ -1071,25 +1141,25 @@
"for testing"
#. Tag: programlisting
-#: injection.xml:493
+#: injection.xml:532
#, fuzzy, no-c-format
msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:495
+#: injection.xml:534
#, no-c-format
msgid "Qualifiers can be specified in one of two ways:"
msgstr ""
#. Tag: para
-#: injection.xml:501
+#: injection.xml:540
#, no-c-format
msgid "by annotating the <literal>Instance</literal> injection point, or"
msgstr ""
#. Tag: para
-#: injection.xml:504
+#: injection.xml:543
#, no-c-format
msgid ""
"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
@@ -1097,13 +1167,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:508
+#: injection.xml:547
#, no-c-format
msgid "Specifying the qualifiers at the injection point is much, much easier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:512
+#: injection.xml:551
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
@@ -1112,7 +1182,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:514
+#: injection.xml:553
#, no-c-format
msgid ""
"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
@@ -1120,7 +1190,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:519
+#: injection.xml:558
#, no-c-format
msgid ""
"Alternatively, we can specify the qualifier dynamically. First, we add the "
@@ -1129,14 +1199,14 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:524
+#: injection.xml:563
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:526
+#: injection.xml:565
#, no-c-format
msgid ""
"Next, we need to obtain an instance of our qualifier type. Since annotatons "
@@ -1147,7 +1217,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:533
+#: injection.xml:572
#, no-c-format
msgid ""
"<![CDATA[abstract class AsynchronousQualifier\n"
@@ -1155,13 +1225,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:535
+#: injection.xml:574
#, no-c-format
msgid "In some cases, we can use an anonymous class:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:539
+#: injection.xml:578
#, no-c-format
msgid ""
"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
@@ -1169,14 +1239,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:542
+#: injection.xml:581
#, no-c-format
msgid ""
"We can't use an anonymous class to implement a qualifier type with members."
msgstr ""
#. Tag: para
-#: injection.xml:547
+#: injection.xml:586
#, no-c-format
msgid ""
"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
@@ -1184,7 +1254,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:551
+#: injection.xml:590
#, no-c-format
msgid ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
@@ -1194,13 +1264,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:556
+#: injection.xml:595
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
msgstr ""
#. Tag: para
-#: injection.xml:558
+#: injection.xml:597
#, no-c-format
msgid ""
"There are certain kinds of dependent objects (beans with scope "
@@ -1210,7 +1280,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:564
+#: injection.xml:603
#, no-c-format
msgid ""
"The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1218,7 +1288,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:568
+#: injection.xml:607
#, no-c-format
msgid ""
"Injection of a HTTP parameter or header value depends upon what parameter or "
@@ -1226,7 +1296,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:572
+#: injection.xml:611
#, no-c-format
msgid ""
"Injection of the result of an EL expression evaluation depends upon the "
@@ -1234,7 +1304,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:577
+#: injection.xml:616
#, no-c-format
msgid ""
"A bean with scope <literal>@Dependent</literal> may inject an instance of "
@@ -1243,7 +1313,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:581
+#: injection.xml:620
#, no-c-format
msgid ""
"Let's look at an example. The following code is verbose, and vulnerable to "
@@ -1251,13 +1321,13 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:584
+#: injection.xml:623
#, no-c-format
msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
msgstr ""
#. Tag: para
-#: injection.xml:586
+#: injection.xml:625
#, no-c-format
msgid ""
"This clever little producer method lets you inject a JDK <literal>Logger</"
@@ -1265,7 +1335,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:589
+#: injection.xml:628
#, no-c-format
msgid ""
"<![CDATA[class LogFactory {\n"
@@ -1279,19 +1349,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:591
+#: injection.xml:630
#, no-c-format
msgid "We can now write:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:593
+#: injection.xml:632
#, no-c-format
msgid "<![CDATA[@Inject Logger log;]]>"
msgstr ""
#. Tag: para
-#: injection.xml:595
+#: injection.xml:634
#, no-c-format
msgid ""
"Not convinced? Then here's a second example. To inject HTTP parameters, we "
@@ -1299,25 +1369,31 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:598
-#, no-c-format
+#: injection.xml:637
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@BindingType\n"
"@Retention(RUNTIME)\n"
"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
"public @interface HttpParam {\n"
-" @NonBinding public String value();\n"
+" @Nonbinding public String 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:600
+#: injection.xml:639
#, no-c-format
msgid "We would use this qualifier type at injection points as follows:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:602
+#: injection.xml:641
#, no-c-format
msgid ""
"<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1325,37 +1401,37 @@
msgstr ""
#. Tag: para
-#: injection.xml:604
+#: injection.xml:643
#, no-c-format
msgid "The following producer method does the work:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:606
+#: injection.xml:645
#, 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.getAnnotated().getAnnotation(HttpParam."
+"class).value());\n"
" }\n"
"\n"
"}]]>"
msgstr ""
#. Tag: para
-#: injection.xml:608
+#: injection.xml:647
#, 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>)"
+"<literal>@Nonbinding.</literal>)"
msgstr ""
#. Tag: para
-#: injection.xml:611
+#: injection.xml:650
#, no-c-format
msgid ""
"The container provides a built-in bean that implements the "
@@ -1363,15 +1439,17 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:614
+#: injection.xml:653
#, no-c-format
msgid ""
"<![CDATA[public interface InjectionPoint { \n"
-" public Object getInstance(); \n"
-" public Bean<?> getBean(); \n"
-" public Member getMember(): \n"
-" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
-" public Set<T extends Annotation> getAnnotations(); \n"
+" public Type getType();\n"
+" public Set<Annotation> getQualifiers();\n"
+" public Bean<?> getBean();\n"
+" public Member getMember();\n"
+" public Annotated getAnnotated();\n"
+" public boolean isDelegate();\n"
+" public boolean isTransient();\n"
"}]]>"
msgstr ""
Modified: doc/trunk/reference/fr-FR/interceptors.po
===================================================================
--- doc/trunk/reference/fr-FR/interceptors.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/interceptors.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2008-12-19 20:26+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -391,7 +391,7 @@
"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:"
+"We can use the <literal>@Nonbinding</literal> annotation:"
msgstr ""
#. Tag: programlisting
@@ -402,7 +402,7 @@
"@Target({METHOD, TYPE})\n"
"@Retention(RUNTIME)\n"
"public @interface Secure {\n"
-" @NonBinding String[] rolesAllowed() default {};\n"
+" @Nonbinding String[] rolesAllowed() default {};\n"
"}]]>"
msgstr ""
Modified: doc/trunk/reference/fr-FR/next.po
===================================================================
--- doc/trunk/reference/fr-FR/next.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/next.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -25,10 +25,10 @@
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 "
+"remains the authority for information on CDI. The spec is 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-"
+"is available on the <ulink url=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
"299 page</ulink> at the JCP website."
msgstr ""
@@ -36,9 +36,9 @@
#: next.xml:14
#, fuzzy, no-c-format
msgid ""
-"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"The CDI reference implementation, Weld, is being developed at the <ulink url="
"\"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."
+"team and the CDI spec lead blog at <ulink url=\"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 "
@@ -54,9 +54,9 @@
#: next.xml:22
#, no-c-format
msgid ""
-"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"We encourage you to follow the <ulink url=\"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 url=\"http://seamframework.org/Weld/Development\">development</"
"ulink>. If you are reading this guide, you likely have something to offer."
msgstr ""
@@ -73,7 +73,7 @@
#: next.xml:35
#, no-c-format
msgid ""
-"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"Checkout source from <ulink url=\"http://anonsvn.jboss.org/repos/weld/doc/"
"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
"ulink> using SVN"
msgstr ""
@@ -90,8 +90,9 @@
#: 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)."
+"Edit the <literal>pom.xml</literal> file in the root of the checkout and "
+"remove the \"<literal>-SNAPSHOT</literal>\" from the version element (so you "
+"don't have to build other Weld modules)."
msgstr ""
#. Tag: para
@@ -119,7 +120,8 @@
#, 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"
+"You can find the HTML version in <literal>target/docbook/publish/en-US/html</"
+"literal>."
msgstr ""
#. Tag: para
Modified: doc/trunk/reference/fr-FR/part1.po
===================================================================
--- doc/trunk/reference/fr-FR/part1.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/part1.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2008-12-19 20:26+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -17,7 +17,7 @@
#: part1.xml:14
#, no-c-format
msgid ""
-"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"The <ulink url=\"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 "
@@ -302,7 +302,7 @@
#: part1.xml:197
#, no-c-format
msgid ""
-"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"Finally, CDI is a <ulink url=\"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/producermethods.po
===================================================================
--- doc/trunk/reference/fr-FR/producermethods.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/producermethods.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2008-12-19 20:26+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -189,14 +189,27 @@
"producer method won't be called again in the same session."
msgstr ""
+#. Tag: para
+#: producermethods.xml:95
+#, no-c-format
+msgid ""
+"A producer method does <emphasis>not</emphasis> inherit the scope of the "
+"bean that declares the method. There are two different beans here: the "
+"producer method, and the bean which declares it. The scope of the producer "
+"method determines how often the method will be called, and the lifecycle of "
+"the objects returned by the method. The scope of the bean that declares the "
+"producer method determines the lifecycle of the object upon which the "
+"producer method is invoked."
+msgstr ""
+
#. Tag: title
-#: producermethods.xml:97
+#: producermethods.xml:107
#, no-c-format
msgid "Injection into producer methods"
msgstr ""
#. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:109
#, no-c-format
msgid ""
"There's one potential problem with the code above. The implementations of "
@@ -207,7 +220,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:106
+#: producermethods.xml:116
#, no-c-format
msgid ""
"If this isn't what we want, we can use dependency injection into the "
@@ -215,7 +228,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:111
+#: producermethods.xml:121
#, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -232,7 +245,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:123
#, no-c-format
msgid ""
"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
@@ -246,7 +259,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:122
+#: producermethods.xml:132
#, no-c-format
msgid ""
"There's at least three ways we could go about fixing this bug. We could "
@@ -257,7 +270,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:129
+#: producermethods.xml:139
#, no-c-format
msgid ""
"But a more common solution is to use the special <literal>@New</literal> "
@@ -265,19 +278,19 @@
msgstr ""
#. Tag: title
-#: producermethods.xml:134
+#: producermethods.xml:144
#, no-c-format
msgid "Use of <literal>@New</literal> with producer methods"
msgstr ""
#. Tag: para
-#: producermethods.xml:136
+#: producermethods.xml:146
#, no-c-format
msgid "Consider the following producer method:"
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:138
+#: producermethods.xml:148
#, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -296,7 +309,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:140
+#: producermethods.xml:150
#, no-c-format
msgid ""
"Then a new <emphasis>dependent</emphasis> instance of "
@@ -308,13 +321,13 @@
msgstr ""
#. Tag: title
-#: producermethods.xml:150
+#: producermethods.xml:160
#, no-c-format
msgid "Disposer methods"
msgstr ""
#. Tag: para
-#: producermethods.xml:152
+#: producermethods.xml:162
#, no-c-format
msgid ""
"Some producer methods return objects that require explicit destruction. For "
@@ -322,7 +335,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:157
+#: producermethods.xml:167
#, no-c-format
msgid ""
"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
@@ -331,7 +344,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:159
+#: producermethods.xml:169
#, no-c-format
msgid ""
"Destruction can be performed by a matching <emphasis>disposer method</"
@@ -339,7 +352,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:162
+#: producermethods.xml:172
#, no-c-format
msgid ""
"<![CDATA[void close(@Disposes Connection connection) {\n"
@@ -348,7 +361,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:164
+#: producermethods.xml:174
#, no-c-format
msgid ""
"The disposer method must have at least one parameter, annotated "
Modified: doc/trunk/reference/fr-FR/resources.po
===================================================================
--- doc/trunk/reference/fr-FR/resources.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/resources.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -66,6 +66,45 @@
#: resources.xml:33
#, no-c-format
msgid ""
+"The CDI specification uses the term <emphasis>resource</emphasis> to refer, "
+"generically, to any of the following kinds of object which might be "
+"available in the Java EE component environment:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:38
+#, no-c-format
+msgid ""
+"JDBC <literal>Datasource</literal>s, JMS <literal>Queue</literal>s, "
+"<literal>Topic</literal>s and <literal>ConnectionFactory</literal>s, "
+"JavaMail <literal>Session</literal>s and other transactional resources "
+"including JCA connectors,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"JPA <literal>EntityManager</literal>s and <literal>EntityManagerFactory</"
+"literal>s,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:46
+#, no-c-format
+msgid "remote EJBs, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid "web services"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:53
+#, 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>, "
@@ -73,7 +112,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:37
+#: resources.xml:57
#, no-c-format
msgid ""
"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
@@ -81,7 +120,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:39
+#: resources.xml:59
#, no-c-format
msgid ""
"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
@@ -90,7 +129,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:41
+#: resources.xml:61
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
@@ -98,7 +137,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:43
+#: resources.xml:63
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
@@ -106,7 +145,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:45
+#: resources.xml:65
#, no-c-format
msgid ""
"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
@@ -114,47 +153,69 @@
msgstr ""
#. Tag: para
-#: resources.xml:47
+#: resources.xml:67
#, no-c-format
msgid "The field may be static (but not final)."
msgstr ""
#. Tag: para
-#: resources.xml:49
+#: resources.xml:69
#, no-c-format
+msgid "A resource declaration really contains two pieces of information:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:73
+#, no-c-format
msgid ""
+"the JNDI name, EJB link, persistence unit name, or other metadata needed to "
+"obtain a reference to the resource from the component environment, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:77
+#, no-c-format
+msgid ""
+"the type and qualifiers that we will use to inject the reference into our "
+"beans."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:82
+#, 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</"
+"sense to declare your resources in a class annotated <literal>@Alternative</"
"literal>."
msgstr ""
#. Tag: title
-#: resources.xml:56
+#: resources.xml:90
#, no-c-format
msgid "Typesafe resource injection"
msgstr ""
#. Tag: para
-#: resources.xml:58
+#: resources.xml:92
#, no-c-format
msgid "These resources can now be injected in the usual way."
msgstr ""
#. Tag: programlisting
-#: resources.xml:62
+#: resources.xml:96
#, no-c-format
msgid "<![CDATA[@Inject Catalog catalog;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:63
+#: resources.xml:97
#, no-c-format
msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:64
+#: resources.xml:98
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManager "
@@ -162,7 +223,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:65
+#: resources.xml:99
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
@@ -170,13 +231,13 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:66
+#: resources.xml:100
#, no-c-format
msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
msgstr ""
#. Tag: para
-#: resources.xml:68
+#: resources.xml:102
#, no-c-format
msgid ""
"The bean type and qualifiers of the resource are determined by the producer "
@@ -184,7 +245,7 @@
msgstr ""
#. Tag: para
-#: resources.xml:72
+#: resources.xml:106
#, no-c-format
msgid ""
"It might seem like a pain to have to write these extra producer field "
@@ -196,25 +257,25 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:79
+#: resources.xml:113
#, no-c-format
msgid "@Inject @CustomerDatabase EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:81
+#: resources.xml:115
#, no-c-format
msgid "instead of"
msgstr ""
#. Tag: programlisting
-#: resources.xml:83
+#: resources.xml:117
#, no-c-format
msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:85
+#: resources.xml:119
#, 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/ri-spi.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2008-12-20 22:07+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -784,6 +784,15 @@
#: ri-spi.xml:497
#, no-c-format
msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.ConversationAwareViewHandler</literal> as a "
+"delegating view handler."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:502
+#, 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."
"wrapExpressionFactory()</literal>, passing <literal>Application."
@@ -793,7 +802,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:504
+#: ri-spi.xml:509
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -803,7 +812,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:511 ri-spi.xml:557
+#: ri-spi.xml:516 ri-spi.xml:562
#, no-c-format
msgid ""
"There are a number of ways you can obtain the bean manager for the module. "
@@ -813,7 +822,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:518
+#: ri-spi.xml:523
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must register "
@@ -824,19 +833,19 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:526
+#: ri-spi.xml:531
#, no-c-format
msgid "Weld only supports JSF 1.2 and above."
msgstr ""
#. Tag: term
-#: ri-spi.xml:533
+#: ri-spi.xml:538
#, no-c-format
msgid "<term>JSP</term>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:538
+#: ri-spi.xml:543
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must register "
@@ -845,7 +854,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:543
+#: ri-spi.xml:548
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -856,7 +865,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:550
+#: ri-spi.xml:555
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -866,13 +875,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:567
+#: ri-spi.xml:572
#, no-c-format
msgid "Session Bean Interceptor"
msgstr ""
#. Tag: para
-#: ri-spi.xml:571
+#: ri-spi.xml:576
#, no-c-format
msgid ""
"If you are integrating Weld into an EJB environment you must register "
@@ -883,7 +892,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:578
+#: ri-spi.xml:583
#, no-c-format
msgid ""
"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -891,13 +900,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:586
+#: ri-spi.xml:591
#, no-c-format
msgid "The <literal>weld-core.jar</literal>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:590
+#: ri-spi.xml:595
#, no-c-format
msgid ""
"Weld can reside on an isolated classloader, or on a shared classloader. If "
@@ -909,7 +918,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:596
+#: ri-spi.xml:601
#, no-c-format
msgid ""
"You can provide your own implementation of <literal>Singleton</literal> and "
@@ -918,7 +927,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:601
+#: ri-spi.xml:606
#, no-c-format
msgid ""
"Weld also provides an implementation of Thread Context Classloader per "
@@ -926,13 +935,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:608
+#: ri-spi.xml:613
#, no-c-format
msgid "Binding the manager in JNDI"
msgstr ""
#. Tag: para
-#: ri-spi.xml:612
+#: ri-spi.xml:617
#, no-c-format
msgid ""
"You should bind the bean manager for the bean deployment archive into JNDI "
@@ -943,13 +952,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:622
+#: ri-spi.xml:627
#, no-c-format
msgid "Performing CDI injection on Java EE component classes"
msgstr ""
#. Tag: para
-#: ri-spi.xml:626
+#: ri-spi.xml:631
#, no-c-format
msgid ""
"The CDI specification requires the container to provide injection into non-"
@@ -961,7 +970,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:634
+#: ri-spi.xml:639
#, no-c-format
msgid ""
"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
@@ -972,7 +981,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:641
+#: ri-spi.xml:646
#, no-c-format
msgid ""
"To help the integrator, Weld provides <literal>WeldManager."
@@ -981,7 +990,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:646
+#: ri-spi.xml:651
#, no-c-format
msgid ""
"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
@@ -1009,7 +1018,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:647
+#: ri-spi.xml:652
#, no-c-format
msgid ""
"The container may intersperse other operations between these calls. Further, "
@@ -1018,7 +1027,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:651
+#: ri-spi.xml:656
#, no-c-format
msgid ""
"When performing injections on EJBs you must use the Weld-defined SPI, "
@@ -1028,7 +1037,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:656
+#: ri-spi.xml:661
#, no-c-format
msgid ""
"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
Modified: doc/trunk/reference/fr-FR/scopescontexts.po
===================================================================
--- doc/trunk/reference/fr-FR/scopescontexts.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/scopescontexts.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2008-12-19 20:26+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -64,18 +64,23 @@
#: 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."
+"JPA entities aren't a great fit for this model. Entities have their whole "
+"own lifecycle and identity model which just doesn't map naturally to the "
+"model used in CDI. Therefore, we recommend against treating entities as CDI "
+"beans. You're certainly going to run into problems if you try to give an "
+"entity a scope other than the default scope <literal>@Dependent</literal>. "
+"The client proxy will get in the way if you try to pass an injected instance "
+"to the JPA <literal>EntityManager</literal>."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:41
+#: scopescontexts.xml:45
#, no-c-format
msgid "Scope types"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:43
+#: scopescontexts.xml:47
#, no-c-format
msgid ""
"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
@@ -83,7 +88,7 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:48
+#: scopescontexts.xml:52
#, no-c-format
msgid ""
"<![CDATA[@ScopeType\n"
@@ -93,7 +98,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:50
+#: scopescontexts.xml:54
#, no-c-format
msgid ""
"Of course, that's the easy part of the job. For this scope type to be "
@@ -105,7 +110,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:57
+#: scopescontexts.xml:61
#, no-c-format
msgid ""
"We can apply a scope type annotation to a bean implementation class to "
@@ -113,7 +118,7 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:61
+#: scopescontexts.xml:65
#, no-c-format
msgid ""
"<![CDATA[@ClusterScoped\n"
@@ -121,55 +126,55 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:63
+#: scopescontexts.xml:67
#, no-c-format
msgid "Usually, you'll use one of CDI's built-in scopes."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:68
+#: scopescontexts.xml:72
#, no-c-format
msgid "Built-in scopes"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:70
+#: scopescontexts.xml:74
#, no-c-format
msgid "CDI defines four built-in scopes:"
msgstr ""
#. Tag: literal
-#: scopescontexts.xml:74
+#: scopescontexts.xml:78
#, no-c-format
msgid "@RequestScoped"
msgstr ""
#. Tag: literal
-#: scopescontexts.xml:77
+#: scopescontexts.xml:81
#, no-c-format
msgid "@SessionScoped"
msgstr ""
#. Tag: literal
-#: scopescontexts.xml:80
+#: scopescontexts.xml:84
#, no-c-format
msgid "@ApplicationScoped"
msgstr ""
#. Tag: literal
-#: scopescontexts.xml:83
+#: scopescontexts.xml:87
#, no-c-format
msgid "@ConversationScoped"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:87
+#: scopescontexts.xml:91
#, no-c-format
msgid "For a web application that uses CDI:"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:91
+#: scopescontexts.xml:95
#, no-c-format
msgid ""
"any servlet request has access to active request, session and application "
@@ -177,51 +182,63 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:96
+#: scopescontexts.xml:100
#, no-c-format
msgid "any JSF request has access to an active conversation scope."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:105
#, no-c-format
msgid ""
-"A CDI extension can support the conversation scope for other frameworks as "
-"well."
+"A CDI extension can implement support for the conversation scope in other "
+"web frameworks."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:108
#, no-c-format
msgid "The request and application scopes are also active:"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:108
+#: scopescontexts.xml:112
#, no-c-format
msgid "during invocations of EJB remote methods,"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:115
#, no-c-format
+msgid "during invocations of EJB asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:118
+#, no-c-format
msgid "during EJB timeouts,"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:114
+#: scopescontexts.xml:121
#, no-c-format
-msgid "during message delivery to a message-driven bean, and"
+msgid "during message delivery to a message-driven bean,"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:117
+#: scopescontexts.xml:124
#, no-c-format
+msgid "during message delivery to a <literal>MessageListener</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:127
+#, no-c-format
msgid "during web service invocations."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:121
+#: scopescontexts.xml:131
#, no-c-format
msgid ""
"If the application tries to invoke a bean with a scope that does not have an "
@@ -230,22 +247,31 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:126
+#: scopescontexts.xml:136
#, no-c-format
msgid ""
+"Managed beans with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal> must be serializable, since the "
+"container passivates the HTTP session from time to time."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:141
+#, no-c-format
+msgid ""
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:134
+#: scopescontexts.xml:149
#, no-c-format
msgid "The conversation scope"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:136
+#: scopescontexts.xml:151
#, no-c-format
msgid ""
"The conversation scope is a bit like the traditional session scope in that "
@@ -255,13 +281,13 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:144
+#: scopescontexts.xml:159
#, no-c-format
msgid "is demarcated explicitly by the application, and"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:147
+#: scopescontexts.xml:162
#, no-c-format
msgid ""
"holds state associated with a particular web browser tab in a JSF "
@@ -270,7 +296,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:154
+#: scopescontexts.xml:169
#, no-c-format
msgid ""
"A conversation represents a task—a unit of work from the point of view "
@@ -280,7 +306,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:160
+#: scopescontexts.xml:175
#, no-c-format
msgid ""
"The conversation context is active during any JSF request. Most "
@@ -290,13 +316,13 @@
msgstr ""
#. Tag: title
-#: scopescontexts.xml:167
+#: scopescontexts.xml:182
#, no-c-format
msgid "Conversation demarcation"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:169
+#: scopescontexts.xml:184
#, no-c-format
msgid ""
"CDI provides a built-in bean for controlling the lifecycle of conversations "
@@ -304,13 +330,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:174
+#: scopescontexts.xml:189
#, no-c-format
msgid "@Inject Conversation conversation;"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:176
+#: scopescontexts.xml:191
#, no-c-format
msgid ""
"To promote the conversation associated with the current request to a long-"
@@ -321,7 +347,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:182
+#: scopescontexts.xml:197
#, no-c-format
msgid ""
"In the following example, a conversation-scoped bean controls the "
@@ -329,7 +355,7 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:186
+#: scopescontexts.xml:201
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped @Stateful\n"
@@ -363,7 +389,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:188
+#: scopescontexts.xml:203
#, no-c-format
msgid ""
"This bean is able to control its own lifecycle through use of the "
@@ -372,13 +398,13 @@
msgstr ""
#. Tag: title
-#: scopescontexts.xml:196
+#: scopescontexts.xml:211
#, no-c-format
msgid "Conversation propagation"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:198
+#: scopescontexts.xml:213
#, no-c-format
msgid ""
"The conversation context automatically propagates with any JSF faces request "
@@ -387,7 +413,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:203
+#: scopescontexts.xml:218
#, no-c-format
msgid ""
"We can force the conversation to propagate with a non-faces request by "
@@ -399,13 +425,13 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:210
+#: scopescontexts.xml:225
#, no-c-format
msgid "Therefore, the following link propagates the conversation:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:214
+#: scopescontexts.xml:229
#, no-c-format
msgid ""
"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -413,13 +439,13 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:216
+#: scopescontexts.xml:231
#, no-c-format
msgid "It's probably better to use one of the link components in JSF 2:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:220
+#: scopescontexts.xml:235
#, no-c-format
msgid ""
"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
@@ -428,7 +454,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:223
+#: scopescontexts.xml:238
#, no-c-format
msgid ""
"The conversation context propagates across redirects, making it very easy to "
@@ -438,13 +464,13 @@
msgstr ""
#. Tag: title
-#: scopescontexts.xml:233
+#: scopescontexts.xml:248
#, no-c-format
msgid "Conversation timeout"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:235
+#: scopescontexts.xml:250
#, no-c-format
msgid ""
"The container is permitted to destroy a conversation and all state held in "
@@ -456,7 +482,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:242
+#: scopescontexts.xml:257
#, no-c-format
msgid ""
"The <literal>Conversation</literal> object provides a method to set the "
@@ -465,66 +491,191 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:247
+#: scopescontexts.xml:262
#, no-c-format
msgid "conversation.setTimeout(timeoutInMillis);"
msgstr ""
#. Tag: title
-#: scopescontexts.xml:254
+#: scopescontexts.xml:269
#, no-c-format
+msgid "The singleton pseudo-scope"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:271
+#, no-c-format
+msgid ""
+"In addition to the four built-in scopes, CDI also supports two "
+"<emphasis>pseudo-scopes</emphasis>. The first is the <emphasis>singleton "
+"pseudo-scope</emphasis>, which we specify using the annotation "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:277
+#, no-c-format
+msgid ""
+"Unlike the other scopes, which belong to the package <literal>javax."
+"enterprise.context</literal>, the <literal>@Singleton</literal> annotation "
+"is defined in the package <literal>javax.inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:283
+#, no-c-format
+msgid ""
+"You can guess what \"singleton\" means here. It means a bean that is "
+"instantiated once. Unfortunately, there's a little problem with this pseudo-"
+"scope. Beans with scope <literal>@Singleton</literal> don't have a proxy "
+"object. Clients hold a direct reference to the singleton instance. So we "
+"need to consider the case of a client that can be serialized, for example, "
+"any bean with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal>, any dependent object of a bean with "
+"scope <literal>@SessionScoped</literal> or <literal>@ConversationScoped</"
+"literal>, or any stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:292
+#, no-c-format
+msgid ""
+"Now, if the singleton instance is a simple, immutable, serializable object "
+"like a string, a number or a date, we probably don't mind too much if it "
+"gets duplicated via serialization. However, that makes it no stop being a "
+"true singleton, and we may as well have just declared it with the default "
+"scope."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:298
+#, no-c-format
+msgid ""
+"There are several ways to ensure that the singleton bean remains a singleton "
+"when its client gets serialized:"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:302
+#, no-c-format
+msgid ""
+"have the singleton bean implement <literal>writeResolve()</literal> and "
+"<literal>readReplace()</literal> (as defined by the Java serialization "
+"specification),"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:308
+#, no-c-format
+msgid ""
+"make sure the client keeps only a transient reference to the singleton bean, "
+"or"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:313
+#, no-c-format
+msgid ""
+"give the client a reference of type <literal>Instance<X></literal> "
+"where <literal>X</literal> is the bean type of the singleton bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:320
+#, no-c-format
+msgid ""
+"A fourth, better solution is to instead use <literal>@ApplicationScoped</"
+"literal>, allowing the container to proxy the bean, and take care of "
+"serialization problems automatically."
+msgstr ""
+
+#. Tag: title
+#: scopescontexts.xml:326
+#, no-c-format
msgid "The dependent pseudo-scope"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:256
+#: scopescontexts.xml:328
#, no-c-format
msgid ""
-"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 "
-"bean which does not explicitly declare a scope type."
+"Finally, CDI features the so-called <emphasis>dependent pseudo-scope</"
+"emphasis>. This is the default scope for a bean which does not explicitly "
+"declare a scope type."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:261
+#: scopescontexts.xml:333
#, no-c-format
msgid ""
"For example, this bean has the scope type <literal>@Dependent</literal>:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:265
+#: scopescontexts.xml:337
#, no-c-format
msgid "<![CDATA[public class Calculator { ... }]]>"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:267
+#: scopescontexts.xml:339
#, no-c-format
msgid ""
-"An instances of a dependent bean is never shared between different clients "
-"or different injection points. It is strictly a <emphasis>dependent object</"
+"An instance 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:273
+#: scopescontexts.xml:345
#, no-c-format
msgid ""
+"If a Unified EL expression refers to a dependent bean by EL name, an "
+"instance of the bean is instantiated every time the expression is evaluated. "
+"The instance is not reused during any other expression evaluation."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:351
+#, no-c-format
+msgid ""
+"If you need to access a bean directly by EL name in a JSF page, you probably "
+"need to give it a scope other than <literal>@Dependent</literal>. Otherwise, "
+"any value that gets set to the bean by a JSF input will be lost immediately. "
+"That's why CDI features the <literal>@Model</literal> stereotype; it lets "
+"you give a bean a name, and set its scope to <literal>@RequestScoped</"
+"literal> in one stroke. If you need to access a bean that really "
+"<emphasis>has</emphasis> to have the scope <literal>@Dependent</literal> "
+"from a JSF page, inject it into a different bean, and expose it to EL via a "
+"getter method."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:361
+#, no-c-format
+msgid ""
+"Beans with scope <literal>@Dependent</literal> don't need a proxy object. "
+"The client holds a direct reference to its instance."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:366
+#, no-c-format
+msgid ""
"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: title
-#: scopescontexts.xml:281
+#: scopescontexts.xml:374
#, no-c-format
msgid "The <literal>@New</literal> qualifier"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:283
+#: scopescontexts.xml:376
#, no-c-format
msgid ""
"The built-in qualifier <literal>@New</literal> allows us to obtain a "
@@ -532,13 +683,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:287
+#: scopescontexts.xml:380
#, no-c-format
msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:289
+#: scopescontexts.xml:382
#, no-c-format
msgid ""
"The class must be a valid managed bean or session bean, but need not be an "
@@ -546,7 +697,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:291
+#: scopescontexts.xml:384
#, no-c-format
msgid ""
"This works even if <literal>Calculator</literal> is <emphasis>already</"
@@ -554,7 +705,7 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:296
+#: scopescontexts.xml:389
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped\n"
@@ -562,7 +713,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:298
+#: scopescontexts.xml:391
#, no-c-format
msgid ""
"So the following injected attributes each get a different instance of "
@@ -570,7 +721,7 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:302
+#: scopescontexts.xml:395
#, no-c-format
msgid ""
"<![CDATA[public class PaymentCalc {\n"
@@ -580,7 +731,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:304
+#: scopescontexts.xml:397
#, no-c-format
msgid ""
"The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -590,7 +741,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:310
+#: scopescontexts.xml:403
#, no-c-format
msgid ""
"This feature is particularly useful with producer methods, as we'll see in "
Modified: doc/trunk/reference/fr-FR/weldexamples.po
===================================================================
--- doc/trunk/reference/fr-FR/weldexamples.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/fr-FR/weldexamples.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -144,7 +144,7 @@
"<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"
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"XML"
"\"><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN"
"\"\n"
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
@@ -524,7 +524,7 @@
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."
+"can open the example natively using the <ulink url=\"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.."
@@ -620,8 +620,9 @@
"<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."
+"<ulink url=\"http://localhost:9090\">http://localhost:9090</ulink> to view "
+"the app. To debug choose <emphasis>Debug as Java Application</emphasis> "
+"instead."
msgstr ""
#. Tag: title
@@ -663,8 +664,9 @@
#: 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>."
+"to deploy the example to Tomcat. You can then access application at <ulink "
+"url=\"http://localhost:8080/weld-numberguess-wicket\">http://localhost:8080/"
+"weld-numberguess-wicket</ulink>."
msgstr ""
#. Tag: para
@@ -976,7 +978,7 @@
"\"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"
+"public class Game\n"
"{\n"
"\n"
" public static final int MAX_NUM_GUESSES = 10;\n"
@@ -1078,19 +1080,18 @@
"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"
+"to get the random number at the start of each game. Note that it can't use "
+"<literal>Instance.get()</literal> like the JSF example does because there "
+"will not be any active contexts like there are 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"
@@ -1545,7 +1546,6 @@
#, 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>."
+"information on Weld, please visit <ulink url=\"http://www.seamframework.org/"
+"Weld\">http://www.seamframework.org/Weld</ulink>."
msgstr ""
Modified: doc/trunk/reference/it-IT/beans.po
===================================================================
--- doc/trunk/reference/it-IT/beans.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/beans.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-24 16:04+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
"Language-Team: none\n"
@@ -22,19 +22,36 @@
#. 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."
+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."
+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:"
+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
@@ -52,19 +69,33 @@
#. 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)."
+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)."
+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:"
+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
@@ -82,13 +113,22 @@
#. 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\"/>."
+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."
+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
@@ -100,7 +140,9 @@
#. Tag: para
#: beans.xml:80
#, no-c-format
-msgid "Enough hand-waving. More formally, the anatomy of a bean, according to the spec:"
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
msgstr ""
#. Tag: para
@@ -166,7 +208,10 @@
#. 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:"
+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
@@ -184,7 +229,12 @@
#. 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:"
+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
@@ -206,13 +256,21 @@
#. 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)."
+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."
+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
@@ -236,13 +294,21 @@
#. 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>."
+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>:"
+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
@@ -266,13 +332,26 @@
#. 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."
+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:"
+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
@@ -292,19 +371,31 @@
#. 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."
+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."
+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>:"
+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
@@ -316,19 +407,29 @@
#. 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>."
+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."
+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:"
+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
@@ -346,13 +447,19 @@
#. 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>."
+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\"/>."
+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
@@ -364,13 +471,20 @@
#. 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."
+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:"
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
msgstr ""
#. Tag: programlisting
@@ -386,47 +500,63 @@
#. 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."
+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."
+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 manually remove a "
+"bean from a context. If you don't want the bean to sit in the session "
+"indefinitely, consider using another scope with a shorted lifespan, such as "
+"the request or conversation scope."
msgstr ""
#. Tag: para
-#: beans.xml:272
+#: beans.xml:273
#, 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."
+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
+#: beans.xml:279
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:283
+#: beans.xml:284
#, no-c-format
msgid "EL name"
msgstr "Nome EL"
#. Tag: para
-#: beans.xml:285
+#: beans.xml:286
#, 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>."
+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
+#: beans.xml:291
#, no-c-format
-msgid "The EL name is specified using the <literal>@Named</literal> annotation, as shown here:"
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:294
+#: beans.xml:295
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
@@ -436,13 +566,13 @@
"class ShoppingCart implements Serializable { ... }]]>"
#. Tag: para
-#: beans.xml:296
+#: beans.xml:297
#, no-c-format
msgid "Now we can easily use the bean in any JSF or JSP page:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:298
+#: beans.xml:299
#, no-c-format
msgid ""
"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
@@ -454,19 +584,25 @@
"</h:dataTable>]]>"
#. Tag: para
-#: beans.xml:301
+#: beans.xml:302
#, 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."
+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
+#: beans.xml:309
#, no-c-format
-msgid "We can let CDI choose a name for us by leaving off the value of the <literal>@Named</literal> annotation:"
+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
+#: beans.xml:313
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named\n"
@@ -476,25 +612,34 @@
"class ShoppingCart implements Serializable { ... }]]>"
#. Tag: para
-#: beans.xml:314
+#: beans.xml:315
#, no-c-format
-msgid "The name defaults to the unqualified class name, decapitalized; in this case, <literal>shoppingCart</literal>."
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
msgstr ""
#. Tag: title
-#: beans.xml:324
+#: beans.xml:325
#, no-c-format
msgid "Alternatives"
msgstr "Alternative"
#. Tag: para
-#: beans.xml:326
+#: beans.xml:327
#, 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."
+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
+#: beans.xml:335
#, no-c-format
msgid ""
"<![CDATA[public @Alternative\n"
@@ -504,49 +649,81 @@
"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
#. Tag: para
-#: beans.xml:336
+#: beans.xml:337
#, 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."
+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
+#: beans.xml:345
#, no-c-format
-msgid "We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:351
+#: beans.xml:352
#, no-c-format
msgid "Interceptor binding types"
msgstr ""
#. Tag: para
-#: beans.xml:353
+#: beans.xml:354
#, 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."
+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
+#: beans.xml:361
#, 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."
+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
+#: beans.xml:372
#, 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."
+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
+#: beans.xml:378
#, 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."
+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
+#: beans.xml:383
#, no-c-format
msgid ""
"<![CDATA[@InterceptorBinding\n"
@@ -562,13 +739,15 @@
"public @interface Transactional {}]]>"
#. Tag: para
-#: beans.xml:384
+#: beans.xml:385
#, no-c-format
-msgid "The interceptor that implements transaction management declares this annotation:"
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:388
+#: beans.xml:389
#, no-c-format
msgid ""
"<![CDATA[public @Transactional @Interceptor\n"
@@ -578,13 +757,15 @@
"class TransactionInterceptor { ... }]]>"
#. Tag: para
-#: beans.xml:390
+#: beans.xml:391
#, no-c-format
-msgid "We can apply the interceptor to a bean by annotating the bean class with the same interceptor binding type:"
+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
+#: beans.xml:395
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Transactional\n"
@@ -594,247 +775,356 @@
"class ShoppingCart implements Serializable { ... }]]>"
#. Tag: para
-#: beans.xml:396
+#: beans.xml:397
#, no-c-format
-msgid "Notice that <literal>ShoppingCart</literal> and <literal>TransactionInterceptor</literal> don't know anything about each other."
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
msgstr ""
#. Tag: para
-#: beans.xml:401
+#: beans.xml:402
#, 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."
+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
+#: beans.xml:409
#, no-c-format
-msgid "We'll discuss interceptors, and their cousins, decorators, in <xref linkend=\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:418
+#: beans.xml:419
#, no-c-format
msgid "What kinds of classes are beans?"
msgstr ""
#. Tag: para
-#: beans.xml:420
+#: beans.xml:421
#, 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."
+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
+#: beans.xml:428
#, no-c-format
msgid "Managed beans"
msgstr ""
#. Tag: para
-#: beans.xml:429
+#: beans.xml:430
#, 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:"
+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
+#: beans.xml:441
#, no-c-format
msgid "It is not a non-static inner class."
msgstr ""
#. Tag: para
-#: beans.xml:443
+#: beans.xml:444
#, no-c-format
msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:446
+#: beans.xml:447
#, 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>."
+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
+#: beans.xml:453
#, no-c-format
-msgid "It does not implement <literal>javax.enterprise.inject.spi.Extension</literal>."
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
msgstr ""
#. Tag: para
-#: beans.xml:455
+#: beans.xml:456
#, no-c-format
msgid "It has an appropriate constructor—either:"
msgstr ""
#. Tag: para
-#: beans.xml:460
+#: beans.xml:461
#, no-c-format
msgid "the class has a constructor with no parameters, or"
msgstr ""
#. Tag: para
-#: beans.xml:463
+#: beans.xml:464
#, no-c-format
msgid "the class declares a constructor annotated <literal>@Inject</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:471
+#: beans.xml:472
#, 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."
+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
+#: beans.xml:475
#, no-c-format
-msgid "If a managed bean has a public field, it must have the default scope <literal>@Dependent</literal>."
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:476
+#: beans.xml:477
#, no-c-format
-msgid "Managed beans support the <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> lifecycle callbacks."
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
msgstr ""
#. Tag: para
-#: beans.xml:479
+#: beans.xml:480
#, 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."
+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
+#: beans.xml:489
#, no-c-format
msgid "Session beans"
msgstr "Session bean"
#. Tag: para
-#: beans.xml:490
+#: beans.xml:491
#, 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."
+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
+#: beans.xml:500
#, 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."
+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
+#: beans.xml:508
#, 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."
+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
+#: beans.xml:516
#, 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."
+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
+#: beans.xml:520
#, 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."
+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
+#: beans.xml:528
#, 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:"
+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
+#: beans.xml:535
#, no-c-format
msgid "method-level transaction management and security,"
msgstr ""
#. Tag: para
-#: beans.xml:537
+#: beans.xml:538
#, no-c-format
msgid "concurrency management,"
msgstr ""
#. Tag: para
-#: beans.xml:540
+#: beans.xml:541
#, no-c-format
-msgid "instance-level passivation for stateful session beans and instance-pooling for stateless session beans,"
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
msgstr ""
#. Tag: para
-#: beans.xml:544
+#: beans.xml:545
#, no-c-format
msgid "remote or web service invocation, or"
msgstr ""
#. Tag: para
-#: beans.xml:547
+#: beans.xml:548
#, no-c-format
msgid "timers and asynchronous methods,"
msgstr ""
#. Tag: para
-#: beans.xml:551
+#: beans.xml:552
#, no-c-format
-msgid "When we don't need any of these things, an ordinary managed bean will serve just fine."
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
msgstr ""
#. Tag: para
-#: beans.xml:553
+#: beans.xml:554
#, 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."
+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
+#: beans.xml:560
#, 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."
+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
+#: beans.xml:566
#, 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."
+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
+#: beans.xml:571
#, 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>."
+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
+#: beans.xml:579
#, 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\"."
+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
+#: beans.xml:590
#, no-c-format
msgid "Producer methods"
msgstr "Metodi produttori"
#. Tag: para
-#: beans.xml:591
+#: beans.xml:592
#, 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?"
+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
+#: beans.xml:600
#, 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."
+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
+#: beans.xml:607
#, no-c-format
-msgid "A producer method is declared by annotating a method of a bean class with the <literal>@Produces</literal> annotation."
+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
+#: beans.xml:612
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
@@ -860,67 +1150,92 @@
"}]]>"
#. Tag: para
-#: beans.xml:613
+#: beans.xml:614
#, 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:"
+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
+#: beans.xml:623
#, no-c-format
msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
msgstr "<![CDATA[@Inject @Random int randomNumber;]]>"
#. Tag: para
-#: beans.xml:624
+#: beans.xml:625
#, no-c-format
msgid "Even in a Unified EL expression:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:628
+#: beans.xml:629
#, no-c-format
msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
msgstr "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
#. Tag: para
-#: beans.xml:630
+#: beans.xml:631
#, 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."
+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
+#: beans.xml:637
#, no-c-format
msgid "The bean types of a producer method depend upon the method return type:"
msgstr ""
#. Tag: para
-#: beans.xml:642
+#: beans.xml:643
#, 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>."
+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
+#: beans.xml:649
#, 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>."
+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
+#: beans.xml:655
#, 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."
+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
+#: beans.xml:662
#, 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."
+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
+#: beans.xml:668
#, no-c-format
msgid ""
"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
@@ -932,25 +1247,31 @@
"}]]>"
#. Tag: para
-#: beans.xml:669
+#: beans.xml:670
#, no-c-format
-msgid "We'll talk much more about producer methods in <xref linkend=\"producermethods\"/>."
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:674
+#: beans.xml:675
#, no-c-format
msgid "Producer fields"
msgstr "Campi produttori"
#. Tag: para
-#: beans.xml:676
+#: beans.xml:677
#, 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."
+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
+#: beans.xml:683
#, no-c-format
msgid ""
"<![CDATA[public class Shop {\n"
@@ -964,14 +1285,423 @@
"}]]>"
#. Tag: para
-#: beans.xml:684
+#: beans.xml:685
#, no-c-format
-msgid "The rules for determining the bean types of a producer field parallel the rules for producer methods."
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
msgstr ""
#. Tag: para
-#: beans.xml:688
+#: beans.xml:689
#, 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."
+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 ""
+#. Tag: title
+#: beans.xml:701
+#, no-c-format
+msgid "The (minimal) bean descriptor"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:703
+#, no-c-format
+msgid ""
+"First, it's important to understand that the XML bean descriptor in CDI "
+"(beans.xml) is not there to define beans in XML, like in other popular bean "
+"containers. Rather, you use this file to enable CDI services for the current "
+"bean archive that is difficult to define consistently in Java or which you "
+"don't want to define in Java (e.g., to accomodate testing)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:710
+#, no-c-format
+msgid ""
+"For example, the XML is used to enable interceptors (which are disabled by "
+"default) and define interceptor ordering. So the bean descriptor "
+"<emphasis>complements</emphasis> the metadata that is provided in the Java "
+"language syntax. (You may still want to define beans in XML for other "
+"reasons, but that is the concern of an extension)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:717
+#, no-c-format
+msgid ""
+"Let's first ask why the beans.xml is required, then look at what services it "
+"is used used to enable."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:722
+#, no-c-format
+msgid "Why is beans.xml required?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:724
+#, no-c-format
+msgid ""
+"You may be wondering, if beans are not described using XML, why do we need "
+"beans.xml at all, particularly if you don't have anything that you would "
+"need the bean descriptor to enable (alternatives, interceptors or "
+"decorators)?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:730
+#, no-c-format
+msgid "There are two things about CDI that we need to keep in mind:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:736
+#, no-c-format
+msgid ""
+"CDI does not require any special declaration for a Java class to be injected "
+"- that's right, no annotation or XML declaration at all!"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:742
+#, no-c-format
+msgid ""
+"CDI does not define any special kind of module - CDI beans can be deployed "
+"in a library JAR, EJB JAR, WAR, RAR, or JVM classpath directory."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:749
+#, no-c-format
+msgid ""
+"The CDI specification calls the process of identifying beans in modules "
+"<emphasis>bean discovery</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:753
+#, no-c-format
+msgid ""
+"So there are potentially a lot of classes in the classpath which might be "
+"beans! We don't want to force the container to scan every one of those "
+"classes at startup and build its internal metamodel for each of them. This "
+"really could make bean discovery very slow."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:759
+#, no-c-format
+msgid ""
+"But there's another reason we need to give the user some control over which "
+"classes are available for injection. We don't want every class in the "
+"classpath to potentially match an injection point, including classes that "
+"were never intended to be injected into things. This would force the "
+"developer to have to use qualifiers much more often to disambiguate "
+"injection points."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:766
+#, no-c-format
+msgid "So we have two choices. We could have the developer:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:772
+#, no-c-format
+msgid "explicitly exclude modules which do not contain beans, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:775
+#, no-c-format
+msgid "explicitly declare modules which do contain beans."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:779
+#, no-c-format
+msgid ""
+"It should be clear that the second option is a much better way to go. Thus, "
+"CDI has the notion of a bean archive. A bean archive is just a module that "
+"has a file named beans.xml in the META-INF directory. The container looks "
+"for beans in bean archives. It ignores other modules."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:785
+#, no-c-format
+msgid ""
+"Now, you might be wondering if we've got the granularity wrong here. Why "
+"should module be the right criteria to use for including/excluding a class. "
+"Why not consider:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:792
+#, no-c-format
+msgid "a class-level annotation,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:795
+#, no-c-format
+msgid "the package,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:798
+#, no-c-format
+msgid "some type it implements or extends, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:801
+#, no-c-format
+msgid "some naming convention."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:805
+#, no-c-format
+msgid ""
+"We've got the first option covered. Annotate a bean <literal>@Alternative</"
+"literal>, or with an alternative stereotype, and it will be considered "
+"disabled by CDI, as long as you don't explicitly enable it in beans.xml. "
+"That's not quite the same thing as excluding the class from scanning "
+"altogether, but it's close. (One difference is that a portable extension "
+"with still get a <literal>ProcessAnnotatedType</literal> event for that "
+"class)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:813
+#, no-c-format
+msgid ""
+"A future version of CDI might allow you to declare excluded packages in "
+"beans.xml. Excluding a bean by type or naming convention isn't really that "
+"appealing. In the world of CDI, we use stereotypes for identifying "
+"architectural roles. We don't use marker interfaces or naming conventions. "
+"Names really shouldn't affect functionality as it is too fragile."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:820
+#, no-c-format
+msgid "Enough theory, what elements are available in beans.xml?"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:826
+#, no-c-format
+msgid "Bean descriptor schema"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:828
+#, no-c-format
+msgid ""
+"If you don't need to activate any interceptors, decorators or alternatives "
+"(you just have plain beans that you need to use in an archive), the beans."
+"xml file can be <emphasis>empty</emphasis>. If you do have one of these "
+"requirements, then you need to start popularing the descriptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:834
+#, no-c-format
+msgid ""
+"The root element of a beans.xml file is <literal>beans</literal>, with the "
+"following <ulink url=\"http://anonsvn.jboss.org/repos/weld/api/trunk/cdi/src/"
+"main/resources/beans.xsd\">schema</ulink>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:839
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<beans 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"
+"</beans>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:841
+#, no-c-format
+msgid ""
+"The <literal>beans</literal> element can have one or more of each of the "
+"following children:"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:847
+#, no-c-format
+msgid "interceptors"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:850
+#, no-c-format
+msgid "decorators"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:853
+#, fuzzy, no-c-format
+msgid "alternatives"
+msgstr "Alternative"
+
+#. Tag: para
+#: beans.xml:857
+#, no-c-format
+msgid "Let's look at each element in detail."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:862
+#, no-c-format
+msgid "<interceptors>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:864
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled interceptors bound via interceptor "
+"bindings. An interceptor must be explicitly enabled by listing the fully "
+"qualified class name in a child <class> element of <"
+"interceptors>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:870
+#, no-c-format
+msgid ""
+"There may be zero or more interceptor class elements. The order of the class "
+"declarations determines the interceptor ordering. Interceptors which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an interceptor "
+"class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:877
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.intercept.SecurityInterceptor</class>\n"
+" <class>com.acme.intercept.TransactionInterceptor</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:883
+#, no-c-format
+msgid "<decorators>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:885
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled decorators. A decorator must be "
+"explicitly enabled by listing the fully qualified class name in a child <"
+"class> element of <decorators>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:891
+#, no-c-format
+msgid ""
+"There may be zero or more decorator class elements. The order of the class "
+"declarations determines the decorator ordering. Decorators which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an decorator class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.decorate.BigAccountDecorator</class>\n"
+" <class>com.acme.decorate.SpecialGiftDecorator</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:903
+#, fuzzy, no-c-format
+msgid "<alternatives>"
+msgstr "Alternative"
+
+#. Tag: para
+#: beans.xml:905
+#, no-c-format
+msgid ""
+"An alternative is a bean that must be explicitly declared in the beans.xml "
+"file if it should be available for lookup, injection or EL resolution. By "
+"default, a bean archive has no active alternatives. An alternative must be "
+"explicitly declared using the fully qualified bean class name or stereotype "
+"class name in either a child <class> or <stereotype> element of "
+"<alternatives>, respectively."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:913
+#, no-c-format
+msgid ""
+"An alternative is selected for the bean archive if either: the alternative "
+"is a managed bean or session bean and the bean class of the bean is listed, "
+"or the alternative is a producer method, field or resource, and the bean "
+"class that declares the method or field is listed, or any "
+"<literal>@Alternative</literal> stereotype of the alternative is listed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:920
+#, no-c-format
+msgid ""
+"There may be zero or more alternative bean class elements. The same class "
+"may not be listed twice. And of course, the class must exist and it must be "
+"an alternative bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:925
+#, no-c-format
+msgid ""
+"There may also be zero or more <literal>@Alternative</literal> stereotype "
+"elements. The same stereotype may not be listed twice. And of course, the "
+"stereotype class must exist and it must be an stereotype annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:931
+#, no-c-format
+msgid ""
+"<![CDATA[<stereotypes>\n"
+" <class>com.acme.business.MockPaymentProcessor</class>\n"
+" <stereotype>com.acme.stereotype.Mock</stereotype>\n"
+"</stereotypes>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:935
+#, no-c-format
+msgid ""
+"And that's it! A very simple schema, used only to activate and order CDI "
+"services."
+msgstr ""
Modified: doc/trunk/reference/it-IT/dependencies.po
===================================================================
--- doc/trunk/reference/it-IT/dependencies.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/dependencies.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-23 21:15+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
"Language-Team: none\n"
@@ -21,9 +21,17 @@
#. 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 "Questa sezione elenca le dipendenze a compile-time e a run-tim di Weld. Questa lista è attualmente mantenuta nel report <ulink src=\"https://jira.jboss.org/jira/browse/WELD-222\">WELD-222</ulink> così comein quest'appendice."
+#, fuzzy, no-c-format
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink url=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
+msgstr ""
+"Questa sezione elenca le dipendenze a compile-time e a run-tim di Weld. "
+"Questa lista è attualmente mantenuta nel report <ulink src=\"https://jira."
+"jboss.org/jira/browse/WELD-222\">WELD-222</ulink> così comein "
+"quest'appendice."
#. Tag: title
#: dependencies.xml:13
@@ -32,15 +40,13 @@
msgstr "Artifact provenienti da Sun"
#. Tag: para
-#: dependencies.xml:21
-#: dependencies.xml:110
+#: dependencies.xml:21 dependencies.xml:110
#, no-c-format
msgid "Artifact"
msgstr "Artifact"
#. Tag: para
-#: dependencies.xml:24
-#: dependencies.xml:113
+#: dependencies.xml:24 dependencies.xml:113
#, no-c-format
msgid "Scope"
msgstr "Scope"
@@ -52,12 +58,8 @@
msgstr "javax.ejb:ejb-api:3.1"
#. Tag: para
-#: dependencies.xml:36
-#: dependencies.xml:44
-#: dependencies.xml:52
-#: dependencies.xml:60
-#: dependencies.xml:68
-#: dependencies.xml:76
+#: 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"
@@ -100,8 +102,7 @@
msgstr "org.glasfish.web:el-impl:2.1.2"
#. Tag: para
-#: dependencies.xml:84
-#: dependencies.xml:92
+#: dependencies.xml:84 dependencies.xml:92
#, no-c-format
msgid "runtime"
msgstr "runtime"
@@ -135,4 +136,3 @@
#, no-c-format
msgid "BVAL-193"
msgstr "BVAL-193"
-
Modified: doc/trunk/reference/it-IT/ee.po
===================================================================
--- doc/trunk/reference/it-IT/ee.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/ee.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-23 21:16+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
"Language-Team: none\n"
@@ -22,8 +22,18 @@
#. Tag: para
#: ee.xml:6
#, 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."
+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:13
@@ -34,7 +44,9 @@
#. Tag: para
#: ee.xml:15
#, no-c-format
-msgid "In the Java EE environment, the container provides the following built-in beans, all with the qualifier <literal>@Default</literal>:"
+msgid ""
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
msgstr ""
#. Tag: para
@@ -46,53 +58,105 @@
#. Tag: para
#: ee.xml:27
#, no-c-format
-msgid "a <literal>Principal</literal> representing the current caller identity,"
+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"
+msgid ""
+"the default <ulink url=\"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>."
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
msgstr ""
+#. Tag: para
+#: ee.xml:45
+#, no-c-format
+msgid ""
+"The CDI specification does not require the servlet context objects, "
+"<literal>HttpServletRequest</literal>, <literal>HttpSession</literal> and "
+"<literal>ServletContext</literal> to be exposed as injectable beans. If you "
+"really want to be able to inject these objects, it's easy to create a "
+"portable extension to expose them as beans. However, we recommend that "
+"direct access to these objects be limited to servlets, servlet filters and "
+"servlet event listeners, where they may be obtained in the usual way as "
+"defined by the Java Servlets spec. The <literal>FacesContext</literal> is "
+"also not injectable. You can get at it by calling <literal>FacesContext."
+"getCurrentInstance()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ee.xml:57
+#, no-c-format
+msgid ""
+"Oh, you <emphasis>really</emphasis> want to inject the "
+"<literal>FacesContext</literal>? Alright then, try this producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: ee.xml:61
+#, no-c-format
+msgid ""
+"<![CDATA[class FacesContextProducer {\n"
+" @Produces @RequestScoped FacesContext getFacesContext() {\n"
+" return FacesContext.getCurrentInstance();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
#. Tag: title
-#: ee.xml:47
+#: ee.xml:67
#, 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
+#: ee.xml:69
#, 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."
+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
+#: ee.xml:76
#, no-c-format
msgid ""
"<![CDATA[@Transactional @Interceptor\n"
"public class TransactionInterceptor {\n"
" @Resource UserTransaction transaction;\n"
"\n"
-" @AroundInvoke public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
"}]]>"
msgstr ""
"<![CDATA[@Transactional @Interceptor\n"
"public class TransactionInterceptor {\n"
" @Resource UserTransaction transaction;\n"
"\n"
-" @AroundInvoke public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
"}]]>"
#. Tag: programlisting
-#: ee.xml:58
+#: ee.xml:78
#, no-c-format
msgid ""
"<![CDATA[@SessionScoped\n"
@@ -110,31 +174,47 @@
"}]]>"
#. Tag: para
-#: ee.xml:60
+#: ee.xml:80
#, 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."
+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:66
+#: ee.xml:86
#, no-c-format
-msgid "Of course, we advise that component environment injection be used to define CDI resources, and that typesafe injection be used in application code."
+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:74
+#: ee.xml:94
#, fuzzy, no-c-format
msgid "Calling a bean from a servlet"
msgstr "Chiamare un Web Bean da un servlet"
#. Tag: para
-#: ee.xml:76
+#: ee.xml:96
#, 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."
+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:81
+#: ee.xml:101
#, no-c-format
msgid ""
"<![CDATA[public class Login extends HttpServlet {\n"
@@ -142,7 +222,8 @@
" @Inject 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.getParameter(\"username\")):\n"
" credentials.setPassword(request.getParameter(\"password\")):\n"
@@ -162,7 +243,8 @@
" @Inject 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.getParameter(\"username\")):\n"
" credentials.setPassword(request.getParameter(\"password\")):\n"
@@ -178,32 +260,44 @@
"}]]>"
#. Tag: para
-#: ee.xml:83
+#: ee.xml:103
#, 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."
+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:92
+#: ee.xml:112
#, 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:94
+#: ee.xml:114
#, no-c-format
-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."
+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:99
+#: ee.xml:119
#, 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."
+msgstr ""
+"Si possono perfino associare degli interceptor Web Beans ai Message-Driven "
+"Beans."
#. Tag: programlisting
-#: ee.xml:101
+#: ee.xml:121
#, no-c-format
msgid ""
"<![CDATA[@Transactional @MessageDriven\n"
@@ -227,37 +321,66 @@
"}]]>"
#. Tag: para
-#: ee.xml:103
+#: ee.xml:123
#, 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."
+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:109
+#: ee.xml:129
#, no-c-format
msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
msgstr ""
#. Tag: title
-#: ee.xml:116
+#: ee.xml:136
#, no-c-format
msgid "JMS endpoints"
msgstr "Endpoint JMS"
#. Tag: para
-#: ee.xml:118
+#: ee.xml:138
#, 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:127
+#: ee.xml:147
#, no-c-format
-msgid "You can use producer fields and methods to prepare all of these resources for injection into a bean:"
+msgid ""
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
msgstr ""
#. Tag: programlisting
-#: ee.xml:131
+#: ee.xml:151
#, no-c-format
msgid ""
"<![CDATA[public class OrderResources {\n"
@@ -272,13 +395,15 @@
" return connectionFactory.createConnection();\n"
" }\n"
" \n"
-" public void closeOrderConnection(@Disposes @OrderConnection Connection connection)\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"
+" public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
" throws JMSException {\n"
" return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
" }\n"
@@ -289,12 +414,14 @@
" }\n"
" \n"
" @Produces @OrderMessageProducer\n"
-" public MessageProducer createOrderMessageProducer(@OrderSession Session session)\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"
+" public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
" throws JMSException {\n"
" producer.close();\n"
" }\n"
@@ -312,13 +439,15 @@
" return connectionFactory.createConnection();\n"
" }\n"
" \n"
-" public void closeOrderConnection(@Disposes @OrderConnection Connection connection)\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"
+" public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
" throws JMSException {\n"
" return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
" }\n"
@@ -329,25 +458,29 @@
" }\n"
" \n"
" @Produces @OrderMessageProducer\n"
-" public MessageProducer createOrderMessageProducer(@OrderSession Session session)\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"
+" public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
" throws JMSException {\n"
" producer.close();\n"
" }\n"
"}]]>"
#. Tag: para
-#: ee.xml:133
+#: ee.xml:153
#, no-c-format
-msgid "In this example, we can just inject the prepared <literal>MessageProducer</literal>, <literal>Connection</literal> or <literal>QueueSession</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:138
+#: ee.xml:158
#, no-c-format
msgid ""
"<![CDATA[@Inject Order order;\n"
@@ -373,28 +506,56 @@
"}]]>"
#. Tag: para
-#: ee.xml:144
+#: ee.xml:164
#, fuzzy, no-c-format
-msgid "The lifecycle of the injected JMS objects is completely controlled by the container."
-msgstr "Il ciclo di vita degli oggetti JMS iniettati è interamente controllato dal manager Web Bean."
+msgid ""
+"The lifecycle of the injected JMS objects is completely controlled by the "
+"container."
+msgstr ""
+"Il ciclo di vita degli oggetti JMS iniettati è interamente controllato dal "
+"manager Web Bean."
#. Tag: title
-#: ee.xml:151
+#: ee.xml:171
#, no-c-format
msgid "Packaging and deployment"
msgstr "Packaging and deployment"
#. Tag: para
-#: ee.xml:153
+#: ee.xml:173
#, 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."
+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:162
+#: ee.xml:182
#, 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 ""
+"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"
@@ -402,6 +563,7 @@
#~ 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 "
@@ -415,8 +577,10 @@
#~ "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 "
@@ -425,6 +589,7 @@
#~ "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"
@@ -439,6 +604,7 @@
#~ "connectionFactory>\n"
#~ " <myapp:OrderProcessor/> \n"
#~ "</Queue>]]>"
+
#~ msgid ""
#~ "<![CDATA[<Topic>\n"
#~ " <destination>java:comp/env/jms/StockPrices</destination>\n"
@@ -453,6 +619,7 @@
#~ "connectionFactory>\n"
#~ " <myapp:StockPrices/> \n"
#~ "</Topic>]]>"
+
#~ msgid ""
#~ "Now we can just inject the <literal>Queue</literal>, "
#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
@@ -465,6 +632,7 @@
#~ "<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"
@@ -479,4 +647,3 @@
#~ "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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/environments.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-23 21:17+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
"Language-Team: none\n"
@@ -28,19 +29,33 @@
#. Tag: para
#: environments.xml:9
#, no-c-format
-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!"
+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 "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."
+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:"
+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
@@ -52,7 +67,9 @@
#. Tag: para
#: environments.xml:29
#, no-c-format
-msgid "Now we can install the Weld deployer from the <literal>jboss-as</literal> directory of the Weld distribution:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
msgstr ""
#. Tag: programlisting
@@ -68,8 +85,17 @@
#. Tag: para
#: 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."
+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: title
#: environments.xml:46
@@ -80,7 +106,12 @@
#. Tag: para
#: environments.xml:48
#, no-c-format
-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."
+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
@@ -92,20 +123,43 @@
#. Tag: para
#: 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."
+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: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."
+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: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:"
+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:84
@@ -164,19 +218,27 @@
#. 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>:"
+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:134
#, no-c-format
msgid ""
"<![CDATA[<listener>\n"
-" <listener-class>org.jboss.weld.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.weld.environment.servlet.Listener</listener-class>\n"
+" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
"</listener>]]>"
#. Tag: title
@@ -188,8 +250,15 @@
#. Tag: para
#: 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:"
+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:145
@@ -212,8 +281,12 @@
#. Tag: para
#: 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:151
@@ -236,20 +309,37 @@
#. Tag: para
#: 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>"
+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: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>:"
+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:164
#, no-c-format
-msgid "<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat.WeldLifecycleListener\"/>]]>"
-msgstr "<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat.WeldLifecycleListener\"/>]]>"
+msgid ""
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
+msgstr ""
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
#. Tag: title
#: environments.xml:169
@@ -260,17 +350,27 @@
#. Tag: para
#: 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:"
+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:176
#, 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=\"BeanManager\" 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>BeanManager</Arg>\n"
" <Arg>\n"
@@ -283,10 +383,13 @@
" </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"
-" <New id=\"BeanManager\" 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>BeanManager</Arg>\n"
" <Arg>\n"
@@ -302,14 +405,28 @@
#. Tag: para
#: 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: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>"
+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:189
@@ -326,89 +443,156 @@
#. Tag: para
#: 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."
+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: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:"
+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:215
+#. Tag: para
+#: environments.xml:214
#, no-c-format
-msgid "POJOs (no EJBs)"
+msgid ""
+"Managed beans with <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:220
#, no-c-format
-msgid "Typesafe Dependency Injection"
-msgstr "Iniezioni di dipendenza typesafe"
+msgid "Dependency injection with qualifiers and alternatives"
+msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:225
#, no-c-format
-msgid "Application and Dependent Contexts"
-msgstr "Applicazione e contesti dipendenti"
+msgid ""
+"<literal>@Application</literal>, <literal>@Dependent</literal> and "
+"<literal>@Singleton</literal> scopes"
+msgstr ""
-#. Tag: literal
-#: environments.xml:230
+#. Tag: para
+#: environments.xml:231
#, no-c-format
-msgid "Qualifiers"
-msgstr "Qualificatori"
+msgid "Interceptors and decorators"
+msgstr ""
-#. Tag: literal
-#: environments.xml:235
+#. Tag: para
+#: environments.xml:236
#, no-c-format
msgid "Stereotypes"
msgstr "Stereotipi"
-#. Tag: literal
-#: environments.xml:240
+#. Tag: para
+#: environments.xml:241
#, no-c-format
-msgid "Typesafe Event Model"
-msgstr "Modello a eventi typesafe"
+msgid "Events"
+msgstr ""
+#. Tag: para
+#: environments.xml:246
+#, no-c-format
+msgid "Portable extension support"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:252
+#, no-c-format
+msgid "EJB beans are not supported."
+msgstr ""
+
#. Tag: title
-#: environments.xml:246
+#: environments.xml:257
#, fuzzy, no-c-format
msgid "CDI SE Module"
msgstr "Module Web Beans SE"
#. Tag: para
-#: environments.xml:248
+#: environments.xml:259
#, 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:"
+msgid ""
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. 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:255
+#: environments.xml:264
#, no-c-format
+msgid "<![CDATA[@Inject @Parameters List<String> params;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:266
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters String[] paramsArray;]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:268
+#, no-c-format
+msgid "The second form is useful for compatibility with existing classes."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:273
+#, fuzzy, no-c-format
msgid ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with existing classes]]>"
+"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 ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with existing classes]]>"
+"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>."
#. Tag: para
-#: environments.xml:257
+#: environments.xml:282
#, 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:261
-#, no-c-format
+#: environments.xml:286
+#, fuzzy, no-c-format
msgid ""
-"<![CDATA[@ApplicationScoped\n"
+"<![CDATA[@Singleton\n"
"public class HelloWorld\n"
"{\n"
-" @Inject @Parameters List<String> parameters;\n"
-"\n"
-" public void printHello(@Observes ContainerInitialized event) {\n"
+" public void printHello(@Observes ContainerInitialized event, @Parameters "
+"List<String> parameters) {\n"
" System.out.println(\"Hello \" + parameters.get(0));\n"
" }\n"
"}]]>"
@@ -423,47 +607,211 @@
" }\n"
"}]]>"
+#. Tag: title
+#: environments.xml:292
+#, no-c-format
+msgid "Bootstrapping CDI SE"
+msgstr ""
+
#. Tag: para
-#: environments.xml:263
+#: environments.xml:294
#, 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."
+msgid "CDI SE applications can be bootstrapped in the following ways."
+msgstr ""
+"Le applicazioni Web Beans SE vengono avviate eseguendo il seguente metodo "
+"main."
+#. Tag: title
+#: environments.xml:300
+#, no-c-format
+msgid "The ContainerInitialized Event"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:302
+#, no-c-format
+msgid ""
+"Thanks to the power of CDI's typesafe event model, application developers "
+"need not write any bootstrapping code. The Weld SE module comes with a built-"
+"in main method which will bootstrap CDI for you and then fire a "
+"<literal>ContainerInitialized</literal> event. The entry point for your "
+"application code would therefore be a simple bean which observes the "
+"<literal>ContainerInitialized</literal> event, as in the previous example."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:310
+#, fuzzy, no-c-format
+msgid ""
+"In this case your application can be started by calling the provided main "
+"method like so:"
+msgstr ""
+"Le applicazioni Web Beans SE vengono avviate eseguendo il seguente metodo "
+"main."
+
#. Tag: programlisting
-#: environments.xml:267
+#: environments.xml:313
#, no-c-format
msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
msgstr "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
+#. Tag: title
+#: environments.xml:319
+#, no-c-format
+msgid "Programatic Bootstrap API"
+msgstr ""
+
#. Tag: para
-#: environments.xml:269
-#, 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:"
+#: environments.xml:321
+#, no-c-format
+msgid ""
+"For added flexibility, CDI SE also comes with a bootstrap API which can be "
+"called from within your application in order to initialize CDI and obtain "
+"references to your application's beans and events. The API consists of two "
+"classes: <literal>Weld</literal> and <literal>WeldContainer</literal>."
+msgstr ""
#. Tag: programlisting
-#: environments.xml:276
+#: environments.xml:327
#, no-c-format
msgid ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+"<![CDATA[public class Weld\n"
+"{\n"
+"\n"
+" /** Boots Weld and creates and returns a WeldContainer instance, through "
+"which\n"
+" * beans and events can be accesed. */\n"
+" public WeldContainer initialize() {...}\n"
+"\n"
+" /** Convenience method for shutting down the container. */\n"
+" public void shutdown() {...}\n"
+"\n"
"}]]>"
msgstr ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+
+#. Tag: programlisting
+#: environments.xml:329
+#, no-c-format
+msgid ""
+"<![CDATA[public class WeldContainer\n"
+"{\n"
+"\n"
+" /** Provides access to all beans within the application. */\n"
+" public Instance<Object> instance() {...}\n"
+"\n"
+" /** Provides access to all events within the application. */\n"
+" public Event<Object> event() {...}\n"
+"\n"
+" /** Provides direct access to the BeanManager. */\n"
+" public BeanManager getBeanManager() {...}\n"
+"\n"
"}]]>"
+msgstr ""
#. Tag: para
-#: 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>."
+#: environments.xml:331
+#, no-c-format
+msgid ""
+"Here's an example application main method which uses this API to initialize "
+"a bean of type <literal>MyApplicationBean</literal>."
+msgstr ""
+#. Tag: programlisting
+#: environments.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.instance().select(MyApplicationBean.class).get();\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:336
+#, no-c-format
+msgid ""
+"Alternatively the application could be started by firing a custom event "
+"which would then be observed by another simple bean. The following example "
+"fires <literal>MyEvent</literal> on startup."
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.event().select(MyEvent.class).fire( new MyEvent() );\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: environments.xml:348
+#, no-c-format
+msgid "Setting the Classpath"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:350
+#, no-c-format
+msgid ""
+"Weld SE comes packaged as a 'shaded' jar which includes the CDI API, Weld "
+"Core and all dependant classes bundled into a single jar. Therefore the only "
+"Weld jar you need on the classpath, in addition to your application's "
+"classes and dependant jars, is the Weld SE jar."
+msgstr ""
+
+#~ msgid "Typesafe Dependency Injection"
+#~ msgstr "Iniezioni di dipendenza typesafe"
+
+#~ msgid "Application and Dependent Contexts"
+#~ msgstr "Applicazione e contesti dipendenti"
+
+#~ msgid "Qualifiers"
+#~ msgstr "Qualificatori"
+
+#~ msgid "Typesafe Event Model"
+#~ msgstr "Modello a eventi typesafe"
+
#~ msgid ""
+#~ "<![CDATA[@Inject @Parameters List<String> params;\n"
+#~ "@Inject @Parameters String[] paramsArray; // useful for compatability "
+#~ "with existing classes]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Inject @Parameters List<String> params;\n"
+#~ "@Inject @Parameters String[] paramsArray; // useful for compatability "
+#~ "with existing classes]]>"
+
+#, fuzzy
+#~ 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:"
+
+#~ msgid ""
+#~ "<![CDATA[public class PerformSetup {\n"
+#~ " public void setup(@Observes AfterBeanDiscovery event) {\n"
+#~ " event.addContext( ThreadContext.INSTANCE );\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class PerformSetup {\n"
+#~ " public void setup(@Observes AfterBeanDiscovery event) {\n"
+#~ " event.addContext( ThreadContext.INSTANCE );\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ 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."
@@ -471,6 +819,7 @@
#~ "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 "
@@ -481,23 +830,31 @@
#~ "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/example.po
===================================================================
--- doc/trunk/reference/it-IT/example.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/example.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-23 21:19+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
"Language-Team: none\n"
@@ -22,21 +22,32 @@
#. Tag: para
#: example.xml:6
#, 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:"
+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, "
+"with constraints defined using annotations from the Bean Validation "
+"specification:"
+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
+#: example.xml:12
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Named @RequestScoped\n"
"public class Credentials {\n"
" private String username;\n"
" private String password;\n"
" \n"
+" @NotNull @Length(min=3, max=25)\n"
" public String getUsername() { return username; }\n"
" public void setUsername(String username) { this.username = username; }\n"
" \n"
+" @NotNull @Length(min=6, max=20)\n"
" public String getPassword() { return password; }\n"
" public void setPassword(String password) { this.password = password; }\n"
"}]]>"
@@ -54,24 +65,29 @@
"}]]>"
#. Tag: para
-#: example.xml:13
+#: example.xml:14
#, 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:"
+msgstr ""
+"Questo Web Bean è associato al login all'interno della seguente form JSF:"
#. Tag: programlisting
-#: example.xml:15
-#, no-c-format
+#: example.xml:16
+#, 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"
+" <f:validateBean>\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"
+" </f:validateBean>\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: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"
@@ -81,20 +97,69 @@
" <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:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+" <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
"</h:form>]]>"
#. Tag: para
-#: example.xml:17
-#, 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:"
+#: example.xml:18
+#, no-c-format
+msgid "Users are represented by a JPA entity:"
+msgstr ""
#. Tag: programlisting
#: example.xml:22
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+" private @NotNull @Length(min=3, max=25) @Id String username;\n"
+" private @NotNull @Length(min=6, max=20) String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" public String setPassword(String password) { this.password = password; }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class Credentials {\n"
+" private String username;\n"
+" private String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" \n"
+" public String getPassword() { return password; }\n"
+" public void setPassword(String password) { this.password = password; }\n"
+"}]]>"
+
+#. Tag: para
+#: example.xml:24
#, no-c-format
msgid ""
+"(Note that we're also going to need a <literal>persistence.xml</literal> "
+"file to configure the JPA persistence unit containing <literal>User</"
+"literal>.)"
+msgstr ""
+
+#. Tag: para
+#: example.xml:29
+#, 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:34
+#, no-c-format
+msgid ""
"<![CDATA[@SessionScoped @Named\n"
"public class Login implements Serializable {\n"
"\n"
@@ -105,7 +170,8 @@
" \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"
+" \"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"
@@ -142,7 +208,8 @@
" \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"
+" \"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"
@@ -170,13 +237,15 @@
"}]]>"
#. Tag: para
-#: example.xml:24
+#: example.xml:36
#, no-c-format
-msgid "<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom qualifier annotations:"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
msgstr ""
#. Tag: programlisting
-#: example.xml:26
+#: example.xml:38
#, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -190,7 +259,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: programlisting
-#: example.xml:28
+#: example.xml:40
#, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -204,17 +273,20 @@
"public @interface UserDatabase {}]]>"
#. Tag: para
-#: example.xml:30
+#: example.xml:42
#, no-c-format
-msgid "We need an adaptor bean to expose our typesafe <literal>EntityManager</literal>:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
msgstr ""
#. Tag: programlisting
-#: example.xml:34
-#, no-c-format
+#: example.xml:46
+#, fuzzy, no-c-format
msgid ""
-"<![CDATA[public class UserDatabaseProducer {\n"
-" @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"<![CDATA[class UserDatabaseProducer {\n"
+" @Produces @UserDatabase @PersistenceContext \n"
+" static EntityManager userDatabase;\n"
"}]]>"
msgstr ""
"<![CDATA[public class UserDatabaseProducer {\n"
@@ -222,13 +294,16 @@
"}]]>"
#. Tag: para
-#: example.xml:36
+#: example.xml:48
#, 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:"
+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
+#: example.xml:50
#, no-c-format
msgid ""
"<![CDATA[public class DocumentEditor {\n"
@@ -254,13 +329,13 @@
"}]]>"
#. Tag: para
-#: example.xml:40
+#: example.xml:52
#, no-c-format
msgid "Or we can reference the current user in a JSF view:"
msgstr ""
#. Tag: programlisting
-#: example.xml:42
+#: example.xml:54
#, no-c-format
msgid ""
"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
@@ -272,11 +347,15 @@
"</h:panelGroup>]]>"
#. Tag: para
-#: example.xml:44
+#: example.xml:56
#, 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 ""
+"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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/extend.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -95,27 +95,204 @@
"some other source"
msgstr ""
+#. Tag: title
+#: extend.xml:58
+#, fuzzy, no-c-format
+msgid "Creating an <literal>Extension</literal>"
+msgstr "La classe <literal>Bean</literal>"
+
#. Tag: para
-#: extend.xml:57
-#, fuzzy, no-c-format
+#: extend.xml:60
+#, no-c-format
msgid ""
-"The nerve center for extending CDI is the <literal>BeanManager</literal> "
-"object."
+"The first step in creating a portable extension is to write a class that "
+"implements <literal>Extension</literal>. This marker interface does not "
+"define any methods, but it's needed to satisfy the requirements of Java SE's "
+"service provider architecture."
msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:66
+#, no-c-format
+msgid "class MyExtension implements Extension { ... }"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:68
+#, no-c-format
+msgid ""
+"Next, we need to register our extension as a service provider by creating a "
+"file named <literal>META-INF/services/javax.enterprise.inject.spi.Extension</"
+"literal>, which contains the name of our extension class:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:74
+#, no-c-format
+msgid "org.mydomain.extension.MyExtension"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:76
+#, no-c-format
+msgid ""
+"An extension is not a bean, exactly, since it is instantiated by the "
+"container during the initialization process, before any beans or contexts "
+"exist. However, it can be injected into other beans once the initialization "
+"process is complete."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:82
+#, no-c-format
+msgid ""
+"@Inject \n"
+"MyBean(MyExtension myExtension) {\n"
+" myExtension.doSomething();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:84
+#, no-c-format
+msgid ""
+"And, like beans, extensions can have observer methods. Usually, the observer "
+"methods observe <emphasis>container lifecycle events</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:92
+#, no-c-format
+msgid "Container lifecycle events"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:94
+#, no-c-format
+msgid ""
+"During the initialization process, the container fires a series of events, "
+"including:"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:101
+#, no-c-format
+msgid "BeforeBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:106
+#, no-c-format
+msgid "ProcessAnnotatedType"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:110
+#, no-c-format
+msgid ""
+"<literal>ProcessInjectionTarget</literal> and <literal>ProcessProducer</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:115
+#, no-c-format
+msgid ""
+"<literal>ProcessBean</literal> and <literal>ProcessObserverMethod</literal>"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:121
+#, no-c-format
+msgid "AfterBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:126
+#, no-c-format
+msgid "AfterDeploymentValidation"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:131
+#, no-c-format
+msgid "Extensions may observe these events:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {\n"
+" Logger.global.debug(\"beginning the scanning process\");\n"
+" }\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" Logger.global.debug(\"scanning type: \" + pat.getAnnotatedType()."
+"getJavaClass().getName());\n"
+" } \n"
+"\n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {\n"
+" Logger.global.debug(\"finished the scanning process\");\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:137
+#, no-c-format
+msgid ""
+"In fact, the extension can do a lot more than just observe. The extension is "
+"permitted to modify the container's metamodel and more. Here's a very simple "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" //tell the container to ignore the type if it is annotated @Ignore\n"
+" if ( pat.getAnnotatedType().isAnnotionPresent(Ignore.class) ) pat.veto"
+"(); \n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:144
+#, fuzzy, no-c-format
+msgid "The observer method may inject a <literal>BeanManager</literal>"
+msgstr ""
"Il nervo centrale per l'estensione di Web Beans è l'oggetto "
"<literal>Manager</literal>."
+#. Tag: programlisting
+#: extend.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> "
+"pat, BeanManager beanManager) { ... }]]>"
+msgstr ""
+
#. Tag: title
-#: extend.xml:62
+#: extend.xml:153
#, fuzzy, no-c-format
msgid "The <literal>BeanManager</literal> object"
msgstr "L'oggetto <literal>Manager</literal>"
#. Tag: para
-#: extend.xml:64
+#: extend.xml:155
#, fuzzy, no-c-format
msgid ""
-"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object. 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 "
@@ -123,27 +300,26 @@
"Beans."
#. Tag: programlisting
-#: extend.xml:69
+#: extend.xml:161
#, no-c-format
msgid ""
-"<![CDATA[public interface Manager {\n"
+"<![CDATA[public interface BeanManager {\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(Type beanType, Annotation... qualifiers);\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"
-" public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
-"Annotation... bindings);\n"
+" public void fireEvent(Object event, Annotation... qualifiers);\n"
+" public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, "
+"Annotation... qualifiers);\n"
" public List<Decorator<?>> resolveDecorators(Set<Type> types, "
-"Annotation... bindings);\n"
+"Annotation... qualifiers);\n"
" public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
"Annotation... interceptorBindings);\n"
" public boolean isScope(Class<? extends Annotation> annotationType);\n"
@@ -152,11 +328,11 @@
" public boolean isPassivatingScope(Class<? extends Annotation> "
"annotationType);\n"
" public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
-" public boolean isInterceptorBindingType(Class<? extends Annotation> "
+" public boolean isInterceptorBinding(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> getInterceptorBindingDefinition(Class<? extends "
+"Annotation> bindingType);\n"
" public Set<Annotation> getStereotypeDefinition(Class<? extends "
"Annotation> stereotype);\n"
" public Context getContext(Class<? extends Annotation> scopeType);\n"
@@ -170,21 +346,22 @@
msgstr ""
#. Tag: para
-#: extend.xml:71
+#: extend.xml:163
#, fuzzy, no-c-format
msgid ""
-"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+"Any bean or other Java EE component which supports injection 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:73
+#: extend.xml:166
#, fuzzy, no-c-format
-msgid "@Inject BeanManager beanManager"
+msgid "@Inject BeanManager beanManager;"
msgstr "@Current Manager manager"
#. Tag: para
-#: extend.xml:75
+#: extend.xml:168
#, no-c-format
msgid ""
"Java EE components may obtain an instance of <literal>BeanManager</literal> "
@@ -194,7 +371,7 @@
msgstr ""
#. Tag: para
-#: extend.xml:81
+#: extend.xml:174
#, fuzzy, no-c-format
msgid ""
"Let's study some of the interfaces exposed by the <literal>BeanManager</"
@@ -204,25 +381,99 @@
"<literal>Manager</literal>."
#. Tag: title
-#: extend.xml:86
+#: extend.xml:179
#, fuzzy, no-c-format
+msgid "The <literal>InjectionTarget</literal> interface"
+msgstr "L'interfaccia <literal>Context</literal>"
+
+#. Tag: para
+#: extend.xml:181
+#, no-c-format
+msgid ""
+"The first thing that a framework developer is going to look for in the "
+"portable extension SPI is a way to inject CDI beans into objects which are "
+"not under the control of CDI. The <literal>InjectionTarget</literal> "
+"interface makes this very easy."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:188
+#, no-c-format
+msgid ""
+"We recommend that frameworks let CDI take over the job of actually "
+"instantiating the framework-controlled objects. That way, the framework-"
+"controlled objects can take advantage of constructor injection. However, if "
+"the framework requires use of a constructor with a special signature, the "
+"framework will need to instatiate the object itself, and so only method and "
+"field injection will be supported."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[//get the BeanManager from JNDI\n"
+"BeanManager beanManager = (BeanManager) new InitialContext().lookup(\"java:"
+"comp/BeanManager\");\n"
+"\n"
+"//CDI uses an AnnotatedType object to read the annotations of a class\n"
+"AnnotatedType<SomeFrameworkComponent> type = beanManager.createAnnotatedType"
+"(SomeFrameworkComponent.class);\n"
+"\n"
+"//The extension uses an InjectionTarget to delegate instantiation, "
+"dependency injection \n"
+"//and lifecycle callbacks to the CDI container\n"
+"InjectionTarget<SomeFrameworkComponent> it = beanManager."
+"createInjectionTarget(type);\n"
+"\n"
+"//each instance needs its own CDI CreationalContext\n"
+"CreationalContext ctx = beanManager.createCreationalContext(null);\n"
+"\n"
+"//instantiate the framework component and inject its dependencies\n"
+"SomeFrameworkComponent instance = it.produce(ctx); //call the constructor\n"
+"it.inject(instance, ctx); //call initializer methods and perform field "
+"injection\n"
+"it.postConstruct(instance); //call the @PostConstruct method\n"
+"\n"
+"...\n"
+"\n"
+"//destroy the framework component instance and clean up dependent objects\n"
+"it.preDestroy(instance); //call the @PreDestroy method\n"
+"it.dispose(instance); //it is now safe to discard the instance\n"
+"ctx.release(); //clean up dependent objects\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:201
+#, fuzzy, no-c-format
msgid "The <literal>Bean</literal> interface"
msgstr "L'interfaccia <literal>Context</literal>"
#. Tag: para
-#: extend.xml:88
+#: extend.xml:203
#, 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."
+"<literal>BeanManager</literal> object for every bean in the application. "
+"There are even <literal>Bean</literal> objects representing interceptors, "
+"decorators and producer methods."
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: para
+#: extend.xml:210
+#, no-c-format
+msgid ""
+"The <literal>Bean</literal> interface exposes all the interesting things we "
+"dicussed in <xref linkend=\"bean-anatomy\"/>."
+msgstr ""
+
#. Tag: programlisting
-#: extend.xml:94
+#: extend.xml:215
#, no-c-format
msgid ""
"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
@@ -239,16 +490,28 @@
msgstr ""
#. Tag: para
-#: extend.xml:96
+#: extend.xml:217
+#, no-c-format
+msgid "There's an easy way to find out what beans exist in the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[Set<Bean<?>> allBeans = beanManager.getBeans(Obect.class, new "
+"AnnotationLiteral<Any>() {});]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:223
#, 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."
+"The <literal>Bean</literal> interface makes it possible for a portable "
+"extension 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 "
@@ -257,25 +520,480 @@
"possiamo usare la classe <literal>Bean</literal> per consentire ad oggetti "
"gestiti da altri framework di essere iniettati nei Web Beans."
+#. Tag: title
+#: extend.xml:233
+#, fuzzy, no-c-format
+msgid "Registering a <literal>Bean</literal>"
+msgstr "La classe <literal>Bean</literal>"
+
#. Tag: para
-#: extend.xml:104
-#, fuzzy, no-c-format
+#: extend.xml:235
+#, no-c-format
msgid ""
-"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
-"specification: <literal>Interceptor</literal> and <literal>Decorator</"
-"literal>."
+"The most common kind of CDI portable extension registers a bean (or beans) "
+"with the container."
msgstr ""
-"Ci sono due sottoclassi di <literal>Bean</literal> definite dalla specifica "
-"Web Beans: <literal>Interceptor</literal> e <literal>Decorator</literal>."
+#. Tag: para
+#: extend.xml:239
+#, no-c-format
+msgid ""
+"In this example, we make a framework class, <literal>SecurityManager</"
+"literal> available for injection. To make things a bit more interesting, "
+"we're going to delegate back to the container's <literal>InjectionTarget</"
+"literal> to perform instantiation and injection upon the "
+"<literal>SecurityManager</literal> instance."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:246
+#, no-c-format
+msgid ""
+"<![CDATA[public class SecurityManagerExtension implements Extension {\n"
+" \n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager "
+"bm) {\n"
+" \n"
+" //use this to read annotations of the class\n"
+" AnnotatedType<SecurityManager> at = bm.createAnnotatedType"
+"(SecurityManager.class); \n"
+"\n"
+" //use this to instantiate the class and inject dependencies\n"
+" final InjectionTarget<SecurityManager> it = bm.createInjectionTarget"
+"(at); \n"
+"\n"
+" abd.addBean( new Bean<SecurityManager>() {\n"
+"\n"
+" @Override\n"
+" public Class<?> getBeanClass() {\n"
+" return SecurityManager.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public String getName() {\n"
+" return \"securityManager\";\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getQualifiers() {\n"
+" Set<Annotation> qualifiers = new HashSet<Annotation>();\n"
+" qualifiers.add( new AnnotationLiteral<Default>() {} );\n"
+" qualifiers.add( new AnnotationLiteral<Any>() {} );\n"
+" return qualifiers;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<? extends Annotation> getScope() {\n"
+" return SessionScoped.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Class<? extends Annotation>> getStereotypes() {\n"
+" return Collections.emptySet();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypes() {\n"
+" Set<Type> types = new HashSet<Type>();\n"
+" types.add(SecurityManager.class);\n"
+" types.add(Object.class);\n"
+" return types;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAlternative() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isNullable() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public SecurityManager create(CreationalContext<SecurityManager> "
+"ctx) {\n"
+" SecurityManager instance = it.produce(ctx);\n"
+" it.inject(instance, ctx);\n"
+" it.postConstruct(instance);\n"
+" return instance;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void destroy(SecurityManager instance, \n"
+" CreationalContext<SecurityManager> ctx) {\n"
+" it.preDestroy(instance);\n"
+" it.dispose(instance);\n"
+" ctx.release();\n"
+" }\n"
+" \n"
+" } );\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:248
+#, no-c-format
+msgid ""
+"But a portable extension can also mess with beans that are discovered "
+"automatically by the container."
+msgstr ""
+
#. Tag: title
-#: extend.xml:112
+#: extend.xml:255
#, no-c-format
+msgid "Wrapping an <literal>AnnotatedType</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:257
+#, no-c-format
+msgid ""
+"One of the most interesting things that an extension class can do is process "
+"the annotations of a bean class <emphasis>before</emphasis> the container "
+"builds its metamodel."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:262
+#, no-c-format
+msgid ""
+"Let's start with an example of an extension that provides support for the "
+"use of <literal>@Named</literal> at the package level. The package-level "
+"name is used to qualify the EL names of all beans defined in that package. "
+"The portable extension uses the <literal>ProcessAnnotatedType</literal> "
+"event to wrap the <literal>AnnotatedType</literal> object and override the "
+"<literal>value()</literal> of the <literal>@Named</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[public class QualifiedNameExtension implements Extension {\n"
+"\n"
+" <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) {\n"
+"\n"
+" //wrap this to override the annotations of the class\n"
+" final AnnotatedType<X> at = pat.getAnnotatedType();\n"
+" \n"
+" AnnotatedType<X> wrapped = new AnnotatedType<X>() {\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedConstructor<X>> getConstructors() {\n"
+" return at.getConstructors();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedField<? super X>> getFields() {\n"
+" return at.getFields();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<X> getJavaClass() {\n"
+" return at.getJavaClass();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedMethod<? super X>> getMethods() {\n"
+" return at.getMethods();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public <T extends Annotation> T getAnnotation(final Class<T> "
+"annType) {\n"
+" if ( Named.class.equals(annType) ) {\n"
+" class NamedLiteral \n"
+" extends AnnotationLiteral<Named> \n"
+" implements Named {\n"
+" @Override\n"
+" public String value() {\n"
+" Package pkg = at.getClass().getPackage();\n"
+" String unqualifiedName = at.getAnnotation(Named."
+"class).value();\n"
+" final String qualifiedName;\n"
+" if ( pkg.isAnnotationPresent(Named.class) ) {\n"
+" qualifiedName = pkg.getAnnotation(Named."
+"class).value() \n"
+" + '.' + unqualifiedName;\n"
+" }\n"
+" else {\n"
+" qualifiedName = unqualifiedName;\n"
+" }\n"
+" return qualifiedName;\n"
+" }\n"
+" }\n"
+" return (T) new NamedLiteral();\n"
+" }\n"
+" else {\n"
+" return at.getAnnotation(annType);\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getAnnotations() {\n"
+" return at.getAnnotations();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Type getBaseType() {\n"
+" return at.getBaseType();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypeClosure() {\n"
+" return at.getTypeClosure();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annType) {\n"
+" return at.isAnnotationPresent(annType);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:272
+#, no-c-format
+msgid ""
+"Here's a second example, which adds the <literal>@Alternative</literal> "
+"annotation to any class which implements a certain <literal>Service</"
+"literal> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[class ServiceAlternativeExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" \n"
+" final AnnotatedType<T> type = pat.getAnnotatedType();\n"
+" \n"
+" if ( Service.class.isAssignableFrom( type.getJavaClass() ) ) {\n"
+" \n"
+" //if the class implements Service, make it an @Alternative\n"
+" AnnotatedType<T> wrapped = new AnnotatedType<T>() {\n"
+" \n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annotationType) {\n"
+" return annotationType.equals(Alternative.class) ? \n"
+" true : type.isAnnotationPresent(annotationType);\n"
+" }\n"
+" \n"
+" //remaining methods of AnnotatedType\n"
+" ...\n"
+" }\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:283
+#, no-c-format
+msgid ""
+"The <literal>AnnotatedType</literal> is not the only thing that can be "
+"wrapped by an extension."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:288
+#, no-c-format
+msgid "Wrapping an <literal>InjectionTarget</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:290
+#, no-c-format
+msgid ""
+"The <literal>InjectionTarget</literal> interface exposes operations for "
+"producing and disposing an instance of a component, injecting its "
+"dependencies and invoking its lifecycle callbacks. A portable extension may "
+"wrap the <literal>InjectionTarget</literal> for any Java EE component that "
+"supports injection, allowing it to intercept any of these operations when "
+"they are invoked by the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:297
+#, no-c-format
+msgid ""
+"Here's a CDI portable extension that reads values from properties files and "
+"configures fields of Java EE components, including servlets, EJBs, managed "
+"beans, interceptors and more. In this example, properties for a class such "
+"as <literal>org.mydomain.blog.Blogger</literal> go in a resource named "
+"<literal>org/mydomain/blog/Blogger.properties</literal>, and the name of a "
+"property must match the name of the field to be configured. So "
+"<literal>Blogger.properties</literal> could contain:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:305
+#, no-c-format
+msgid ""
+"firstName=Gavin\n"
+"lastName=King"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:307
+#, no-c-format
+msgid ""
+"The portable extension works by wrapping the containers "
+"<literal>InjectionTarget</literal> and setting field values from the "
+"<literal>inject()</literal> method."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:310
+#, no-c-format
+msgid ""
+"<![CDATA[public class ConfigExtension implements Extension {\n"
+"\n"
+" <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> "
+"pit) {\n"
+" \n"
+" //wrap this to intercept the component lifecycle\n"
+" final InjectionTarget<X> it = pit.getInjectionTarget();\n"
+" \n"
+" final Map<Field, Object> configuredValues = new HashMap<Field, "
+"Object>();\n"
+" \n"
+" //use this to read annotations of the class and its members\n"
+" AnnotatedType<X> at = pit.getAnnotatedType();\n"
+" \n"
+" //read the properties file\n"
+" String propsFileName = at.getClass().getSimpleName() + \".properties"
+"\";\n"
+" InputStream stream = at.getJavaClass().getResourceAsStream"
+"(propsFileName);\n"
+" if (stream!=null) {\n"
+" \n"
+" try {\n"
+" Properties props = new Properties();\n"
+" props.load(stream);\n"
+" for (Map.Entry<Object, Object> property : props.entrySet()) "
+"{\n"
+" String fieldName = property.getKey().toString();\n"
+" Object value = property.getValue();\n"
+" try {\n"
+" Field field = at.getJavaClass().getField"
+"(fieldName);\n"
+" field.setAccessible(true);\n"
+" if ( field.getType().isAssignableFrom( value.getClass"
+"() ) ) {\n"
+" configuredValues.put(field, value);\n"
+" }\n"
+" else {\n"
+" //TODO: do type conversion automatically\n"
+" pit.addDefinitionError( new InjectionException(\n"
+" \"field is not of type String: \" + "
+"field ) );\n"
+" }\n"
+" }\n"
+" catch (NoSuchFieldException nsfe) {\n"
+" pit.addDefinitionError(nsfe);\n"
+" }\n"
+" finally {\n"
+" stream.close();\n"
+" }\n"
+" }\n"
+" }\n"
+" catch (IOException ioe) {\n"
+" pit.addDefinitionError(ioe);\n"
+" }\n"
+" }\n"
+" \n"
+" InjectionTarget<X> wrapped = new InjectionTarget<X>() {\n"
+"\n"
+" @Override\n"
+" public void inject(X instance, CreationalContext<X> ctx) {\n"
+" it.inject(instance, ctx);\n"
+" \n"
+" //set the values onto the new instance of the component\n"
+" for (Map.Entry<Field, Object> configuredValue: "
+"configuredValues.entrySet()) {\n"
+" try {\n"
+" configuredValue.getKey().set(instance, "
+"configuredValue.getValue());\n"
+" }\n"
+" catch (Exception e) {\n"
+" throw new InjectionException(e);\n"
+" }\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void postConstruct(X instance) {\n"
+" it.postConstruct(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void preDestroy(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void dispose(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public X produce(CreationalContext<X> ctx) {\n"
+" return it.produce(ctx);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pit.setInjectionTarget(wrapped);\n"
+" \n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:312
+#, no-c-format
+msgid ""
+"There's a lot more to the portable extension SPI than what we've discussed "
+"here. Check out the CDI spec or Javadoc for more information. For now, we'll "
+"just mention one more extension point."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:320
+#, no-c-format
msgid "The <literal>Context</literal> interface"
msgstr "L'interfaccia <literal>Context</literal>"
#. Tag: para
-#: extend.xml:114
+#: extend.xml:322
#, fuzzy, no-c-format
msgid ""
"The <literal>Context</literal> interface supports addition of new scopes to "
@@ -285,7 +1003,7 @@
"ai Web Beans, o l'estensione di scope esistenti a nuovi ambienti."
#. Tag: programlisting
-#: extend.xml:119
+#: extend.xml:327
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface Context {\n"
@@ -307,7 +1025,7 @@
"}"
#. Tag: para
-#: extend.xml:121
+#: extend.xml:329
#, fuzzy, no-c-format
msgid ""
"For example, we might implement <literal>Context</literal> to add a business "
@@ -318,6 +1036,16 @@
"uno scope di tipo business process a Web Beans, o per aggiungere il supporto "
"allo scope di conversazione ad un'applicazione che impiega Wicket."
+#, fuzzy
+#~ 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>."
+
#~ msgid "Extending Web Beans"
#~ msgstr "Estendere i Web Beans"
@@ -440,9 +1168,6 @@
#~ "\n"
#~ "}]]>"
-#~ msgid "The <literal>Bean</literal> class"
-#~ msgstr "La classe <literal>Bean</literal>"
-
#~ msgid ""
#~ "public abstract class Bean<T> {\n"
#~ " \n"
Modified: doc/trunk/reference/it-IT/extensions.po
===================================================================
--- doc/trunk/reference/it-IT/extensions.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/extensions.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-23 21:21+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
"Language-Team: none\n"
@@ -23,7 +24,9 @@
#: extensions.xml:11
#, 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 Weld!"
+msgstr ""
+"Questi moduli sono utilizzabili su qualsiasi implementazione JSR-299, non "
+"solo Weld!"
#. Tag: title
#: extensions.xml:17
@@ -34,23 +37,32 @@
#. Tag: para
#: 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."
+msgid ""
+"Adding logging to your application is now even easier with simple injection "
+"of a logger object into any CDI bean. Simply create an injection point of "
+"type <literal>org.slf4j.Logger</literal> 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:26
-#, no-c-format
+#: extensions.xml:25
+#, fuzzy, no-c-format
msgid ""
-"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
-"import org.jboss.weld.log.Log;\n"
+"<![CDATA[import org.slf4j.Logger;\n"
+"import javax.inject.Inject;\n"
"\n"
"public class Checkout {\n"
-" private @Inject @Logger Log log;\n"
+" private @Inject Logger log;\n"
"\n"
" public void invoiceItems() {\n"
" ShoppingCart cart;\n"
" ...\n"
-" log.debug(\"Items invoiced for {0}\", cart);\n"
+" log.debug(\"Items invoiced for {}\", cart);\n"
" }\n"
"}]]>"
msgstr ""
@@ -68,25 +80,72 @@
"}]]>"
#. Tag: para
-#: 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."
+#: extensions.xml:27
+#, no-c-format
+msgid ""
+"The example shows how objects can be interpolated into a message. If you use "
+"this approach, you do not need to surround a call to the logger with a "
+"condition like <literal>if ( log.isDebugEnabled() )</literal> to avoid "
+"string concatenation."
+msgstr ""
#. Tag: para
-#: extensions.xml:41
+#: extensions.xml:34
#, 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>."
+msgid ""
+"You can add Weld logging 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:46
+#: extensions.xml:39
#, 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 ""
+"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à."
+#, fuzzy
+#~ 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."
+
#~ 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/gettingstarted.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -155,9 +155,9 @@
#: gettingstarted.xml:83
#, no-c-format
msgid ""
-"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"To deploy the examples to JBoss AS, you'll need <ulink url=\"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="
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink url="
"\"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 "
@@ -191,7 +191,7 @@
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."
+"<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:"
@@ -268,21 +268,24 @@
#, no-c-format
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 "
+"<ulink url=\"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
-#, no-c-format
+#, fuzzy, no-c-format
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"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>)."
#. Tag: para
#: gettingstarted.xml:152
@@ -368,7 +371,7 @@
#, 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/"
+"bored, read the log messages), and visit <ulink url=\"http://localhost:8080/"
"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
"pseudo-translating."
msgstr ""
@@ -404,10 +407,10 @@
#: gettingstarted.xml:221
#, no-c-format
msgid ""
-"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"To deploy the examples to GlassFish, you'll need the final <ulink url="
"\"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/"
+"download a <ulink url=\"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, "
@@ -468,7 +471,7 @@
#: gettingstarted.xml:255
#, no-c-format
msgid ""
-"You deploy applications to GlassFish using the <ulink src=\"http://"
+"You deploy applications to GlassFish using the <ulink url=\"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 "
@@ -486,14 +489,14 @@
#, no-c-format
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 "
+"URL <ulink url=\"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://"
+"start it. You can see the examples running at either <ulink url=\"http://"
"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
-"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"ulink> or <ulink url=\"http://localhost:7070/weld-translator\">http://"
"localhost:7070/weld-translator</ulink>, depending on which example you "
"deployed."
msgstr ""
@@ -538,7 +541,7 @@
#, 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."
+"need to download Tomcat 6.0.18 or later from <ulink url=\"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."
@@ -688,7 +691,7 @@
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>!"
msgstr ""
@@ -877,7 +880,7 @@
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://"
+"URL: <ulink url=\"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 ""
@@ -957,7 +960,7 @@
"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"
+"application at the following local URL: <ulink url=\"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 ""
Modified: doc/trunk/reference/it-IT/injection.po
===================================================================
--- doc/trunk/reference/it-IT/injection.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/injection.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -567,12 +567,55 @@
#. Tag: title
#: injection.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"The built-in qualifiers <literal>@Default</literal> and <literal>@Any</"
+"literal>"
+msgstr ""
+"Semplici Web Bean supportano soltanto le callback <literal>@PostConstruct</"
+"literal> e <literal>@PreDestroy</literal>."
+
+#. Tag: para
+#: injection.xml:218
#, no-c-format
+msgid ""
+"Whenever a bean or injection point does not explicitly declare a qualifier, "
+"the container assumes the qualifier <literal>@Default</literal>. From time "
+"to time, you'll need to decare an injection point without specifying a "
+"qualifier. There's a qualifier for that too. All beans have the qualifier "
+"<literal>@Any</literal>. Therefore, by explicitly specifying <literal>@Any</"
+"literal> at an injection point, you suppress the default qualifier, without "
+"otherwise restricting the beans that are eligible for injection."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:225
+#, no-c-format
+msgid ""
+"This is especially useful if you want to iterate over all beans with a "
+"certain bean type. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:226
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject \n"
+"void initServices(@Any Instance<Service> services) { \n"
+" for (Service service: services) {\n"
+" service.init();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: injection.xml:232
+#, no-c-format
msgid "Qualifiers with members"
msgstr ""
#. Tag: para
-#: injection.xml:218
+#: injection.xml:234
#, no-c-format
msgid ""
"Java annotations can have members. We can use annotation members to further "
@@ -583,7 +626,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:224
+#: injection.xml:240
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -601,14 +644,14 @@
"}]]>"
#. Tag: para
-#: injection.xml:226
+#: injection.xml:242
#, no-c-format
msgid ""
"Then we select one of the possible member values when appling the qualifier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:230
+#: injection.xml:246
#, fuzzy, no-c-format
msgid ""
"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
@@ -617,17 +660,17 @@
# qui e altrove, membro va bene?
#. Tag: para
-#: injection.xml:232
+#: injection.xml:248
#, 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>."
+"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
+#: injection.xml:253
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -635,7 +678,7 @@
"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
"public @interface PayBy {\n"
" PaymentMethod value();\n"
-" @NonBinding String comment() default \"\";\n"
+" @Nonbinding String comment() default \"\";\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -646,19 +689,19 @@
"}]]>"
#. Tag: title
-#: injection.xml:242
+#: injection.xml:258
#, no-c-format
msgid "Multiple qualifiers"
msgstr ""
#. Tag: para
-#: injection.xml:244
+#: injection.xml:260
#, 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:248
+#: injection.xml:264
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
@@ -667,7 +710,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:250
+#: injection.xml:266
#, fuzzy, no-c-format
msgid ""
"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
@@ -677,7 +720,7 @@
"binding annotation sarebbe candidato ad essere iniettato."
#. Tag: programlisting
-#: injection.xml:255
+#: injection.xml:271
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Synchronous @Reliable\n"
@@ -692,13 +735,13 @@
"}]]>"
#. Tag: title
-#: injection.xml:260
+#: injection.xml:276
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: injection.xml:262
+#: injection.xml:278
#, no-c-format
msgid ""
"Alternatives are beans whose implementation is specific to a particular "
@@ -708,7 +751,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:266
+#: injection.xml:282
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
@@ -722,7 +765,7 @@
"}]]>"
#. Tag: para
-#: injection.xml:268
+#: injection.xml:284
#, no-c-format
msgid ""
"By default, <literal>@Alternative</literal> beans are disabled. We need to "
@@ -732,7 +775,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:274
+#: injection.xml:290
#, no-c-format
msgid ""
"<![CDATA[<beans\n"
@@ -748,7 +791,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:276
+#: injection.xml:292
#, no-c-format
msgid ""
"When an ambiguous dependency exists at an injection point, the container "
@@ -758,13 +801,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:285
+#: injection.xml:301
#, fuzzy, no-c-format
msgid "Fixing unsatisfied and ambiguous dependencies"
msgstr "Risoluzione di dipendenze non soddisfatte"
#. Tag: para
-#: injection.xml:287
+#: injection.xml:303
#, fuzzy, no-c-format
msgid ""
"The typesafe resolution algorithm fails when, after considering the "
@@ -781,7 +824,7 @@
"iniettare."
#. Tag: para
-#: injection.xml:294
+#: injection.xml:310
#, no-c-format
msgid ""
"During the course of your development, you're going to encounter this "
@@ -789,13 +832,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:298
+#: injection.xml:314
#, no-c-format
msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:304
+#: injection.xml:320
#, no-c-format
msgid ""
"create a bean which implements the bean type and has all the qualifier types "
@@ -803,7 +846,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:309
+#: injection.xml:325
#, no-c-format
msgid ""
"make sure that the bean you already have is in the classpath of the module "
@@ -811,7 +854,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:314
+#: injection.xml:330
#, no-c-format
msgid ""
"explicitly enable an <literal>@Alternative</literal> bean that implements "
@@ -820,13 +863,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:321
+#: injection.xml:337
#, no-c-format
msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:327
+#: injection.xml:343
#, no-c-format
msgid ""
"introduce a qualifier to distinguish between the two implementations of the "
@@ -834,14 +877,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:332
+#: injection.xml:348
#, no-c-format
msgid ""
"disable one of the beans by annotating it <literal>@Alternative</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:337
+#: injection.xml:353
#, no-c-format
msgid ""
"move one of the implementations to a module that is not in the classpath of "
@@ -849,7 +892,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:343
+#: injection.xml:359
#, no-c-format
msgid ""
"disable one of two <literal>@Alternative</literal> beans that are trying to "
@@ -857,10 +900,10 @@
msgstr ""
#. Tag: para
-#: injection.xml:350
+#: injection.xml:366
#, no-c-format
msgid ""
-"See <ulink src=\"http://sfwk.org/Documentation/"
+"See <ulink url=\"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 "
@@ -868,13 +911,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:358
+#: injection.xml:374
#, no-c-format
msgid "Just remember: \"There can be only one.\""
msgstr ""
#. Tag: para
-#: injection.xml:361
+#: injection.xml:377
#, no-c-format
msgid ""
"On the other hand, if you really do have an optional or multivalued "
@@ -883,7 +926,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:366
+#: injection.xml:382
#, fuzzy, no-c-format
msgid ""
"Now there's one more issue you need to be aware of when using the dependency "
@@ -893,13 +936,13 @@
"la dependency injection in Web Beans."
#. Tag: title
-#: injection.xml:373
+#: injection.xml:389
#, no-c-format
msgid "Client proxies"
msgstr "Client proxy"
#. Tag: para
-#: injection.xml:375
+#: injection.xml:391
#, fuzzy, no-c-format
msgid ""
"Clients of an injected bean do not usually hold a direct reference to a bean "
@@ -910,7 +953,7 @@
"riferimento diretto all'istanza del Web Bean."
#. Tag: para
-#: injection.xml:380
+#: injection.xml:396
#, fuzzy, no-c-format
msgid ""
"Imagine that a bean bound to the application scope held a direct reference "
@@ -926,7 +969,7 @@
# con scope sessione andrebbe meglio tardotto con->che sta in sessione (e zosì per tutte le situazioni analoghe?)?
#. Tag: para
-#: injection.xml:386
+#: injection.xml:402
#, fuzzy, no-c-format
msgid ""
"Now imagine that a bean bound to the session scope holds a direct reference "
@@ -943,7 +986,7 @@
"dovrebbe essere serializzato insieme al Web Bean con scope sessione!"
#. Tag: para
-#: injection.xml:393
+#: injection.xml:409
#, fuzzy, no-c-format
msgid ""
"Therefore, unless a bean has the default scope <literal>@Dependent</"
@@ -965,7 +1008,7 @@
"senza serializzare ricorsivamente altri Web Beans che siano stati iniettati."
#. Tag: para
-#: injection.xml:401
+#: injection.xml:417
#, fuzzy, no-c-format
msgid ""
"Unfortunately, due to limitations of the Java language, some Java types "
@@ -981,7 +1024,7 @@
"iniezione non può essere gestito tramite proxy."
#. Tag: para
-#: injection.xml:407
+#: injection.xml:423
#, fuzzy, no-c-format
msgid "The following Java types cannot be proxied by the container:"
msgstr ""
@@ -989,7 +1032,7 @@
"Web Bean:"
#. Tag: para
-#: injection.xml:411
+#: injection.xml:427
#, fuzzy, no-c-format
msgid ""
"classes which don't have a non-private constructor with no parameters, and"
@@ -998,7 +1041,7 @@
"parametri, e"
#. Tag: para
-#: injection.xml:414
+#: injection.xml:430
#, no-c-format
msgid ""
"classes which are declared <literal>final</literal> or have a "
@@ -1008,28 +1051,52 @@
"<literal>final</literal>,"
#. Tag: para
-#: injection.xml:419
+#: injection.xml:435
#, no-c-format
msgid "arrays and primitive types."
msgstr "array e tipi primitivi."
#. Tag: para
-#: injection.xml:423
-#, fuzzy, no-c-format
+#: injection.xml:439
+#, 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 "
+"It's usually very easy to fix an unproxyable dependency problem. If an "
+"injection point of type <literal>X</literal> results in an unproxyable "
+"dependency, simply:"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:446
+#, no-c-format
+msgid "add a constructor with no parameters to <literal>X</literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:451
+#, no-c-format
+msgid ""
+"change the type of the injection point to <literal>Instance<X></"
+"literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:456
+#, no-c-format
+msgid ""
+"introduce an interface <literal>Y</literal>, implemented by the injected "
+"bean, and change the type of the injection point to <literal>Y</literal>, or"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:462
+#, no-c-format
+msgid ""
+"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: para
-#: injection.xml:430
+#: injection.xml:469
#, no-c-format
msgid ""
"A future release of Weld will likely support a non-standard workaround for "
@@ -1037,7 +1104,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:437
+#: injection.xml:476
#, no-c-format
msgid ""
"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
@@ -1045,7 +1112,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:442
+#: injection.xml:481
#, no-c-format
msgid ""
"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
@@ -1053,19 +1120,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:448
+#: injection.xml:487
#, no-c-format
msgid "But we didn't get around to implementing this yet."
msgstr ""
#. Tag: title
-#: injection.xml:457
+#: injection.xml:496
#, 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:459
+#: injection.xml:498
#, no-c-format
msgid ""
"In certain situations, injection is not the most convenient way to obtain a "
@@ -1073,13 +1140,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:466
+#: injection.xml:505
#, no-c-format
msgid "the bean type or qualifiers vary dynamically at runtime, or"
msgstr ""
#. Tag: para
-#: injection.xml:471
+#: injection.xml:510
#, no-c-format
msgid ""
"depending upon the deployment, there may be no bean which satisfies the type "
@@ -1087,14 +1154,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:476
+#: injection.xml:515
#, no-c-format
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:482
+#: injection.xml:521
#, fuzzy, no-c-format
msgid ""
"In these situations, the application may obtain an instance of the interface "
@@ -1104,13 +1171,13 @@
"literal> attraverso iniezione:"
#. Tag: programlisting
-#: injection.xml:487
+#: injection.xml:526
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:489
+#: injection.xml:528
#, fuzzy, no-c-format
msgid ""
"The <literal>get()</literal> method of <literal>Instance</literal> produces "
@@ -1120,25 +1187,25 @@
"<literal>@Staging</literal> per i test"
#. Tag: programlisting
-#: injection.xml:493
+#: injection.xml:532
#, fuzzy, no-c-format
msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:495
+#: injection.xml:534
#, no-c-format
msgid "Qualifiers can be specified in one of two ways:"
msgstr ""
#. Tag: para
-#: injection.xml:501
+#: injection.xml:540
#, no-c-format
msgid "by annotating the <literal>Instance</literal> injection point, or"
msgstr ""
#. Tag: para
-#: injection.xml:504
+#: injection.xml:543
#, fuzzy, no-c-format
msgid ""
"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
@@ -1148,13 +1215,13 @@
"literal> e <literal>@PreDestroy</literal>."
#. Tag: para
-#: injection.xml:508
+#: injection.xml:547
#, no-c-format
msgid "Specifying the qualifiers at the injection point is much, much easier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:512
+#: injection.xml:551
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
@@ -1163,7 +1230,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:514
+#: injection.xml:553
#, no-c-format
msgid ""
"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
@@ -1171,7 +1238,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:519
+#: injection.xml:558
#, no-c-format
msgid ""
"Alternatively, we can specify the qualifier dynamically. First, we add the "
@@ -1180,14 +1247,14 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:524
+#: injection.xml:563
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:526
+#: injection.xml:565
#, no-c-format
msgid ""
"Next, we need to obtain an instance of our qualifier type. Since annotatons "
@@ -1198,7 +1265,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:533
+#: injection.xml:572
#, fuzzy, no-c-format
msgid ""
"<![CDATA[abstract class AsynchronousQualifier\n"
@@ -1209,13 +1276,13 @@
" implements CreditCard {}]]>"
#. Tag: para
-#: injection.xml:535
+#: injection.xml:574
#, no-c-format
msgid "In some cases, we can use an anonymous class:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:539
+#: injection.xml:578
#, fuzzy, no-c-format
msgid ""
"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
@@ -1227,14 +1294,14 @@
"AnnotationLiteral<CreditCard>(){});]]>"
#. Tag: para
-#: injection.xml:542
+#: injection.xml:581
#, no-c-format
msgid ""
"We can't use an anonymous class to implement a qualifier type with members."
msgstr ""
#. Tag: para
-#: injection.xml:547
+#: injection.xml:586
#, no-c-format
msgid ""
"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
@@ -1242,7 +1309,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:551
+#: injection.xml:590
#, no-c-format
msgid ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
@@ -1252,13 +1319,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:556
+#: injection.xml:595
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
msgstr "L'oggetto <literal>InjectionPoint</literal>"
#. Tag: para
-#: injection.xml:558
+#: injection.xml:597
#, fuzzy, no-c-format
msgid ""
"There are certain kinds of dependent objects (beans with scope "
@@ -1272,7 +1339,7 @@
"devono. Per esempio:"
#. Tag: para
-#: injection.xml:564
+#: injection.xml:603
#, no-c-format
msgid ""
"The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1282,7 +1349,7 @@
"dell'oggetto che lo contiene."
#. Tag: para
-#: injection.xml:568
+#: injection.xml:607
#, no-c-format
msgid ""
"Injection of a HTTP parameter or header value depends upon what parameter or "
@@ -1292,7 +1359,7 @@
"parametro o dello header specificato nel punto di iniezione."
#. Tag: para
-#: injection.xml:572
+#: injection.xml:611
#, no-c-format
msgid ""
"Injection of the result of an EL expression evaluation depends upon the "
@@ -1302,7 +1369,7 @@
"specificata nel punto di iniezione."
#. Tag: para
-#: injection.xml:577
+#: injection.xml:616
#, fuzzy, no-c-format
msgid ""
"A bean with scope <literal>@Dependent</literal> may inject an instance of "
@@ -1314,7 +1381,7 @@
"riguardanti il punto di iniezione cui appartiene."
#. Tag: para
-#: injection.xml:581
+#: injection.xml:620
#, no-c-format
msgid ""
"Let's look at an example. The following code is verbose, and vulnerable to "
@@ -1324,13 +1391,13 @@
"di refactoring:"
#. Tag: programlisting
-#: injection.xml:584
+#: injection.xml:623
#, 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:586
+#: injection.xml:625
#, no-c-format
msgid ""
"This clever little producer method lets you inject a JDK <literal>Logger</"
@@ -1341,7 +1408,7 @@
"di log:"
#. Tag: programlisting
-#: injection.xml:589
+#: injection.xml:628
#, no-c-format
msgid ""
"<![CDATA[class LogFactory {\n"
@@ -1363,19 +1430,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:591
+#: injection.xml:630
#, no-c-format
msgid "We can now write:"
msgstr "Ora è possibile scrivere:"
#. Tag: programlisting
-#: injection.xml:593
+#: injection.xml:632
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Logger log;]]>"
msgstr "<![CDATA[@Current Logger log;]]>"
#. Tag: para
-#: injection.xml:595
+#: injection.xml:634
#, fuzzy, no-c-format
msgid ""
"Not convinced? Then here's a second example. To inject HTTP parameters, we "
@@ -1385,14 +1452,14 @@
"è necessario definire un tipo di binding:"
#. Tag: programlisting
-#: injection.xml:598
-#, no-c-format
+#: injection.xml:637
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@BindingType\n"
"@Retention(RUNTIME)\n"
"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
"public @interface HttpParam {\n"
-" @NonBinding public String value();\n"
+" @Nonbinding public String value();\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -1403,7 +1470,7 @@
"}]]>"
#. Tag: para
-#: injection.xml:600
+#: injection.xml:639
#, fuzzy, no-c-format
msgid "We would use this qualifier type at injection points as follows:"
msgstr ""
@@ -1411,7 +1478,7 @@
"iniezione in questo modo:"
#. Tag: programlisting
-#: injection.xml:602
+#: injection.xml:641
#, no-c-format
msgid ""
"<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1421,21 +1488,21 @@
"@HttpParam(\"password\") String password;]]>"
#. Tag: para
-#: injection.xml:604
+#: injection.xml:643
#, no-c-format
msgid "The following producer method does the work:"
msgstr "Il seguente metodo produttore esegue il lavoro:"
#. Tag: programlisting
-#: injection.xml:606
-#, no-c-format
+#: injection.xml:645
+#, fuzzy, 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.getAnnotated().getAnnotation(HttpParam."
+"class).value());\n"
" }\n"
"\n"
"}]]>"
@@ -1451,12 +1518,12 @@
"}]]>"
#. Tag: para
-#: injection.xml:608
+#: injection.xml:647
#, 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>)"
+"<literal>@Nonbinding.</literal>)"
msgstr ""
"(Occorre notare che il membro <literal>value()</literal> dell'annotazione "
"<literal>HttpParam</literal> viene ignorato dal manager Web Bean poiché è "
@@ -1464,7 +1531,7 @@
# di sistema o precostituito ?
#. Tag: para
-#: injection.xml:611
+#: injection.xml:650
#, fuzzy, no-c-format
msgid ""
"The container provides a built-in bean that implements the "
@@ -1474,15 +1541,17 @@
"l'interfaccia <literal>InjectionPoint</literal>:"
#. Tag: programlisting
-#: injection.xml:614
-#, no-c-format
+#: injection.xml:653
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface InjectionPoint { \n"
-" public Object getInstance(); \n"
-" public Bean<?> getBean(); \n"
-" public Member getMember(): \n"
-" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
-" public Set<T extends Annotation> getAnnotations(); \n"
+" public Type getType();\n"
+" public Set<Annotation> getQualifiers();\n"
+" public Bean<?> getBean();\n"
+" public Member getMember();\n"
+" public Annotated getAnnotated();\n"
+" public boolean isDelegate();\n"
+" public boolean isTransient();\n"
"}]]>"
msgstr ""
"<![CDATA[public interface InjectionPoint { \n"
@@ -1493,6 +1562,19 @@
" public Set<T extends Annotation> getAnnotations(); \n"
"}]]>"
+#, fuzzy
+#~ 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>."
+
# dependency injection va lascaita in inglese, non ricordo?
#~ msgid ""
#~ "Web Beans supports three primary mechanisms for dependency injection:"
Modified: doc/trunk/reference/it-IT/interceptors.po
===================================================================
--- doc/trunk/reference/it-IT/interceptors.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/interceptors.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -479,7 +479,7 @@
"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:"
+"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 "
@@ -493,7 +493,7 @@
"@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"
Modified: doc/trunk/reference/it-IT/next.po
===================================================================
--- doc/trunk/reference/it-IT/next.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/next.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -25,10 +25,10 @@
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 "
+"remains the authority for information on CDI. The spec is 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-"
+"is available on the <ulink url=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
"299 page</ulink> at the JCP website."
msgstr ""
@@ -36,9 +36,9 @@
#: next.xml:14
#, fuzzy, no-c-format
msgid ""
-"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"The CDI reference implementation, Weld, is being developed at the <ulink url="
"\"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."
+"team and the CDI spec lead blog at <ulink url=\"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 "
@@ -54,9 +54,9 @@
#: next.xml:22
#, no-c-format
msgid ""
-"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"We encourage you to follow the <ulink url=\"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 url=\"http://seamframework.org/Weld/Development\">development</"
"ulink>. If you are reading this guide, you likely have something to offer."
msgstr ""
@@ -73,7 +73,7 @@
#: next.xml:35
#, no-c-format
msgid ""
-"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"Checkout source from <ulink url=\"http://anonsvn.jboss.org/repos/weld/doc/"
"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
"ulink> using SVN"
msgstr ""
@@ -90,8 +90,9 @@
#: 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)."
+"Edit the <literal>pom.xml</literal> file in the root of the checkout and "
+"remove the \"<literal>-SNAPSHOT</literal>\" from the version element (so you "
+"don't have to build other Weld modules)."
msgstr ""
#. Tag: para
@@ -119,7 +120,8 @@
#, 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"
+"You can find the HTML version in <literal>target/docbook/publish/en-US/html</"
+"literal>."
msgstr ""
#. Tag: para
Modified: doc/trunk/reference/it-IT/part1.po
===================================================================
--- doc/trunk/reference/it-IT/part1.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/part1.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -20,7 +20,7 @@
#: part1.xml:14
#, fuzzy, no-c-format
msgid ""
-"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"The <ulink url=\"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 "
@@ -364,7 +364,7 @@
#: part1.xml:197
#, no-c-format
msgid ""
-"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"Finally, CDI is a <ulink url=\"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/it-IT/producermethods.po
===================================================================
--- doc/trunk/reference/it-IT/producermethods.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/producermethods.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -242,14 +242,27 @@
"<literal>PaymentStrategy</literal> restituito verrà associato al contesto di "
"sessione. Il metodo produttore non verrà più chiamato nella stessa sessione."
+#. Tag: para
+#: producermethods.xml:95
+#, no-c-format
+msgid ""
+"A producer method does <emphasis>not</emphasis> inherit the scope of the "
+"bean that declares the method. There are two different beans here: the "
+"producer method, and the bean which declares it. The scope of the producer "
+"method determines how often the method will be called, and the lifecycle of "
+"the objects returned by the method. The scope of the bean that declares the "
+"producer method determines the lifecycle of the object upon which the "
+"producer method is invoked."
+msgstr ""
+
#. Tag: title
-#: producermethods.xml:97
+#: producermethods.xml:107
#, no-c-format
msgid "Injection into producer methods"
msgstr "Iniezione nei metodi produttori"
#. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:109
#, no-c-format
msgid ""
"There's one potential problem with the code above. The implementations of "
@@ -265,7 +278,7 @@
"interceptor."
#. Tag: para
-#: producermethods.xml:106
+#: producermethods.xml:116
#, fuzzy, no-c-format
msgid ""
"If this isn't what we want, we can use dependency injection into the "
@@ -275,7 +288,7 @@
"nel metodo produttore per ottenere istanze Web Bean:"
#. Tag: programlisting
-#: producermethods.xml:111
+#: producermethods.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -303,7 +316,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:123
#, fuzzy, no-c-format
msgid ""
"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
@@ -325,7 +338,7 @@
"Bean dai metodi produttori!"
#. Tag: para
-#: producermethods.xml:122
+#: producermethods.xml:132
#, fuzzy, no-c-format
msgid ""
"There's at least three ways we could go about fixing this bug. We could "
@@ -341,7 +354,7 @@
"<literal>@Dependent</literal> o <literal>@RequestScoped</literal>."
#. Tag: para
-#: producermethods.xml:129
+#: producermethods.xml:139
#, fuzzy, no-c-format
msgid ""
"But a more common solution is to use the special <literal>@New</literal> "
@@ -351,19 +364,19 @@
"binding <literal>@New</literal>."
#. Tag: title
-#: producermethods.xml:134
+#: producermethods.xml:144
#, 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:136
+#: producermethods.xml:146
#, no-c-format
msgid "Consider the following producer method:"
msgstr "Si consideri il seguente metodo produttore:"
#. Tag: programlisting
-#: producermethods.xml:138
+#: producermethods.xml:148
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -395,7 +408,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:140
+#: producermethods.xml:150
#, no-c-format
msgid ""
"Then a new <emphasis>dependent</emphasis> instance of "
@@ -412,13 +425,13 @@
"<literal>Preferences</literal> non viene distrutto, cioè a fine sessione."
#. Tag: title
-#: producermethods.xml:150
+#: producermethods.xml:160
#, fuzzy, no-c-format
msgid "Disposer methods"
msgstr "Metodi produttori"
#. Tag: para
-#: producermethods.xml:152
+#: producermethods.xml:162
#, no-c-format
msgid ""
"Some producer methods return objects that require explicit destruction. For "
@@ -426,7 +439,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:157
+#: producermethods.xml:167
#, no-c-format
msgid ""
"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
@@ -435,7 +448,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:159
+#: producermethods.xml:169
#, no-c-format
msgid ""
"Destruction can be performed by a matching <emphasis>disposer method</"
@@ -443,7 +456,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:162
+#: producermethods.xml:172
#, no-c-format
msgid ""
"<![CDATA[void close(@Disposes Connection connection) {\n"
@@ -452,7 +465,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:164
+#: producermethods.xml:174
#, no-c-format
msgid ""
"The disposer method must have at least one parameter, annotated "
Modified: doc/trunk/reference/it-IT/resources.po
===================================================================
--- doc/trunk/reference/it-IT/resources.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/resources.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -66,6 +66,45 @@
#: resources.xml:33
#, no-c-format
msgid ""
+"The CDI specification uses the term <emphasis>resource</emphasis> to refer, "
+"generically, to any of the following kinds of object which might be "
+"available in the Java EE component environment:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:38
+#, no-c-format
+msgid ""
+"JDBC <literal>Datasource</literal>s, JMS <literal>Queue</literal>s, "
+"<literal>Topic</literal>s and <literal>ConnectionFactory</literal>s, "
+"JavaMail <literal>Session</literal>s and other transactional resources "
+"including JCA connectors,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"JPA <literal>EntityManager</literal>s and <literal>EntityManagerFactory</"
+"literal>s,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:46
+#, no-c-format
+msgid "remote EJBs, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid "web services"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:53
+#, 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>, "
@@ -73,7 +112,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:37
+#: resources.xml:57
#, no-c-format
msgid ""
"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
@@ -81,7 +120,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:39
+#: resources.xml:59
#, no-c-format
msgid ""
"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
@@ -90,7 +129,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:41
+#: resources.xml:61
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
@@ -98,7 +137,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:43
+#: resources.xml:63
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
@@ -106,7 +145,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:45
+#: resources.xml:65
#, no-c-format
msgid ""
"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
@@ -114,47 +153,69 @@
msgstr ""
#. Tag: para
-#: resources.xml:47
+#: resources.xml:67
#, no-c-format
msgid "The field may be static (but not final)."
msgstr ""
#. Tag: para
-#: resources.xml:49
+#: resources.xml:69
#, no-c-format
+msgid "A resource declaration really contains two pieces of information:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:73
+#, no-c-format
msgid ""
+"the JNDI name, EJB link, persistence unit name, or other metadata needed to "
+"obtain a reference to the resource from the component environment, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:77
+#, no-c-format
+msgid ""
+"the type and qualifiers that we will use to inject the reference into our "
+"beans."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:82
+#, 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</"
+"sense to declare your resources in a class annotated <literal>@Alternative</"
"literal>."
msgstr ""
#. Tag: title
-#: resources.xml:56
+#: resources.xml:90
#, no-c-format
msgid "Typesafe resource injection"
msgstr ""
#. Tag: para
-#: resources.xml:58
+#: resources.xml:92
#, no-c-format
msgid "These resources can now be injected in the usual way."
msgstr ""
#. Tag: programlisting
-#: resources.xml:62
+#: resources.xml:96
#, no-c-format
msgid "<![CDATA[@Inject Catalog catalog;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:63
+#: resources.xml:97
#, no-c-format
msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:64
+#: resources.xml:98
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManager "
@@ -162,7 +223,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:65
+#: resources.xml:99
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
@@ -170,13 +231,13 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:66
+#: resources.xml:100
#, no-c-format
msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
msgstr ""
#. Tag: para
-#: resources.xml:68
+#: resources.xml:102
#, no-c-format
msgid ""
"The bean type and qualifiers of the resource are determined by the producer "
@@ -184,7 +245,7 @@
msgstr ""
#. Tag: para
-#: resources.xml:72
+#: resources.xml:106
#, no-c-format
msgid ""
"It might seem like a pain to have to write these extra producer field "
@@ -196,25 +257,25 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:79
+#: resources.xml:113
#, no-c-format
msgid "@Inject @CustomerDatabase EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:81
+#: resources.xml:115
#, no-c-format
msgid "instead of"
msgstr ""
#. Tag: programlisting
-#: resources.xml:83
+#: resources.xml:117
#, no-c-format
msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:85
+#: resources.xml:119
#, 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/ri-spi.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -888,6 +888,19 @@
#. Tag: para
#: ri-spi.xml:497
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.ConversationAwareViewHandler</literal> as a "
+"delegating view handler."
+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:502
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -899,7 +912,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:504
+#: ri-spi.xml:509
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -909,7 +922,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:511 ri-spi.xml:557
+#: ri-spi.xml:516 ri-spi.xml:562
#, no-c-format
msgid ""
"There are a number of ways you can obtain the bean manager for the module. "
@@ -919,7 +932,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:518
+#: ri-spi.xml:523
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must register "
@@ -935,19 +948,19 @@
"venir registrato in modo sicuro per tutti i deploy dei servlet."
#. Tag: para
-#: ri-spi.xml:526
+#: ri-spi.xml:531
#, 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:533
+#: ri-spi.xml:538
#, fuzzy, no-c-format
msgid "<term>JSP</term>"
msgstr "<term>JSF</term>"
#. Tag: para
-#: ri-spi.xml:538
+#: ri-spi.xml:543
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must register "
@@ -960,7 +973,7 @@
"ciascuna applicazione Web Beans che usa Servlet."
#. Tag: para
-#: ri-spi.xml:543
+#: ri-spi.xml:548
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -971,7 +984,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:550
+#: ri-spi.xml:555
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -981,13 +994,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:567
+#: ri-spi.xml:572
#, no-c-format
msgid "Session Bean Interceptor"
msgstr "Session Bean Interceptor"
#. Tag: para
-#: ri-spi.xml:571
+#: ri-spi.xml:576
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into an EJB environment you must register "
@@ -1003,7 +1016,7 @@
"enterprise."
#. Tag: para
-#: ri-spi.xml:578
+#: ri-spi.xml:583
#, no-c-format
msgid ""
"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -1013,13 +1026,13 @@
"interceptor più interno allo stack per tutti gli EJB."
#. Tag: term
-#: ri-spi.xml:586
+#: ri-spi.xml:591
#, fuzzy, no-c-format
msgid "The <literal>weld-core.jar</literal>"
msgstr "<literal>webbeans-core.jar</literal>"
#. Tag: para
-#: ri-spi.xml:590
+#: ri-spi.xml:595
#, no-c-format
msgid ""
"Weld can reside on an isolated classloader, or on a shared classloader. If "
@@ -1031,7 +1044,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:596
+#: ri-spi.xml:601
#, no-c-format
msgid ""
"You can provide your own implementation of <literal>Singleton</literal> and "
@@ -1040,7 +1053,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:601
+#: ri-spi.xml:606
#, no-c-format
msgid ""
"Weld also provides an implementation of Thread Context Classloader per "
@@ -1048,13 +1061,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:608
+#: ri-spi.xml:613
#, no-c-format
msgid "Binding the manager in JNDI"
msgstr "Associare il manager a JNDI"
#. Tag: para
-#: ri-spi.xml:612
+#: ri-spi.xml:617
#, fuzzy, no-c-format
msgid ""
"You should bind the bean manager for the bean deployment archive into JNDI "
@@ -1070,13 +1083,13 @@
"resources.ManagerObjectFactory</literal>"
#. Tag: term
-#: ri-spi.xml:622
+#: ri-spi.xml:627
#, no-c-format
msgid "Performing CDI injection on Java EE component classes"
msgstr ""
#. Tag: para
-#: ri-spi.xml:626
+#: ri-spi.xml:631
#, no-c-format
msgid ""
"The CDI specification requires the container to provide injection into non-"
@@ -1088,7 +1101,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:634
+#: ri-spi.xml:639
#, no-c-format
msgid ""
"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
@@ -1099,7 +1112,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:641
+#: ri-spi.xml:646
#, no-c-format
msgid ""
"To help the integrator, Weld provides <literal>WeldManager."
@@ -1108,7 +1121,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:646
+#: ri-spi.xml:651
#, no-c-format
msgid ""
"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
@@ -1136,7 +1149,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:647
+#: ri-spi.xml:652
#, no-c-format
msgid ""
"The container may intersperse other operations between these calls. Further, "
@@ -1145,7 +1158,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:651
+#: ri-spi.xml:656
#, no-c-format
msgid ""
"When performing injections on EJBs you must use the Weld-defined SPI, "
@@ -1155,7 +1168,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:656
+#: ri-spi.xml:661
#, no-c-format
msgid ""
"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
Modified: doc/trunk/reference/it-IT/scopescontexts.po
===================================================================
--- doc/trunk/reference/it-IT/scopescontexts.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/scopescontexts.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -77,18 +77,23 @@
#: 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."
+"JPA entities aren't a great fit for this model. Entities have their whole "
+"own lifecycle and identity model which just doesn't map naturally to the "
+"model used in CDI. Therefore, we recommend against treating entities as CDI "
+"beans. You're certainly going to run into problems if you try to give an "
+"entity a scope other than the default scope <literal>@Dependent</literal>. "
+"The client proxy will get in the way if you try to pass an injected instance "
+"to the JPA <literal>EntityManager</literal>."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:41
+#: scopescontexts.xml:45
#, no-c-format
msgid "Scope types"
msgstr "Tipi di scope"
#. Tag: para
-#: scopescontexts.xml:43
+#: scopescontexts.xml:47
#, fuzzy, no-c-format
msgid ""
"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
@@ -99,7 +104,7 @@
"di scope."
#. Tag: programlisting
-#: scopescontexts.xml:48
+#: scopescontexts.xml:52
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ScopeType\n"
@@ -113,7 +118,7 @@
"public @interface ClusterScoped {}]]>"
#. Tag: para
-#: scopescontexts.xml:50
+#: scopescontexts.xml:54
#, fuzzy, no-c-format
msgid ""
"Of course, that's the easy part of the job. For this scope type to be "
@@ -129,7 +134,7 @@
"literal> è compito molto tecnico, inteso solo per lo sviluppo di framework."
#. Tag: para
-#: scopescontexts.xml:57
+#: scopescontexts.xml:61
#, fuzzy, no-c-format
msgid ""
"We can apply a scope type annotation to a bean implementation class to "
@@ -139,7 +144,7 @@
"implementazione Web Bean per specificare lo scope del Web Bean:"
#. Tag: programlisting
-#: scopescontexts.xml:61
+#: scopescontexts.xml:65
#, no-c-format
msgid ""
"<![CDATA[@ClusterScoped\n"
@@ -149,55 +154,55 @@
"public class SecondLevelCache { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:63
+#: scopescontexts.xml:67
#, 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:68
+#: scopescontexts.xml:72
#, no-c-format
msgid "Built-in scopes"
msgstr "Scope predefiniti"
#. Tag: para
-#: scopescontexts.xml:70
+#: scopescontexts.xml:74
#, fuzzy, no-c-format
msgid "CDI defines four built-in scopes:"
msgstr "Web Beans definisce quattro scope predefiniti:"
#. Tag: literal
-#: scopescontexts.xml:74
+#: scopescontexts.xml:78
#, no-c-format
msgid "@RequestScoped"
msgstr "@RequestScoped"
#. Tag: literal
-#: scopescontexts.xml:77
+#: scopescontexts.xml:81
#, no-c-format
msgid "@SessionScoped"
msgstr "@SessionScoped"
#. Tag: literal
-#: scopescontexts.xml:80
+#: scopescontexts.xml:84
#, no-c-format
msgid "@ApplicationScoped"
msgstr "@ApplicationScoped"
#. Tag: literal
-#: scopescontexts.xml:83
+#: scopescontexts.xml:87
#, no-c-format
msgid "@ConversationScoped"
msgstr "@ConversationScoped"
#. Tag: para
-#: scopescontexts.xml:87
+#: scopescontexts.xml:91
#, 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:91
+#: scopescontexts.xml:95
#, no-c-format
msgid ""
"any servlet request has access to active request, session and application "
@@ -207,51 +212,63 @@
"e applicazione e, in aggiunta"
#. Tag: para
-#: scopescontexts.xml:96
+#: scopescontexts.xml:100
#, 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:101
+#: scopescontexts.xml:105
#, no-c-format
msgid ""
-"A CDI extension can support the conversation scope for other frameworks as "
-"well."
+"A CDI extension can implement support for the conversation scope in other "
+"web frameworks."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:108
#, 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:108
+#: scopescontexts.xml:112
#, no-c-format
msgid "during invocations of EJB remote methods,"
msgstr "durante le invocazioni a metodi remoti EJB,"
#. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:115
+#, fuzzy, no-c-format
+msgid "during invocations of EJB asynchronous methods,"
+msgstr "durante le invocazioni a metodi remoti EJB,"
+
+#. Tag: para
+#: scopescontexts.xml:118
#, no-c-format
msgid "during EJB timeouts,"
msgstr "durante i timeout EJB,"
#. Tag: para
-#: scopescontexts.xml:114
-#, no-c-format
-msgid "during message delivery to a message-driven bean, and"
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
+msgid "during message delivery to a message-driven bean,"
msgstr "durante la consegna dei messaggi a bean message-drive, e"
#. Tag: para
-#: scopescontexts.xml:117
+#: scopescontexts.xml:124
+#, fuzzy, no-c-format
+msgid "during message delivery to a <literal>MessageListener</literal>, and"
+msgstr "durante la consegna dei messaggi a bean message-drive, e"
+
+#. Tag: para
+#: scopescontexts.xml:127
#, no-c-format
msgid "during web service invocations."
msgstr "durante invocazioni web service."
#. Tag: para
-#: scopescontexts.xml:121
+#: scopescontexts.xml:131
#, fuzzy, no-c-format
msgid ""
"If the application tries to invoke a bean with a scope that does not have an "
@@ -263,9 +280,18 @@
"lanciata a runtime dal manager Web Bean."
#. Tag: para
-#: scopescontexts.xml:126
+#: scopescontexts.xml:136
#, no-c-format
msgid ""
+"Managed beans with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal> must be serializable, since the "
+"container passivates the HTTP session from time to time."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:141
+#, no-c-format
+msgid ""
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
@@ -275,13 +301,13 @@
"Uno degli scope è comunque nuovo."
#. Tag: title
-#: scopescontexts.xml:134
+#: scopescontexts.xml:149
#, no-c-format
msgid "The conversation scope"
msgstr "Lo scope conversazione"
#. Tag: para
-#: scopescontexts.xml:136
+#: scopescontexts.xml:151
#, fuzzy, no-c-format
msgid ""
"The conversation scope is a bit like the traditional session scope in that "
@@ -295,13 +321,13 @@
"scope di sessione, lo scope di conversazione:"
#. Tag: para
-#: scopescontexts.xml:144
+#: scopescontexts.xml:159
#, no-c-format
msgid "is demarcated explicitly by the application, and"
msgstr "è demarcato esplicitamente dall'applicazione, e"
#. Tag: para
-#: scopescontexts.xml:147
+#: scopescontexts.xml:162
#, no-c-format
msgid ""
"holds state associated with a particular web browser tab in a JSF "
@@ -310,7 +336,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:154
+#: scopescontexts.xml:169
#, fuzzy, no-c-format
msgid ""
"A conversation represents a task—a unit of work from the point of view "
@@ -324,7 +350,7 @@
"contemporaneamente ci saranno più conversazioni."
#. Tag: para
-#: scopescontexts.xml:160
+#: scopescontexts.xml:175
#, fuzzy, no-c-format
msgid ""
"The conversation context is active during any JSF request. Most "
@@ -339,13 +365,13 @@
"running</emphasis>."
#. Tag: title
-#: scopescontexts.xml:167
+#: scopescontexts.xml:182
#, no-c-format
msgid "Conversation demarcation"
msgstr "Demarcazione della conversazione"
#. Tag: para
-#: scopescontexts.xml:169
+#: scopescontexts.xml:184
#, fuzzy, no-c-format
msgid ""
"CDI provides a built-in bean for controlling the lifecycle of conversations "
@@ -356,13 +382,13 @@
"ottenuto per iniezione:"
#. Tag: programlisting
-#: scopescontexts.xml:174
+#: scopescontexts.xml:189
#, fuzzy, no-c-format
msgid "@Inject Conversation conversation;"
msgstr "@Current Conversation conversation;"
#. Tag: para
-#: scopescontexts.xml:176
+#: scopescontexts.xml:191
#, no-c-format
msgid ""
"To promote the conversation associated with the current request to a long-"
@@ -377,7 +403,7 @@
"conversazione long-running, si chiami <literal>end()</literal>."
#. Tag: para
-#: scopescontexts.xml:182
+#: scopescontexts.xml:197
#, fuzzy, no-c-format
msgid ""
"In the following example, a conversation-scoped bean controls the "
@@ -387,7 +413,7 @@
"conversazione alla quale è associato:"
#. Tag: programlisting
-#: scopescontexts.xml:186
+#: scopescontexts.xml:201
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ConversationScoped @Stateful\n"
@@ -451,7 +477,7 @@
"}"
#. Tag: para
-#: scopescontexts.xml:188
+#: scopescontexts.xml:203
#, fuzzy, no-c-format
msgid ""
"This bean is able to control its own lifecycle through use of the "
@@ -463,13 +489,13 @@
"ciclo di vita che dipende completamente da un altro oggetto."
#. Tag: title
-#: scopescontexts.xml:196
+#: scopescontexts.xml:211
#, no-c-format
msgid "Conversation propagation"
msgstr "Propagazione della conversazione"
#. Tag: para
-#: scopescontexts.xml:198
+#: scopescontexts.xml:213
#, fuzzy, no-c-format
msgid ""
"The conversation context automatically propagates with any JSF faces request "
@@ -481,7 +507,7 @@
"con richiesta non-faces, per esempio, navigazione tramite un link."
#. Tag: para
-#: scopescontexts.xml:203
+#: scopescontexts.xml:218
#, fuzzy, no-c-format
msgid ""
"We can force the conversation to propagate with a non-faces request by "
@@ -500,13 +526,13 @@
"<literal>conversation</literal>."
#. Tag: para
-#: scopescontexts.xml:210
+#: scopescontexts.xml:225
#, no-c-format
msgid "Therefore, the following link propagates the conversation:"
msgstr "Quindi il seguente link propaga la conversazione:"
#. Tag: programlisting
-#: scopescontexts.xml:214
+#: scopescontexts.xml:229
#, no-c-format
msgid ""
"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -516,13 +542,13 @@
">"
#. Tag: para
-#: scopescontexts.xml:216
+#: scopescontexts.xml:231
#, no-c-format
msgid "It's probably better to use one of the link components in JSF 2:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:220
+#: scopescontexts.xml:235
#, no-c-format
msgid ""
"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
@@ -531,7 +557,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:223
+#: scopescontexts.xml:238
#, fuzzy, no-c-format
msgid ""
"The conversation context propagates across redirects, making it very easy to "
@@ -546,13 +572,13 @@
"aggiunge automaticamente un parametro di richiesta all'URL di redirect."
#. Tag: title
-#: scopescontexts.xml:233
+#: scopescontexts.xml:248
#, no-c-format
msgid "Conversation timeout"
msgstr "Timeout della conversazione"
#. Tag: para
-#: scopescontexts.xml:235
+#: scopescontexts.xml:250
#, fuzzy, no-c-format
msgid ""
"The container is permitted to destroy a conversation and all state held in "
@@ -570,7 +596,7 @@
"venga distrutta."
#. Tag: para
-#: scopescontexts.xml:242
+#: scopescontexts.xml:257
#, fuzzy, no-c-format
msgid ""
"The <literal>Conversation</literal> object provides a method to set the "
@@ -582,31 +608,127 @@
"di ignorare quest'impostazione."
#. Tag: programlisting
-#: scopescontexts.xml:247
+#: scopescontexts.xml:262
#, no-c-format
msgid "conversation.setTimeout(timeoutInMillis);"
msgstr "conversation.setTimeout(timeoutInMillis);"
#. Tag: title
-#: scopescontexts.xml:254
+#: scopescontexts.xml:269
+#, fuzzy, no-c-format
+msgid "The singleton pseudo-scope"
+msgstr "Pseudo-scope dipendente"
+
+#. Tag: para
+#: scopescontexts.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"In addition to the four built-in scopes, CDI also supports two "
+"<emphasis>pseudo-scopes</emphasis>. The first is the <emphasis>singleton "
+"pseudo-scope</emphasis>, which we specify using the annotation "
+"<literal>@Singleton</literal>."
+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:277
#, no-c-format
+msgid ""
+"Unlike the other scopes, which belong to the package <literal>javax."
+"enterprise.context</literal>, the <literal>@Singleton</literal> annotation "
+"is defined in the package <literal>javax.inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:283
+#, no-c-format
+msgid ""
+"You can guess what \"singleton\" means here. It means a bean that is "
+"instantiated once. Unfortunately, there's a little problem with this pseudo-"
+"scope. Beans with scope <literal>@Singleton</literal> don't have a proxy "
+"object. Clients hold a direct reference to the singleton instance. So we "
+"need to consider the case of a client that can be serialized, for example, "
+"any bean with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal>, any dependent object of a bean with "
+"scope <literal>@SessionScoped</literal> or <literal>@ConversationScoped</"
+"literal>, or any stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:292
+#, no-c-format
+msgid ""
+"Now, if the singleton instance is a simple, immutable, serializable object "
+"like a string, a number or a date, we probably don't mind too much if it "
+"gets duplicated via serialization. However, that makes it no stop being a "
+"true singleton, and we may as well have just declared it with the default "
+"scope."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:298
+#, no-c-format
+msgid ""
+"There are several ways to ensure that the singleton bean remains a singleton "
+"when its client gets serialized:"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:302
+#, no-c-format
+msgid ""
+"have the singleton bean implement <literal>writeResolve()</literal> and "
+"<literal>readReplace()</literal> (as defined by the Java serialization "
+"specification),"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:308
+#, no-c-format
+msgid ""
+"make sure the client keeps only a transient reference to the singleton bean, "
+"or"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:313
+#, no-c-format
+msgid ""
+"give the client a reference of type <literal>Instance<X></literal> "
+"where <literal>X</literal> is the bean type of the singleton bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:320
+#, no-c-format
+msgid ""
+"A fourth, better solution is to instead use <literal>@ApplicationScoped</"
+"literal>, allowing the container to proxy the bean, and take care of "
+"serialization problems automatically."
+msgstr ""
+
+#. Tag: title
+#: scopescontexts.xml:326
+#, no-c-format
msgid "The dependent pseudo-scope"
msgstr "Pseudo-scope dipendente"
#. Tag: para
-#: scopescontexts.xml:256
+#: scopescontexts.xml:328
#, fuzzy, no-c-format
msgid ""
-"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 "
-"bean which does not explicitly declare a scope type."
+"Finally, CDI features the so-called <emphasis>dependent pseudo-scope</"
+"emphasis>. This is the default scope for a 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:261
+#: scopescontexts.xml:333
#, fuzzy, no-c-format
msgid ""
"For example, this bean has the scope type <literal>@Dependent</literal>:"
@@ -615,24 +737,56 @@
"literal>:"
#. Tag: programlisting
-#: scopescontexts.xml:265
+#: scopescontexts.xml:337
#, no-c-format
msgid "<![CDATA[public class Calculator { ... }]]>"
msgstr "<![CDATA[public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:267
+#: scopescontexts.xml:339
#, no-c-format
msgid ""
-"An instances of a dependent bean is never shared between different clients "
-"or different injection points. It is strictly a <emphasis>dependent object</"
+"An instance 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:273
+#: scopescontexts.xml:345
+#, no-c-format
+msgid ""
+"If a Unified EL expression refers to a dependent bean by EL name, an "
+"instance of the bean is instantiated every time the expression is evaluated. "
+"The instance is not reused during any other expression evaluation."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:351
+#, no-c-format
+msgid ""
+"If you need to access a bean directly by EL name in a JSF page, you probably "
+"need to give it a scope other than <literal>@Dependent</literal>. Otherwise, "
+"any value that gets set to the bean by a JSF input will be lost immediately. "
+"That's why CDI features the <literal>@Model</literal> stereotype; it lets "
+"you give a bean a name, and set its scope to <literal>@RequestScoped</"
+"literal> in one stroke. If you need to access a bean that really "
+"<emphasis>has</emphasis> to have the scope <literal>@Dependent</literal> "
+"from a JSF page, inject it into a different bean, and expose it to EL via a "
+"getter method."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:361
+#, no-c-format
+msgid ""
+"Beans with scope <literal>@Dependent</literal> don't need a proxy object. "
+"The client holds a direct reference to its instance."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:366
#, fuzzy, no-c-format
msgid ""
"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
@@ -643,13 +797,13 @@
"con qualche altro tipo di scope."
#. Tag: title
-#: scopescontexts.xml:281
+#: scopescontexts.xml:374
#, fuzzy, no-c-format
msgid "The <literal>@New</literal> qualifier"
msgstr "Annotazione <literal>@New</literal>"
#. Tag: para
-#: scopescontexts.xml:283
+#: scopescontexts.xml:376
#, no-c-format
msgid ""
"The built-in qualifier <literal>@New</literal> allows us to obtain a "
@@ -657,13 +811,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:287
+#: scopescontexts.xml:380
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
msgstr "<![CDATA[@New Calculator calculator;]]>"
#. Tag: para
-#: scopescontexts.xml:289
+#: scopescontexts.xml:382
#, no-c-format
msgid ""
"The class must be a valid managed bean or session bean, but need not be an "
@@ -671,7 +825,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:291
+#: scopescontexts.xml:384
#, fuzzy, no-c-format
msgid ""
"This works even if <literal>Calculator</literal> is <emphasis>already</"
@@ -681,7 +835,7 @@
"dichiarato con un tipo di scope differente, per esempio:"
#. Tag: programlisting
-#: scopescontexts.xml:296
+#: scopescontexts.xml:389
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped\n"
@@ -691,7 +845,7 @@
"public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:298
+#: scopescontexts.xml:391
#, no-c-format
msgid ""
"So the following injected attributes each get a different instance of "
@@ -701,7 +855,7 @@
"<literal>Calculator</literal>:"
#. Tag: programlisting
-#: scopescontexts.xml:302
+#: scopescontexts.xml:395
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class PaymentCalc {\n"
@@ -717,7 +871,7 @@
"}]]>"
#. Tag: para
-#: scopescontexts.xml:304
+#: scopescontexts.xml:397
#, no-c-format
msgid ""
"The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -732,7 +886,7 @@
"<literal>PaymentCalc</literal>."
#. Tag: para
-#: scopescontexts.xml:310
+#: scopescontexts.xml:403
#, no-c-format
msgid ""
"This feature is particularly useful with producer methods, as we'll see in "
Modified: doc/trunk/reference/it-IT/weldexamples.po
===================================================================
--- doc/trunk/reference/it-IT/weldexamples.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/it-IT/weldexamples.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-23 21:23+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz at gmail.com>\n"
"Language-Team: none\n"
@@ -22,7 +22,10 @@
#. 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>."
+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
@@ -34,19 +37,31 @@
#. 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."
+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."
+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."
+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
@@ -72,7 +87,10 @@
#. 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."
+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
@@ -85,7 +103,10 @@
#: 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"
+"<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"
@@ -115,7 +136,24 @@
" <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"
+"</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=\"XML"
+"\"><![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"
@@ -129,37 +167,62 @@
" <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"
+" 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"
+" 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"
+" 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"
+" 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"
+" 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"
+" <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 num!
ber. </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>"
+"</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:"
+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
@@ -179,7 +242,9 @@
#. 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:"
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
msgstr ""
#. Tag: programlisting
@@ -200,7 +265,10 @@
#. 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:"
+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
@@ -210,7 +278,8 @@
"<![CDATA[@ApplicationScoped\n"
"public class Generator implements Serializable {\n"
"\n"
-" private java.util.Random random = new java.util.Random(System.currentTimeMillis());\n"
+" private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
" \n"
" private int maxNumber = 100;\n"
" \n"
@@ -231,7 +300,8 @@
"<![CDATA[@ApplicationScoped\n"
"public class Generator implements Serializable {\n"
"\n"
-" private java.util.Random random = new java.util.Random(System.currentTimeMillis());\n"
+" private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
" \n"
" private int maxNumber = 100;\n"
" \n"
@@ -252,25 +322,39 @@
#. 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."
+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."
+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."
+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})."
+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
@@ -300,7 +384,8 @@
" smallest = guess + 1;\n"
" }\n"
" else if (guess == number) {\n"
-" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(\"Correct!\"));\n"
+" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
" }\n"
" remainingGuesses--;\n"
" }\n"
@@ -314,7 +399,8 @@
" this.number = randomNumber.get();\n"
" }\n"
" \n"
-" public void validateNumberRange(FacesContext context, UIComponent toValidate, Object value) {\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"
@@ -380,7 +466,8 @@
" smallest = guess + 1;\n"
" }\n"
" else if (guess == number) {\n"
-" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(\"Correct!\"));\n"
+" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
" }\n"
" remainingGuesses--;\n"
" }\n"
@@ -394,7 +481,8 @@
" this.number = randomNumber.get();\n"
" }\n"
" \n"
-" public void validateNumberRange(FacesContext context, UIComponent toValidate, Object value) {\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"
@@ -446,19 +534,32 @@
#. 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>."
+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?"
+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."
+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
@@ -466,17 +567,24 @@
#, no-c-format
msgid ""
"<![CDATA[<listener>\n"
-" <listener-class>org.jboss.weld.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.weld.environment.servlet.Listener</listener-class>\n"
+" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
"</listener>]]>"
#. 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."
+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
@@ -488,25 +596,41 @@
#. 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."
+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."
+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."
+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."
+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
@@ -518,37 +642,63 @@
#. 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.."
+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 url=\"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."
+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>."
+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!"
+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."
+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:"
+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
@@ -564,7 +714,11 @@
#. 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>."
+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
@@ -582,7 +736,16 @@
#. 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."
+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 "
+"<ulink url=\"http://localhost:9090\">http://localhost:9090</ulink> to view "
+"the app. To debug choose <emphasis>Debug as Java Application</emphasis> "
+"instead."
msgstr ""
#. Tag: title
@@ -594,7 +757,12 @@
#. 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:"
+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
@@ -618,13 +786,18 @@
#. 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>."
+msgid ""
+"to deploy the example to Tomcat. You can then access application at <ulink "
+"url=\"http://localhost:8080/weld-numberguess-wicket\">http://localhost:8080/"
+"weld-numberguess-wicket</ulink>."
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:"
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
msgstr ""
#. Tag: programlisting
@@ -648,13 +821,25 @@
#. 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."
+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)."
+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
@@ -666,7 +851,10 @@
#. 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>:"
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
msgstr ""
#. Tag: programlisting
@@ -688,13 +876,18 @@
#. 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>"
+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:"
+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
@@ -706,7 +899,9 @@
#. 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:"
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
msgstr ""
#. Tag: programlisting
@@ -766,25 +961,38 @@
#. 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."
+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."
+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."
+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>:"
+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
@@ -793,10 +1001,12 @@
msgid ""
"<![CDATA[<filter>\n"
" <filter-name>Wicket Filter</filter-name>\n"
-" <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>\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"
+" <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
" </init-param>\n"
"</filter>\n"
"\n"
@@ -807,10 +1017,12 @@
msgstr ""
"<![CDATA[<filter>\n"
" <filter-name>Wicket Filter</filter-name>\n"
-" <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>\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"
+" <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
" </init-param>\n"
"</filter>\n"
"\n"
@@ -822,7 +1034,13 @@
#. 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."
+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
@@ -831,13 +1049,15 @@
msgid ""
"<![CDATA[<web-app version=\"2.4\" ...>\n"
" <listener>\n"
-" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>\n"
+" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
" </listener>\n"
"</web-app>]]>"
msgstr ""
"<![CDATA[<web-app version=\"2.4\" ...>\n"
" <listener>\n"
-" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>\n"
+" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
" </listener>\n"
"</web-app>]]>"
@@ -850,7 +1070,11 @@
#. 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."
+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
@@ -868,13 +1092,17 @@
#. Tag: para
#: weldexamples.xml:484
#, no-c-format
-msgid "Ensure that the <literal>JAVA_HOME</literal> environment variable is pointing to your JDK installation"
+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"
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
msgstr ""
#. Tag: para
@@ -892,27 +1120,38 @@
#. 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."
+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."
+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:"
+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"
+"<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\n"
"{\n"
"\n"
" public static final int MAX_NUM_GUESSES = 10;\n"
@@ -982,7 +1221,8 @@
"\n"
" private boolean checkNewNumberRangeIsValid()\n"
" {\n"
-" return validNumberRange = ((guess >= smallest) && (guess <= biggest));\n"
+" return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
" }\n"
"\n"
" @PostConstruct\n"
@@ -994,14 +1234,45 @@
" 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 m!
essages 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 t!
o 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"
+"}]]></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 can't use "
+"<literal>Instance.get()</literal> like the JSF example does because there "
+"will not be any active contexts like there are 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"
+" 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"
@@ -1041,10 +1312,24 @@
" direction = \"Lower\";\n"
" }\n"
"\n"
-" return direction + \"! You have \" + game.getRemainingGuesses() + \" guesses left.\";\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 j!
avax.swing.JFrame\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"
@@ -1081,7 +1366,8 @@
" ...\n"
" }\n"
"\n"
-" private void guessButtonActionPerformed( java.awt.event.ActionEvent evt )\n"
+" private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
" {\n"
" int guess = Integer.parseInt(guessText.getText());\n"
" game.setGuess( guess );\n"
@@ -1108,7 +1394,32 @@
" ...\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 per!
form 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>"
+"}]]></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
@@ -1120,25 +1431,36 @@
#. 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!)"
+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."
+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."
+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:"
+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
@@ -1176,13 +1498,18 @@
#. 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>."
+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>:"
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
msgstr ""
#. Tag: programlisting
@@ -1234,13 +1561,21 @@
#. 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>."
+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):"
+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
@@ -1260,7 +1595,8 @@
" </tr>\n"
" <tr>\n"
" <td>\n"
-" <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\"/>\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"
@@ -1268,7 +1604,8 @@
" </tr>\n"
" </table>\n"
" <div>\n"
-" <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
+" <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
" </div>\n"
" \n"
"</h:form>]]>"
@@ -1286,7 +1623,8 @@
" </tr>\n"
" <tr>\n"
" <td>\n"
-" <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\"/>\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"
@@ -1294,7 +1632,8 @@
" </tr>\n"
" </table>\n"
" <div>\n"
-" <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
+" <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
" </div>\n"
" \n"
"</h:form>]]>"
@@ -1302,25 +1641,40 @@
#. 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."
+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."
+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."
+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:"
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
msgstr ""
#. Tag: programlisting
@@ -1370,7 +1724,13 @@
#. 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!"
+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
@@ -1398,7 +1758,11 @@
#. 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."
+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
@@ -1470,6 +1834,8 @@
#. 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>."
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, please visit <ulink url=\"http://www.seamframework.org/"
+"Weld\">http://www.seamframework.org/Weld</ulink>."
msgstr ""
-
Modified: doc/trunk/reference/ja-JP/beans.po
===================================================================
--- doc/trunk/reference/ja-JP/beans.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/beans.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -484,14 +484,14 @@
#, 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."
+"context until the context is destroyed. There is no way to manually remove a "
+"bean from a context. If you don't want the bean to sit in the session "
+"indefinitely, consider using another scope with a shorted lifespan, such as "
+"the request or conversation scope."
msgstr ""
#. Tag: para
-#: beans.xml:272
+#: beans.xml:273
#, no-c-format
msgid ""
"If a scope is not explicitly specified, then the bean belongs to a special "
@@ -501,19 +501,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:278
+#: beans.xml:279
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:283
+#: beans.xml:284
#, no-c-format
msgid "EL name"
msgstr ""
#. Tag: para
-#: beans.xml:285
+#: beans.xml:286
#, no-c-format
msgid ""
"If you want to reference a bean in non-Java code that supports Unified EL "
@@ -522,7 +522,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:290
+#: beans.xml:291
#, no-c-format
msgid ""
"The EL name is specified using the <literal>@Named</literal> annotation, as "
@@ -530,7 +530,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:294
+#: beans.xml:295
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
@@ -538,13 +538,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:296
+#: beans.xml:297
#, no-c-format
msgid "Now we can easily use the bean in any JSF or JSP page:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:298
+#: beans.xml:299
#, no-c-format
msgid ""
"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
@@ -553,7 +553,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:301
+#: beans.xml:302
#, no-c-format
msgid ""
"The <literal>@Named</literal> annotation is not what makes the class a bean. "
@@ -563,7 +563,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:308
+#: beans.xml:309
#, no-c-format
msgid ""
"We can let CDI choose a name for us by leaving off the value of the "
@@ -571,7 +571,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:312
+#: beans.xml:313
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named\n"
@@ -579,7 +579,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:314
+#: beans.xml:315
#, no-c-format
msgid ""
"The name defaults to the unqualified class name, decapitalized; in this "
@@ -587,13 +587,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:324
+#: beans.xml:325
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: beans.xml:326
+#: beans.xml:327
#, no-c-format
msgid ""
"We've already seen how qualifiers let us choose between multiple "
@@ -606,7 +606,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:334
+#: beans.xml:335
#, no-c-format
msgid ""
"<![CDATA[public @Alternative\n"
@@ -614,33 +614,33 @@
msgstr ""
#. Tag: para
-#: beans.xml:336
+#: beans.xml:337
#, 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 "
+"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
+#: beans.xml:345
#, no-c-format
msgid ""
"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:351
+#: beans.xml:352
#, no-c-format
msgid "Interceptor binding types"
msgstr ""
#. Tag: para
-#: beans.xml:353
+#: beans.xml:354
#, no-c-format
msgid ""
"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
@@ -651,7 +651,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:360
+#: beans.xml:361
#, no-c-format
msgid ""
"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
@@ -668,7 +668,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:371
+#: beans.xml:372
#, no-c-format
msgid ""
"CDI provides a new approach to binding interceptors to beans that introduces "
@@ -678,7 +678,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:377
+#: beans.xml:378
#, no-c-format
msgid ""
"An interceptor binding type is a user-defined annotation that is itself "
@@ -688,7 +688,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:382
+#: beans.xml:383
#, no-c-format
msgid ""
"<![CDATA[@InterceptorBinding\n"
@@ -699,7 +699,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:384
+#: beans.xml:385
#, no-c-format
msgid ""
"The interceptor that implements transaction management declares this "
@@ -707,7 +707,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:388
+#: beans.xml:389
#, no-c-format
msgid ""
"<![CDATA[public @Transactional @Interceptor\n"
@@ -715,7 +715,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:390
+#: beans.xml:391
#, no-c-format
msgid ""
"We can apply the interceptor to a bean by annotating the bean class with the "
@@ -723,7 +723,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:394
+#: beans.xml:395
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Transactional\n"
@@ -731,7 +731,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:396
+#: beans.xml:397
#, no-c-format
msgid ""
"Notice that <literal>ShoppingCart</literal> and "
@@ -740,18 +740,18 @@
msgstr ""
#. Tag: para
-#: beans.xml:401
+#: beans.xml:402
#, 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 "
+"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
+#: beans.xml:409
#, no-c-format
msgid ""
"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
@@ -759,13 +759,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:418
+#: beans.xml:419
#, no-c-format
msgid "What kinds of classes are beans?"
msgstr ""
#. Tag: para
-#: beans.xml:420
+#: beans.xml:421
#, no-c-format
msgid ""
"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
@@ -774,13 +774,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:427
+#: beans.xml:428
#, no-c-format
msgid "Managed beans"
msgstr ""
#. Tag: para
-#: beans.xml:429
+#: beans.xml:430
#, no-c-format
msgid ""
"A managed bean is a Java class. The basic lifecycle and semantics of a "
@@ -792,19 +792,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:440
+#: beans.xml:441
#, no-c-format
msgid "It is not a non-static inner class."
msgstr ""
#. Tag: para
-#: beans.xml:443
+#: beans.xml:444
#, no-c-format
msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:446
+#: beans.xml:447
#, no-c-format
msgid ""
"It is not annotated with an EJB component-defining annotation or declared as "
@@ -812,7 +812,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:452
+#: beans.xml:453
#, no-c-format
msgid ""
"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
@@ -820,25 +820,25 @@
msgstr ""
#. Tag: para
-#: beans.xml:455
+#: beans.xml:456
#, no-c-format
msgid "It has an appropriate constructor—either:"
msgstr ""
#. Tag: para
-#: beans.xml:460
+#: beans.xml:461
#, no-c-format
msgid "the class has a constructor with no parameters, or"
msgstr ""
#. Tag: para
-#: beans.xml:463
+#: beans.xml:464
#, no-c-format
msgid "the class declares a constructor annotated <literal>@Inject</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:471
+#: beans.xml:472
#, no-c-format
msgid ""
"The unrestricted set of bean types for a managed bean contains the bean "
@@ -847,7 +847,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:474
+#: beans.xml:475
#, no-c-format
msgid ""
"If a managed bean has a public field, it must have the default scope "
@@ -855,7 +855,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:476
+#: beans.xml:477
#, no-c-format
msgid ""
"Managed beans support the <literal>@PostConstruct</literal> and "
@@ -863,7 +863,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:479
+#: beans.xml:480
#, no-c-format
msgid ""
"Session beans are also, technically, managed beans. However, since they have "
@@ -873,13 +873,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:488
+#: beans.xml:489
#, no-c-format
msgid "Session beans"
msgstr ""
#. Tag: para
-#: beans.xml:490
+#: beans.xml:491
#, no-c-format
msgid ""
"Session beans belong to the EJB specification. They have a special "
@@ -892,7 +892,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:499
+#: beans.xml:500
#, no-c-format
msgid ""
"Message-driven and entity beans are by nature non-contextual objects and may "
@@ -904,7 +904,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:507
+#: beans.xml:508
#, no-c-format
msgid ""
"The unrestricted set of bean types for a session bean contains all local "
@@ -916,7 +916,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:515
+#: beans.xml:516
#, no-c-format
msgid ""
"There's no reason to explicitly declare the scope of a stateless session "
@@ -927,7 +927,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:519
+#: beans.xml:520
#, no-c-format
msgid ""
"Stateful session beans may define a <emphasis>remove method</emphasis>, "
@@ -940,7 +940,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:527
+#: beans.xml:528
#, no-c-format
msgid ""
"So, when should we use a session bean instead of a plain managed bean? "
@@ -948,19 +948,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:534
+#: beans.xml:535
#, no-c-format
msgid "method-level transaction management and security,"
msgstr ""
#. Tag: para
-#: beans.xml:537
+#: beans.xml:538
#, no-c-format
msgid "concurrency management,"
msgstr ""
#. Tag: para
-#: beans.xml:540
+#: beans.xml:541
#, no-c-format
msgid ""
"instance-level passivation for stateful session beans and instance-pooling "
@@ -968,19 +968,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:544
+#: beans.xml:545
#, no-c-format
msgid "remote or web service invocation, or"
msgstr ""
#. Tag: para
-#: beans.xml:547
+#: beans.xml:548
#, no-c-format
msgid "timers and asynchronous methods,"
msgstr ""
#. Tag: para
-#: beans.xml:551
+#: beans.xml:552
#, no-c-format
msgid ""
"When we don't need any of these things, an ordinary managed bean will serve "
@@ -988,7 +988,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:553
+#: beans.xml:554
#, no-c-format
msgid ""
"Many beans (including any <literal>@SessionScoped</literal> or "
@@ -998,7 +998,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:559
+#: beans.xml:560
#, no-c-format
msgid ""
"Beans which hold references to heavy-weight resources, or hold a lot of "
@@ -1008,7 +1008,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:565
+#: beans.xml:566
#, no-c-format
msgid ""
"Finally, it's usually obvious when method-level transaction management, "
@@ -1017,7 +1017,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:570
+#: beans.xml:571
#, no-c-format
msgid ""
"The point we're trying to make is: use a session bean when you need the "
@@ -1030,7 +1030,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:578
+#: beans.xml:579
#, no-c-format
msgid ""
"On the other hand, don't be scared to use session beans just because you've "
@@ -1043,13 +1043,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:589
+#: beans.xml:590
#, no-c-format
msgid "Producer methods"
msgstr ""
#. Tag: para
-#: beans.xml:591
+#: beans.xml:592
#, no-c-format
msgid ""
"Not everything that needs to be injected can be boiled down to a bean class "
@@ -1061,7 +1061,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:599
+#: beans.xml:600
#, no-c-format
msgid ""
"A <emphasis>producer method</emphasis> is a method that acts as a source of "
@@ -1072,7 +1072,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:606
+#: beans.xml:607
#, no-c-format
msgid ""
"A producer method is declared by annotating a method of a bean class with "
@@ -1080,7 +1080,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:611
+#: beans.xml:612
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
@@ -1096,7 +1096,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:613
+#: beans.xml:614
#, no-c-format
msgid ""
"We can't write a bean class that is itself a random number. But we can "
@@ -1111,25 +1111,25 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:622
+#: beans.xml:623
#, no-c-format
msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
msgstr ""
#. Tag: para
-#: beans.xml:624
+#: beans.xml:625
#, no-c-format
msgid "Even in a Unified EL expression:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:628
+#: beans.xml:629
#, no-c-format
msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
msgstr ""
#. Tag: para
-#: beans.xml:630
+#: beans.xml:631
#, no-c-format
msgid ""
"A producer method must be a non-abstract method of a managed bean class or "
@@ -1139,13 +1139,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:636
+#: beans.xml:637
#, no-c-format
msgid "The bean types of a producer method depend upon the method return type:"
msgstr ""
#. Tag: para
-#: beans.xml:642
+#: beans.xml:643
#, no-c-format
msgid ""
"If the return type is an interface, the unrestricted set of bean types "
@@ -1154,7 +1154,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:648
+#: beans.xml:649
#, no-c-format
msgid ""
"If a return type is primitive or is a Java array type, the unrestricted set "
@@ -1163,7 +1163,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:654
+#: beans.xml:655
#, no-c-format
msgid ""
"If the return type is a class, the unrestricted set of bean types contains "
@@ -1172,7 +1172,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:661
+#: beans.xml:662
#, no-c-format
msgid ""
"If the producer method has method parameters, the container will look for a "
@@ -1181,7 +1181,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:667
+#: beans.xml:668
#, no-c-format
msgid ""
"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
@@ -1190,7 +1190,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:669
+#: beans.xml:670
#, no-c-format
msgid ""
"We'll talk much more about producer methods in <xref linkend="
@@ -1198,13 +1198,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:674
+#: beans.xml:675
#, no-c-format
msgid "Producer fields"
msgstr ""
#. Tag: para
-#: beans.xml:676
+#: beans.xml:677
#, no-c-format
msgid ""
"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
@@ -1214,7 +1214,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:682
+#: beans.xml:683
#, no-c-format
msgid ""
"<![CDATA[public class Shop {\n"
@@ -1224,7 +1224,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:684
+#: beans.xml:685
#, no-c-format
msgid ""
"The rules for determining the bean types of a producer field parallel the "
@@ -1232,7 +1232,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:688
+#: beans.xml:689
#, no-c-format
msgid ""
"A producer field is really just a shortcut that lets us avoid writing a "
@@ -1242,3 +1242,405 @@
"linkend=\"resources\"/>. Because we can't wait to get to work on some "
"examples."
msgstr ""
+
+#. Tag: title
+#: beans.xml:701
+#, no-c-format
+msgid "The (minimal) bean descriptor"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:703
+#, no-c-format
+msgid ""
+"First, it's important to understand that the XML bean descriptor in CDI "
+"(beans.xml) is not there to define beans in XML, like in other popular bean "
+"containers. Rather, you use this file to enable CDI services for the current "
+"bean archive that is difficult to define consistently in Java or which you "
+"don't want to define in Java (e.g., to accomodate testing)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:710
+#, no-c-format
+msgid ""
+"For example, the XML is used to enable interceptors (which are disabled by "
+"default) and define interceptor ordering. So the bean descriptor "
+"<emphasis>complements</emphasis> the metadata that is provided in the Java "
+"language syntax. (You may still want to define beans in XML for other "
+"reasons, but that is the concern of an extension)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:717
+#, no-c-format
+msgid ""
+"Let's first ask why the beans.xml is required, then look at what services it "
+"is used used to enable."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:722
+#, no-c-format
+msgid "Why is beans.xml required?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:724
+#, no-c-format
+msgid ""
+"You may be wondering, if beans are not described using XML, why do we need "
+"beans.xml at all, particularly if you don't have anything that you would "
+"need the bean descriptor to enable (alternatives, interceptors or "
+"decorators)?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:730
+#, no-c-format
+msgid "There are two things about CDI that we need to keep in mind:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:736
+#, no-c-format
+msgid ""
+"CDI does not require any special declaration for a Java class to be injected "
+"- that's right, no annotation or XML declaration at all!"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:742
+#, no-c-format
+msgid ""
+"CDI does not define any special kind of module - CDI beans can be deployed "
+"in a library JAR, EJB JAR, WAR, RAR, or JVM classpath directory."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:749
+#, no-c-format
+msgid ""
+"The CDI specification calls the process of identifying beans in modules "
+"<emphasis>bean discovery</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:753
+#, no-c-format
+msgid ""
+"So there are potentially a lot of classes in the classpath which might be "
+"beans! We don't want to force the container to scan every one of those "
+"classes at startup and build its internal metamodel for each of them. This "
+"really could make bean discovery very slow."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:759
+#, no-c-format
+msgid ""
+"But there's another reason we need to give the user some control over which "
+"classes are available for injection. We don't want every class in the "
+"classpath to potentially match an injection point, including classes that "
+"were never intended to be injected into things. This would force the "
+"developer to have to use qualifiers much more often to disambiguate "
+"injection points."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:766
+#, no-c-format
+msgid "So we have two choices. We could have the developer:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:772
+#, no-c-format
+msgid "explicitly exclude modules which do not contain beans, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:775
+#, no-c-format
+msgid "explicitly declare modules which do contain beans."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:779
+#, no-c-format
+msgid ""
+"It should be clear that the second option is a much better way to go. Thus, "
+"CDI has the notion of a bean archive. A bean archive is just a module that "
+"has a file named beans.xml in the META-INF directory. The container looks "
+"for beans in bean archives. It ignores other modules."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:785
+#, no-c-format
+msgid ""
+"Now, you might be wondering if we've got the granularity wrong here. Why "
+"should module be the right criteria to use for including/excluding a class. "
+"Why not consider:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:792
+#, no-c-format
+msgid "a class-level annotation,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:795
+#, no-c-format
+msgid "the package,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:798
+#, no-c-format
+msgid "some type it implements or extends, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:801
+#, no-c-format
+msgid "some naming convention."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:805
+#, no-c-format
+msgid ""
+"We've got the first option covered. Annotate a bean <literal>@Alternative</"
+"literal>, or with an alternative stereotype, and it will be considered "
+"disabled by CDI, as long as you don't explicitly enable it in beans.xml. "
+"That's not quite the same thing as excluding the class from scanning "
+"altogether, but it's close. (One difference is that a portable extension "
+"with still get a <literal>ProcessAnnotatedType</literal> event for that "
+"class)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:813
+#, no-c-format
+msgid ""
+"A future version of CDI might allow you to declare excluded packages in "
+"beans.xml. Excluding a bean by type or naming convention isn't really that "
+"appealing. In the world of CDI, we use stereotypes for identifying "
+"architectural roles. We don't use marker interfaces or naming conventions. "
+"Names really shouldn't affect functionality as it is too fragile."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:820
+#, no-c-format
+msgid "Enough theory, what elements are available in beans.xml?"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:826
+#, no-c-format
+msgid "Bean descriptor schema"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:828
+#, no-c-format
+msgid ""
+"If you don't need to activate any interceptors, decorators or alternatives "
+"(you just have plain beans that you need to use in an archive), the beans."
+"xml file can be <emphasis>empty</emphasis>. If you do have one of these "
+"requirements, then you need to start popularing the descriptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:834
+#, no-c-format
+msgid ""
+"The root element of a beans.xml file is <literal>beans</literal>, with the "
+"following <ulink url=\"http://anonsvn.jboss.org/repos/weld/api/trunk/cdi/src/"
+"main/resources/beans.xsd\">schema</ulink>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:839
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<beans 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"
+"</beans>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:841
+#, no-c-format
+msgid ""
+"The <literal>beans</literal> element can have one or more of each of the "
+"following children:"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:847
+#, no-c-format
+msgid "interceptors"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:850
+#, no-c-format
+msgid "decorators"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:853
+#, no-c-format
+msgid "alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:857
+#, no-c-format
+msgid "Let's look at each element in detail."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:862
+#, no-c-format
+msgid "<interceptors>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:864
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled interceptors bound via interceptor "
+"bindings. An interceptor must be explicitly enabled by listing the fully "
+"qualified class name in a child <class> element of <"
+"interceptors>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:870
+#, no-c-format
+msgid ""
+"There may be zero or more interceptor class elements. The order of the class "
+"declarations determines the interceptor ordering. Interceptors which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an interceptor "
+"class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:877
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.intercept.SecurityInterceptor</class>\n"
+" <class>com.acme.intercept.TransactionInterceptor</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:883
+#, no-c-format
+msgid "<decorators>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:885
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled decorators. A decorator must be "
+"explicitly enabled by listing the fully qualified class name in a child <"
+"class> element of <decorators>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:891
+#, no-c-format
+msgid ""
+"There may be zero or more decorator class elements. The order of the class "
+"declarations determines the decorator ordering. Decorators which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an decorator class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.decorate.BigAccountDecorator</class>\n"
+" <class>com.acme.decorate.SpecialGiftDecorator</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:903
+#, no-c-format
+msgid "<alternatives>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:905
+#, no-c-format
+msgid ""
+"An alternative is a bean that must be explicitly declared in the beans.xml "
+"file if it should be available for lookup, injection or EL resolution. By "
+"default, a bean archive has no active alternatives. An alternative must be "
+"explicitly declared using the fully qualified bean class name or stereotype "
+"class name in either a child <class> or <stereotype> element of "
+"<alternatives>, respectively."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:913
+#, no-c-format
+msgid ""
+"An alternative is selected for the bean archive if either: the alternative "
+"is a managed bean or session bean and the bean class of the bean is listed, "
+"or the alternative is a producer method, field or resource, and the bean "
+"class that declares the method or field is listed, or any "
+"<literal>@Alternative</literal> stereotype of the alternative is listed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:920
+#, no-c-format
+msgid ""
+"There may be zero or more alternative bean class elements. The same class "
+"may not be listed twice. And of course, the class must exist and it must be "
+"an alternative bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:925
+#, no-c-format
+msgid ""
+"There may also be zero or more <literal>@Alternative</literal> stereotype "
+"elements. The same stereotype may not be listed twice. And of course, the "
+"stereotype class must exist and it must be an stereotype annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:931
+#, no-c-format
+msgid ""
+"<![CDATA[<stereotypes>\n"
+" <class>com.acme.business.MockPaymentProcessor</class>\n"
+" <stereotype>com.acme.stereotype.Mock</stereotype>\n"
+"</stereotypes>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:935
+#, no-c-format
+msgid ""
+"And that's it! A very simple schema, used only to activate and order CDI "
+"services."
+msgstr ""
Modified: doc/trunk/reference/ja-JP/dependencies.po
===================================================================
--- doc/trunk/reference/ja-JP/dependencies.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/dependencies.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -24,7 +24,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/"
+"is currently maintained in the <ulink url=\"https://jira.jboss.org/jira/"
"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
"appendix."
msgstr ""
Modified: doc/trunk/reference/ja-JP/ee.po
===================================================================
--- doc/trunk/reference/ja-JP/ee.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/ee.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-04-19 01:59+0900\n"
"Last-Translator: wadahiro <wadahiro at gmail.com>\n"
"Language-Team: none\n"
@@ -66,7 +66,7 @@
#: ee.xml:32
#, no-c-format
msgid ""
-"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"the default <ulink url=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
"Validation</ulink> <literal>ValidationFactory</literal>, and"
msgstr ""
@@ -78,14 +78,49 @@
"literal>."
msgstr ""
+#. Tag: para
+#: ee.xml:45
+#, no-c-format
+msgid ""
+"The CDI specification does not require the servlet context objects, "
+"<literal>HttpServletRequest</literal>, <literal>HttpSession</literal> and "
+"<literal>ServletContext</literal> to be exposed as injectable beans. If you "
+"really want to be able to inject these objects, it's easy to create a "
+"portable extension to expose them as beans. However, we recommend that "
+"direct access to these objects be limited to servlets, servlet filters and "
+"servlet event listeners, where they may be obtained in the usual way as "
+"defined by the Java Servlets spec. The <literal>FacesContext</literal> is "
+"also not injectable. You can get at it by calling <literal>FacesContext."
+"getCurrentInstance()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ee.xml:57
+#, no-c-format
+msgid ""
+"Oh, you <emphasis>really</emphasis> want to inject the "
+"<literal>FacesContext</literal>? Alright then, try this producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: ee.xml:61
+#, no-c-format
+msgid ""
+"<![CDATA[class FacesContextProducer {\n"
+" @Produces @RequestScoped FacesContext getFacesContext() {\n"
+" return FacesContext.getCurrentInstance();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
#. Tag: title
-#: ee.xml:47
+#: ee.xml:67
#, fuzzy, no-c-format
msgid "Injecting Java EE resources into a bean"
msgstr "Java EEリソースをWeb Beansにインジェクトする"
#. Tag: para
-#: ee.xml:49
+#: ee.xml:69
#, fuzzy, no-c-format
msgid ""
"All managed beans may take advantage of Java EE component environment "
@@ -100,7 +135,7 @@
"いませんでしたが、既にいくつかの例を見てきました。"
#. Tag: programlisting
-#: ee.xml:56
+#: ee.xml:76
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @Interceptor\n"
@@ -122,7 +157,7 @@
"}]]>"
#. Tag: programlisting
-#: ee.xml:58
+#: ee.xml:78
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped\n"
@@ -143,7 +178,7 @@
"}]]>"
#. Tag: para
-#: ee.xml:60
+#: ee.xml:80
#, fuzzy, no-c-format
msgid ""
"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
@@ -157,7 +192,7 @@
"<literal>@PostConstruct</literal>のメソッドは呼ばれます。"
#. Tag: para
-#: ee.xml:66
+#: ee.xml:86
#, no-c-format
msgid ""
"Of course, we advise that component environment injection be used to define "
@@ -165,13 +200,13 @@
msgstr ""
#. Tag: title
-#: ee.xml:74
+#: ee.xml:94
#, fuzzy, no-c-format
msgid "Calling a bean from a servlet"
msgstr "サーブレットからWeb Beanを呼び出す"
#. Tag: para
-#: ee.xml:76
+#: ee.xml:96
#, fuzzy, no-c-format
msgid ""
"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
@@ -182,7 +217,7 @@
"い。"
#. Tag: programlisting
-#: ee.xml:81
+#: ee.xml:101
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class Login extends HttpServlet {\n"
@@ -229,7 +264,7 @@
"}"
#. Tag: para
-#: ee.xml:83
+#: ee.xml:103
#, fuzzy, no-c-format
msgid ""
"Since instances of servlets are shared across all incoming threads, the bean "
@@ -242,13 +277,13 @@
"ンスタンスへの呼び出しを引き受けます。"
#. Tag: title
-#: ee.xml:92
+#: ee.xml:112
#, fuzzy, no-c-format
msgid "Calling a bean from a message-driven bean"
msgstr "Web Beanからメッセージ駆動型Beanを呼び出す"
#. Tag: para
-#: ee.xml:94
+#: ee.xml:114
#, no-c-format
msgid ""
"CDI injection applies to all EJBs, even when they aren't managed beans. In "
@@ -257,14 +292,14 @@
msgstr ""
#. Tag: para
-#: ee.xml:99
+#: ee.xml:119
#, fuzzy, no-c-format
msgid "You can even use CDI interceptor bindings for message-driven Beans."
msgstr ""
"メッセージ駆動型BeanにWeb Beansのインタセプタを使用することさえできます。"
#. Tag: programlisting
-#: ee.xml:101
+#: ee.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @MessageDriven\n"
@@ -290,7 +325,7 @@
"}"
#. Tag: para
-#: ee.xml:103
+#: ee.xml:123
#, fuzzy, no-c-format
msgid ""
"Please note that there is no session or conversation context available when "
@@ -305,19 +340,19 @@
"Web Beansだけが利用可能です。"
#. Tag: para
-#: ee.xml:109
+#: ee.xml:129
#, no-c-format
msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
msgstr ""
#. Tag: title
-#: ee.xml:116
+#: ee.xml:136
#, no-c-format
msgid "JMS endpoints"
msgstr "JMSエンドポイント"
#. Tag: para
-#: ee.xml:118
+#: ee.xml:138
#, no-c-format
msgid ""
"Sending messages using JMS can be quite complex, because of the number of "
@@ -341,7 +376,7 @@
"モデルがあり、私たちは気遣う必要があります。"
#. Tag: para
-#: ee.xml:127
+#: ee.xml:147
#, no-c-format
msgid ""
"You can use producer fields and methods to prepare all of these resources "
@@ -349,7 +384,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:131
+#: ee.xml:151
#, no-c-format
msgid ""
"<![CDATA[public class OrderResources {\n"
@@ -398,7 +433,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:133
+#: ee.xml:153
#, no-c-format
msgid ""
"In this example, we can just inject the prepared <literal>MessageProducer</"
@@ -406,7 +441,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:138
+#: ee.xml:158
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject Order order;\n"
@@ -430,7 +465,7 @@
"}"
#. Tag: para
-#: ee.xml:144
+#: ee.xml:164
#, fuzzy, no-c-format
msgid ""
"The lifecycle of the injected JMS objects is completely controlled by the "
@@ -440,13 +475,13 @@
"て完全に制御されます。"
#. Tag: title
-#: ee.xml:151
+#: ee.xml:171
#, no-c-format
msgid "Packaging and deployment"
msgstr "パッケージとデプロイ"
#. Tag: para
-#: ee.xml:153
+#: ee.xml:173
#, fuzzy, no-c-format
msgid ""
"CDI doesn't define any special deployment archive. You can package beans in "
@@ -468,7 +503,7 @@
"カイブでデプロイされたWeb Beansは、アプリケーションで利用できないでしょう。"
#. Tag: para
-#: ee.xml:162
+#: ee.xml:182
#, fuzzy, no-c-format
msgid ""
"In an embeddable EJB container, beans may be deployed in any location in "
Modified: doc/trunk/reference/ja-JP/environments.po
===================================================================
--- doc/trunk/reference/ja-JP/environments.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/environments.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -446,58 +446,71 @@
"available:"
msgstr "SE環境で実行する場合、Web Beansの下記の機能が利用できます。"
-#. Tag: literal
-#: environments.xml:215
+#. Tag: para
+#: environments.xml:214
#, no-c-format
-msgid "POJOs (no EJBs)"
+msgid ""
+"Managed beans with <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:220
#, no-c-format
-msgid "Typesafe Dependency Injection"
-msgstr "タイプセーフな依存性注入"
+msgid "Dependency injection with qualifiers and alternatives"
+msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:225
#, no-c-format
-msgid "Application and Dependent Contexts"
-msgstr "アプリケーションコンテキストと依存コンテキスト"
+msgid ""
+"<literal>@Application</literal>, <literal>@Dependent</literal> and "
+"<literal>@Singleton</literal> scopes"
+msgstr ""
-#. Tag: literal
-#: environments.xml:230
+#. Tag: para
+#: environments.xml:231
#, no-c-format
-msgid "Qualifiers"
+msgid "Interceptors and decorators"
msgstr ""
-#. Tag: literal
-#: environments.xml:235
+#. Tag: para
+#: environments.xml:236
#, no-c-format
msgid "Stereotypes"
msgstr "ステレオタイプ"
-#. Tag: literal
-#: environments.xml:240
+#. Tag: para
+#: environments.xml:241
#, no-c-format
-msgid "Typesafe Event Model"
-msgstr "タイプセーフイベントモデル"
+msgid "Events"
+msgstr ""
+#. Tag: para
+#: environments.xml:246
+#, no-c-format
+msgid "Portable extension support"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:252
+#, no-c-format
+msgid "EJB beans are not supported."
+msgstr ""
+
#. Tag: title
-#: environments.xml:246
+#: environments.xml:257
#, fuzzy, no-c-format
msgid "CDI SE Module"
msgstr "Web BeansのSEモジュール"
#. Tag: para
-#: environments.xml:248
+#: environments.xml:259
#, 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:"
+"automatically registering all simple beans found on the classpath. The "
+"command line parameters can be injected using either of the following:"
msgstr ""
"開発者の負担軽減のために、Web BeansはWeb Beansマネージャを起動するメインメ"
"ソッドを持ち、自動的にクラスパスに見つかった全てのシンプルWeb Beansを登録する"
@@ -508,33 +521,54 @@
"使用することでインジェクトすることができます。"
#. Tag: programlisting
-#: environments.xml:255
+#: environments.xml:264
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters List<String> params;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:266
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters String[] paramsArray;]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:268
+#, no-c-format
+msgid "The second form is useful for compatibility with existing classes."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:273
#, fuzzy, no-c-format
msgid ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with "
-"existing classes]]>"
+"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 ""
-"<![CDATA[@Parameters List<String> params;\n"
-"@Parameters String[] paramsArray; // useful for compatability with existing "
-"classes]]>"
+"コマンドラインパラメータは <literal>@Deployed Manager</literal> イベントが発"
+"生するまでインジェクションで利用できません。もしあなたが初期化の間にそのパラ"
+"メータにアクセスする必要があるのであれば、あなたは <literal>StartMain</"
+"literal> の <literal>public static String getParameters()</literal> メソッド"
+"を通してそれをすることができます。"
#. Tag: para
-#: environments.xml:257
+#: environments.xml:282
#, fuzzy, no-c-format
msgid "Here's an example of a simple CDI SE application:"
msgstr "ここに簡単なWeb Beans SEアプリケーションのサンプルがあります。"
#. Tag: programlisting
-#: environments.xml:261
+#: environments.xml:286
#, fuzzy, no-c-format
msgid ""
-"<![CDATA[@ApplicationScoped\n"
+"<![CDATA[@Singleton\n"
"public class HelloWorld\n"
"{\n"
-" @Inject @Parameters List<String> parameters;\n"
-"\n"
-" public void printHello(@Observes ContainerInitialized event) {\n"
+" public void printHello(@Observes ContainerInitialized event, @Parameters "
+"List<String> parameters) {\n"
" System.out.println(\"Hello \" + parameters.get(0));\n"
" }\n"
"}]]>"
@@ -550,73 +584,213 @@
" }\n"
"}]]>"
+#. Tag: title
+#: environments.xml:292
+#, no-c-format
+msgid "Bootstrapping CDI SE"
+msgstr ""
+
#. Tag: para
-#: environments.xml:263
+#: environments.xml:294
#, fuzzy, no-c-format
+msgid "CDI SE applications can be bootstrapped in the following ways."
+msgstr ""
+"Web Beans SEアプリケーションは以下のメインメソッドを走らせることで開始されま"
+"す。"
+
+#. Tag: title
+#: environments.xml:300
+#, no-c-format
+msgid "The ContainerInitialized Event"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:302
+#, no-c-format
msgid ""
-"CDI SE applications can be bootstrapped by running the StartMain class like "
-"so:"
+"Thanks to the power of CDI's typesafe event model, application developers "
+"need not write any bootstrapping code. The Weld SE module comes with a built-"
+"in main method which will bootstrap CDI for you and then fire a "
+"<literal>ContainerInitialized</literal> event. The entry point for your "
+"application code would therefore be a simple bean which observes the "
+"<literal>ContainerInitialized</literal> event, as in the previous example."
msgstr ""
+
+#. Tag: para
+#: environments.xml:310
+#, fuzzy, no-c-format
+msgid ""
+"In this case your application can be started by calling the provided main "
+"method like so:"
+msgstr ""
"Web Beans SEアプリケーションは以下のメインメソッドを走らせることで開始されま"
"す。"
#. Tag: programlisting
-#: environments.xml:267
+#: environments.xml:313
#, 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: title
+#: environments.xml:319
+#, no-c-format
+msgid "Programatic Bootstrap API"
+msgstr ""
+
#. Tag: para
-#: environments.xml:269
-#, fuzzy, no-c-format
+#: environments.xml:321
+#, 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:"
+"For added flexibility, CDI SE also comes with a bootstrap API which can be "
+"called from within your application in order to initialize CDI and obtain "
+"references to your application's beans and events. The API consists of two "
+"classes: <literal>Weld</literal> and <literal>WeldContainer</literal>."
msgstr ""
-"もしあなたが例えばカスタムコンテキストの登録やBeanのリソースの初期化のような"
-"Web Beansマネージャの何かカスタムの初期化を行う必要があるのであれば、あなた"
-"は <literal>@Initialized Manager</literal> イベントへのレスポンスでそれをする"
-"ことができます。以下のサンプルはカスタムコンテキストを登録しています。"
#. Tag: programlisting
-#: environments.xml:276
-#, fuzzy, no-c-format
+#: environments.xml:327
+#, no-c-format
msgid ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+"<![CDATA[public class Weld\n"
+"{\n"
+"\n"
+" /** Boots Weld and creates and returns a WeldContainer instance, through "
+"which\n"
+" * beans and events can be accesed. */\n"
+" public WeldContainer initialize() {...}\n"
+"\n"
+" /** Convenience method for shutting down the container. */\n"
+" public void shutdown() {...}\n"
+"\n"
"}]]>"
msgstr ""
-"<![CDATA[public class PerformSetup\n"
+
+#. Tag: programlisting
+#: environments.xml:329
+#, no-c-format
+msgid ""
+"<![CDATA[public class WeldContainer\n"
"{\n"
"\n"
-" public void setup( @Observes @Initialized Manager manager )\n"
-" {\n"
-" manager.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+" /** Provides access to all beans within the application. */\n"
+" public Instance<Object> instance() {...}\n"
+"\n"
+" /** Provides access to all events within the application. */\n"
+" public Event<Object> event() {...}\n"
+"\n"
+" /** Provides direct access to the BeanManager. */\n"
+" public BeanManager getBeanManager() {...}\n"
+"\n"
"}]]>"
+msgstr ""
#. Tag: para
-#: environments.xml:279
-#, fuzzy, no-c-format
+#: environments.xml:331
+#, 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>."
+"Here's an example application main method which uses this API to initialize "
+"a bean of type <literal>MyApplicationBean</literal>."
msgstr ""
-"コマンドラインパラメータは <literal>@Deployed Manager</literal> イベントが発"
-"生するまでインジェクションで利用できません。もしあなたが初期化の間にそのパラ"
-"メータにアクセスする必要があるのであれば、あなたは <literal>StartMain</"
-"literal> の <literal>public static String getParameters()</literal> メソッド"
-"を通してそれをすることができます。"
+#. Tag: programlisting
+#: environments.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.instance().select(MyApplicationBean.class).get();\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:336
+#, no-c-format
+msgid ""
+"Alternatively the application could be started by firing a custom event "
+"which would then be observed by another simple bean. The following example "
+"fires <literal>MyEvent</literal> on startup."
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.event().select(MyEvent.class).fire( new MyEvent() );\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: environments.xml:348
+#, no-c-format
+msgid "Setting the Classpath"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:350
+#, no-c-format
+msgid ""
+"Weld SE comes packaged as a 'shaded' jar which includes the CDI API, Weld "
+"Core and all dependant classes bundled into a single jar. Therefore the only "
+"Weld jar you need on the classpath, in addition to your application's "
+"classes and dependant jars, is the Weld SE jar."
+msgstr ""
+
+#~ msgid "Typesafe Dependency Injection"
+#~ msgstr "タイプセーフな依存性注入"
+
+#~ msgid "Application and Dependent Contexts"
+#~ msgstr "アプリケーションコンテキストと依存コンテキスト"
+
+#~ msgid "Typesafe Event Model"
+#~ msgstr "タイプセーフイベントモデル"
+
+#, fuzzy
#~ msgid ""
+#~ "<![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]]>"
+
+#, fuzzy
+#~ 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 ""
+#~ "もしあなたが例えばカスタムコンテキストの登録やBeanのリソースの初期化のよう"
+#~ "なWeb Beansマネージャの何かカスタムの初期化を行う必要があるのであれば、あ"
+#~ "なたは <literal>@Initialized Manager</literal> イベントへのレスポンスでそ"
+#~ "れをすることができます。以下のサンプルはカスタムコンテキストを登録していま"
+#~ "す。"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[public class PerformSetup {\n"
+#~ " public void setup(@Observes AfterBeanDiscovery event) {\n"
+#~ " event.addContext( ThreadContext.INSTANCE );\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class PerformSetup\n"
+#~ "{\n"
+#~ "\n"
+#~ " public void setup( @Observes @Initialized Manager manager )\n"
+#~ " {\n"
+#~ " manager.addContext( ThreadContext.INSTANCE );\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ 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."
Modified: doc/trunk/reference/ja-JP/example.po
===================================================================
--- doc/trunk/reference/ja-JP/example.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/example.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -25,14 +25,16 @@
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:"
+"request-scoped bean to hold the username and password entered during login, "
+"with constraints defined using annotations from the Bean Validation "
+"specification:"
msgstr ""
"完全な例でこの考えを説明しましょう。JSF を 使用するアプリケーションとしてユー"
"ザのログイン / ログアウトを実装します。まず最初に、ログインしている間にユーザ"
"名とパスワードを保持しておくための Web Bean を定義するでしょう:"
#. Tag: programlisting
-#: example.xml:11
+#: example.xml:12
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Named @RequestScoped\n"
@@ -40,9 +42,11 @@
" private String username;\n"
" private String password;\n"
" \n"
+" @NotNull @Length(min=3, max=25)\n"
" public String getUsername() { return username; }\n"
" public void setUsername(String username) { this.username = username; }\n"
" \n"
+" @NotNull @Length(min=6, max=20)\n"
" public String getPassword() { return password; }\n"
" public void setPassword(String password) { this.password = password; }\n"
"}]]>"
@@ -62,22 +66,24 @@
"}]]>"
#. Tag: para
-#: example.xml:13
+#: example.xml:14
#, 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
+#: example.xml:16
#, 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"
+" <f:validateBean>\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"
+" </f:validateBean>\n"
" </h:panelGrid>\n"
" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
"login.loggedIn}\"/>\n"
@@ -99,9 +105,52 @@
"</f:form]]>"
#. Tag: para
-#: example.xml:17
+#: example.xml:18
+#, no-c-format
+msgid "Users are represented by a JPA entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:22
#, fuzzy, no-c-format
msgid ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+" private @NotNull @Length(min=3, max=25) @Id String username;\n"
+" private @NotNull @Length(min=6, max=20) String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" public String setPassword(String password) { this.password = password; }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Named\n"
+"public class Credentials {\n"
+" \n"
+" private String username;\n"
+" private String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" \n"
+" public String getPassword() { return password; }\n"
+" public void setPassword(String password) { this.password = password; }\n"
+" \n"
+"}]]>"
+
+#. Tag: para
+#: example.xml:24
+#, no-c-format
+msgid ""
+"(Note that we're also going to need a <literal>persistence.xml</literal> "
+"file to configure the JPA persistence unit containing <literal>User</"
+"literal>.)"
+msgstr ""
+
+#. Tag: para
+#: example.xml:29
+#, 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:"
@@ -111,7 +160,7 @@
"ティを公開します:"
#. Tag: programlisting
-#: example.xml:22
+#: example.xml:34
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped @Named\n"
@@ -190,7 +239,7 @@
"}]]>"
#. Tag: para
-#: example.xml:24
+#: example.xml:36
#, no-c-format
msgid ""
"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
@@ -198,7 +247,7 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:26
+#: example.xml:38
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -212,7 +261,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: programlisting
-#: example.xml:28
+#: example.xml:40
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -226,7 +275,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: para
-#: example.xml:30
+#: example.xml:42
#, no-c-format
msgid ""
"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
@@ -234,16 +283,17 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:34
+#: example.xml:46
#, no-c-format
msgid ""
-"<![CDATA[public class UserDatabaseProducer {\n"
-" @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"<![CDATA[class UserDatabaseProducer {\n"
+" @Produces @UserDatabase @PersistenceContext \n"
+" static EntityManager userDatabase;\n"
"}]]>"
msgstr ""
#. Tag: para
-#: example.xml:36
+#: example.xml:48
#, fuzzy, no-c-format
msgid ""
"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
@@ -252,7 +302,7 @@
"これで他の Web Bean に、現在のユーザを簡単にインジェクトすることができます:"
#. Tag: programlisting
-#: example.xml:38
+#: example.xml:50
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class DocumentEditor {\n"
@@ -280,13 +330,13 @@
"}]]>"
#. Tag: para
-#: example.xml:40
+#: example.xml:52
#, no-c-format
msgid "Or we can reference the current user in a JSF view:"
msgstr ""
#. Tag: programlisting
-#: example.xml:42
+#: example.xml:54
#, no-c-format
msgid ""
"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
@@ -295,7 +345,7 @@
msgstr ""
#. Tag: para
-#: example.xml:44
+#: example.xml:56
#, fuzzy, no-c-format
msgid ""
"Hopefully, this example gave you a taste of the CDI programming model. In "
Modified: doc/trunk/reference/ja-JP/extend.po
===================================================================
--- doc/trunk/reference/ja-JP/extend.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/extend.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-04-27 12:26+0900\n"
"Last-Translator: wadahiro <wadahiro at gmail.com>\n"
"Language-Team: none\n"
@@ -95,53 +95,229 @@
"some other source"
msgstr ""
+#. Tag: title
+#: extend.xml:58
+#, fuzzy, no-c-format
+msgid "Creating an <literal>Extension</literal>"
+msgstr "<literal>Bean</literal>クラス"
+
#. Tag: para
-#: extend.xml:57
-#, fuzzy, no-c-format
+#: extend.xml:60
+#, no-c-format
msgid ""
-"The nerve center for extending CDI is the <literal>BeanManager</literal> "
-"object."
+"The first step in creating a portable extension is to write a class that "
+"implements <literal>Extension</literal>. This marker interface does not "
+"define any methods, but it's needed to satisfy the requirements of Java SE's "
+"service provider architecture."
msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:66
+#, no-c-format
+msgid "class MyExtension implements Extension { ... }"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:68
+#, no-c-format
+msgid ""
+"Next, we need to register our extension as a service provider by creating a "
+"file named <literal>META-INF/services/javax.enterprise.inject.spi.Extension</"
+"literal>, which contains the name of our extension class:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:74
+#, no-c-format
+msgid "org.mydomain.extension.MyExtension"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:76
+#, no-c-format
+msgid ""
+"An extension is not a bean, exactly, since it is instantiated by the "
+"container during the initialization process, before any beans or contexts "
+"exist. However, it can be injected into other beans once the initialization "
+"process is complete."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:82
+#, no-c-format
+msgid ""
+"@Inject \n"
+"MyBean(MyExtension myExtension) {\n"
+" myExtension.doSomething();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:84
+#, no-c-format
+msgid ""
+"And, like beans, extensions can have observer methods. Usually, the observer "
+"methods observe <emphasis>container lifecycle events</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:92
+#, no-c-format
+msgid "Container lifecycle events"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:94
+#, no-c-format
+msgid ""
+"During the initialization process, the container fires a series of events, "
+"including:"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:101
+#, no-c-format
+msgid "BeforeBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:106
+#, no-c-format
+msgid "ProcessAnnotatedType"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:110
+#, no-c-format
+msgid ""
+"<literal>ProcessInjectionTarget</literal> and <literal>ProcessProducer</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:115
+#, no-c-format
+msgid ""
+"<literal>ProcessBean</literal> and <literal>ProcessObserverMethod</literal>"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:121
+#, no-c-format
+msgid "AfterBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:126
+#, no-c-format
+msgid "AfterDeploymentValidation"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:131
+#, no-c-format
+msgid "Extensions may observe these events:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {\n"
+" Logger.global.debug(\"beginning the scanning process\");\n"
+" }\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" Logger.global.debug(\"scanning type: \" + pat.getAnnotatedType()."
+"getJavaClass().getName());\n"
+" } \n"
+"\n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {\n"
+" Logger.global.debug(\"finished the scanning process\");\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:137
+#, no-c-format
+msgid ""
+"In fact, the extension can do a lot more than just observe. The extension is "
+"permitted to modify the container's metamodel and more. Here's a very simple "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" //tell the container to ignore the type if it is annotated @Ignore\n"
+" if ( pat.getAnnotatedType().isAnnotionPresent(Ignore.class) ) pat.veto"
+"(); \n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:144
+#, fuzzy, no-c-format
+msgid "The observer method may inject a <literal>BeanManager</literal>"
+msgstr ""
"Web Beansを拡張するための中枢部は<literal>Manager</literal>オブジェクトです。"
+#. Tag: programlisting
+#: extend.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> "
+"pat, BeanManager beanManager) { ... }]]>"
+msgstr ""
+
#. Tag: title
-#: extend.xml:62
+#: extend.xml:153
#, fuzzy, no-c-format
msgid "The <literal>BeanManager</literal> object"
msgstr "<literal>Manager</literal>オブジェクト"
#. Tag: para
-#: extend.xml:64
+#: extend.xml:155
#, fuzzy, no-c-format
msgid ""
-"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object. 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:69
+#: extend.xml:161
#, no-c-format
msgid ""
-"<![CDATA[public interface Manager {\n"
+"<![CDATA[public interface BeanManager {\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(Type beanType, Annotation... qualifiers);\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"
-" public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
-"Annotation... bindings);\n"
+" public void fireEvent(Object event, Annotation... qualifiers);\n"
+" public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, "
+"Annotation... qualifiers);\n"
" public List<Decorator<?>> resolveDecorators(Set<Type> types, "
-"Annotation... bindings);\n"
+"Annotation... qualifiers);\n"
" public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
"Annotation... interceptorBindings);\n"
" public boolean isScope(Class<? extends Annotation> annotationType);\n"
@@ -150,11 +326,11 @@
" public boolean isPassivatingScope(Class<? extends Annotation> "
"annotationType);\n"
" public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
-" public boolean isInterceptorBindingType(Class<? extends Annotation> "
+" public boolean isInterceptorBinding(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> getInterceptorBindingDefinition(Class<? extends "
+"Annotation> bindingType);\n"
" public Set<Annotation> getStereotypeDefinition(Class<? extends "
"Annotation> stereotype);\n"
" public Context getContext(Class<? extends Annotation> scopeType);\n"
@@ -168,22 +344,23 @@
msgstr ""
#. Tag: para
-#: extend.xml:71
+#: extend.xml:163
#, fuzzy, no-c-format
msgid ""
-"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+"Any bean or other Java EE component which supports injection can obtain an "
+"instance of <literal>BeanManager</literal> via injection:"
msgstr ""
"<literal>Manager</literal>インスタンスをインジェクションで取得することができ"
"ます。"
#. Tag: programlisting
-#: extend.xml:73
+#: extend.xml:166
#, fuzzy, no-c-format
-msgid "@Inject BeanManager beanManager"
+msgid "@Inject BeanManager beanManager;"
msgstr "@Current Manager manager"
#. Tag: para
-#: extend.xml:75
+#: extend.xml:168
#, no-c-format
msgid ""
"Java EE components may obtain an instance of <literal>BeanManager</literal> "
@@ -193,7 +370,7 @@
msgstr ""
#. Tag: para
-#: extend.xml:81
+#: extend.xml:174
#, fuzzy, no-c-format
msgid ""
"Let's study some of the interfaces exposed by the <literal>BeanManager</"
@@ -202,25 +379,99 @@
"Web Beansを拡張するための中枢部は<literal>Manager</literal>オブジェクトです。"
#. Tag: title
-#: extend.xml:86
+#: extend.xml:179
#, fuzzy, no-c-format
+msgid "The <literal>InjectionTarget</literal> interface"
+msgstr "<literal>Context</literal>インタフェース"
+
+#. Tag: para
+#: extend.xml:181
+#, no-c-format
+msgid ""
+"The first thing that a framework developer is going to look for in the "
+"portable extension SPI is a way to inject CDI beans into objects which are "
+"not under the control of CDI. The <literal>InjectionTarget</literal> "
+"interface makes this very easy."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:188
+#, no-c-format
+msgid ""
+"We recommend that frameworks let CDI take over the job of actually "
+"instantiating the framework-controlled objects. That way, the framework-"
+"controlled objects can take advantage of constructor injection. However, if "
+"the framework requires use of a constructor with a special signature, the "
+"framework will need to instatiate the object itself, and so only method and "
+"field injection will be supported."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[//get the BeanManager from JNDI\n"
+"BeanManager beanManager = (BeanManager) new InitialContext().lookup(\"java:"
+"comp/BeanManager\");\n"
+"\n"
+"//CDI uses an AnnotatedType object to read the annotations of a class\n"
+"AnnotatedType<SomeFrameworkComponent> type = beanManager.createAnnotatedType"
+"(SomeFrameworkComponent.class);\n"
+"\n"
+"//The extension uses an InjectionTarget to delegate instantiation, "
+"dependency injection \n"
+"//and lifecycle callbacks to the CDI container\n"
+"InjectionTarget<SomeFrameworkComponent> it = beanManager."
+"createInjectionTarget(type);\n"
+"\n"
+"//each instance needs its own CDI CreationalContext\n"
+"CreationalContext ctx = beanManager.createCreationalContext(null);\n"
+"\n"
+"//instantiate the framework component and inject its dependencies\n"
+"SomeFrameworkComponent instance = it.produce(ctx); //call the constructor\n"
+"it.inject(instance, ctx); //call initializer methods and perform field "
+"injection\n"
+"it.postConstruct(instance); //call the @PostConstruct method\n"
+"\n"
+"...\n"
+"\n"
+"//destroy the framework component instance and clean up dependent objects\n"
+"it.preDestroy(instance); //call the @PreDestroy method\n"
+"it.dispose(instance); //it is now safe to discard the instance\n"
+"ctx.release(); //clean up dependent objects\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:201
+#, fuzzy, no-c-format
msgid "The <literal>Bean</literal> interface"
msgstr "<literal>Context</literal>インタフェース"
#. Tag: para
-#: extend.xml:88
+#: extend.xml:203
#, 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."
+"<literal>BeanManager</literal> object for every bean in the application. "
+"There are even <literal>Bean</literal> objects representing interceptors, "
+"decorators and producer methods."
msgstr ""
"抽象クラスである<literal>Bean</literal>のインスタンスはWeb Beansを表します。"
"アプリケーションにはあらゆるWeb Beanのために、<literal>Manager</literal>オブ"
"ジェクトに登録された<literal>Bean</literal>のインスタンスがあります。"
+#. Tag: para
+#: extend.xml:210
+#, no-c-format
+msgid ""
+"The <literal>Bean</literal> interface exposes all the interesting things we "
+"dicussed in <xref linkend=\"bean-anatomy\"/>."
+msgstr ""
+
#. Tag: programlisting
-#: extend.xml:94
+#: extend.xml:215
#, no-c-format
msgid ""
"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
@@ -237,16 +488,28 @@
msgstr ""
#. Tag: para
-#: extend.xml:96
+#: extend.xml:217
+#, no-c-format
+msgid "There's an easy way to find out what beans exist in the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[Set<Bean<?>> allBeans = beanManager.getBeans(Obect.class, new "
+"AnnotationLiteral<Any>() {});]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:223
#, 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."
+"The <literal>Bean</literal> interface makes it possible for a portable "
+"extension 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>を呼びインスタンスを登録する"
@@ -255,25 +518,480 @@
"えば、別のフレームワークによって管理されたオブジェクトをWeb Beansにインジェク"
"ト可能にするために、<literal>Bean</literal>クラスを使用できます。"
+#. Tag: title
+#: extend.xml:233
+#, fuzzy, no-c-format
+msgid "Registering a <literal>Bean</literal>"
+msgstr "<literal>Bean</literal>クラス"
+
#. Tag: para
-#: extend.xml:104
-#, fuzzy, no-c-format
+#: extend.xml:235
+#, no-c-format
msgid ""
-"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
-"specification: <literal>Interceptor</literal> and <literal>Decorator</"
-"literal>."
+"The most common kind of CDI portable extension registers a bean (or beans) "
+"with the container."
msgstr ""
-"Web Beansの仕様で定義された二つの<literal>Bean</literal>のサブクラスがありま"
-"す。<literal>Interceptor</literal>と<literal>Decorator</literal>です。"
+#. Tag: para
+#: extend.xml:239
+#, no-c-format
+msgid ""
+"In this example, we make a framework class, <literal>SecurityManager</"
+"literal> available for injection. To make things a bit more interesting, "
+"we're going to delegate back to the container's <literal>InjectionTarget</"
+"literal> to perform instantiation and injection upon the "
+"<literal>SecurityManager</literal> instance."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:246
+#, no-c-format
+msgid ""
+"<![CDATA[public class SecurityManagerExtension implements Extension {\n"
+" \n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager "
+"bm) {\n"
+" \n"
+" //use this to read annotations of the class\n"
+" AnnotatedType<SecurityManager> at = bm.createAnnotatedType"
+"(SecurityManager.class); \n"
+"\n"
+" //use this to instantiate the class and inject dependencies\n"
+" final InjectionTarget<SecurityManager> it = bm.createInjectionTarget"
+"(at); \n"
+"\n"
+" abd.addBean( new Bean<SecurityManager>() {\n"
+"\n"
+" @Override\n"
+" public Class<?> getBeanClass() {\n"
+" return SecurityManager.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public String getName() {\n"
+" return \"securityManager\";\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getQualifiers() {\n"
+" Set<Annotation> qualifiers = new HashSet<Annotation>();\n"
+" qualifiers.add( new AnnotationLiteral<Default>() {} );\n"
+" qualifiers.add( new AnnotationLiteral<Any>() {} );\n"
+" return qualifiers;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<? extends Annotation> getScope() {\n"
+" return SessionScoped.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Class<? extends Annotation>> getStereotypes() {\n"
+" return Collections.emptySet();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypes() {\n"
+" Set<Type> types = new HashSet<Type>();\n"
+" types.add(SecurityManager.class);\n"
+" types.add(Object.class);\n"
+" return types;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAlternative() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isNullable() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public SecurityManager create(CreationalContext<SecurityManager> "
+"ctx) {\n"
+" SecurityManager instance = it.produce(ctx);\n"
+" it.inject(instance, ctx);\n"
+" it.postConstruct(instance);\n"
+" return instance;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void destroy(SecurityManager instance, \n"
+" CreationalContext<SecurityManager> ctx) {\n"
+" it.preDestroy(instance);\n"
+" it.dispose(instance);\n"
+" ctx.release();\n"
+" }\n"
+" \n"
+" } );\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:248
+#, no-c-format
+msgid ""
+"But a portable extension can also mess with beans that are discovered "
+"automatically by the container."
+msgstr ""
+
#. Tag: title
-#: extend.xml:112
+#: extend.xml:255
#, no-c-format
+msgid "Wrapping an <literal>AnnotatedType</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:257
+#, no-c-format
+msgid ""
+"One of the most interesting things that an extension class can do is process "
+"the annotations of a bean class <emphasis>before</emphasis> the container "
+"builds its metamodel."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:262
+#, no-c-format
+msgid ""
+"Let's start with an example of an extension that provides support for the "
+"use of <literal>@Named</literal> at the package level. The package-level "
+"name is used to qualify the EL names of all beans defined in that package. "
+"The portable extension uses the <literal>ProcessAnnotatedType</literal> "
+"event to wrap the <literal>AnnotatedType</literal> object and override the "
+"<literal>value()</literal> of the <literal>@Named</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[public class QualifiedNameExtension implements Extension {\n"
+"\n"
+" <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) {\n"
+"\n"
+" //wrap this to override the annotations of the class\n"
+" final AnnotatedType<X> at = pat.getAnnotatedType();\n"
+" \n"
+" AnnotatedType<X> wrapped = new AnnotatedType<X>() {\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedConstructor<X>> getConstructors() {\n"
+" return at.getConstructors();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedField<? super X>> getFields() {\n"
+" return at.getFields();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<X> getJavaClass() {\n"
+" return at.getJavaClass();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedMethod<? super X>> getMethods() {\n"
+" return at.getMethods();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public <T extends Annotation> T getAnnotation(final Class<T> "
+"annType) {\n"
+" if ( Named.class.equals(annType) ) {\n"
+" class NamedLiteral \n"
+" extends AnnotationLiteral<Named> \n"
+" implements Named {\n"
+" @Override\n"
+" public String value() {\n"
+" Package pkg = at.getClass().getPackage();\n"
+" String unqualifiedName = at.getAnnotation(Named."
+"class).value();\n"
+" final String qualifiedName;\n"
+" if ( pkg.isAnnotationPresent(Named.class) ) {\n"
+" qualifiedName = pkg.getAnnotation(Named."
+"class).value() \n"
+" + '.' + unqualifiedName;\n"
+" }\n"
+" else {\n"
+" qualifiedName = unqualifiedName;\n"
+" }\n"
+" return qualifiedName;\n"
+" }\n"
+" }\n"
+" return (T) new NamedLiteral();\n"
+" }\n"
+" else {\n"
+" return at.getAnnotation(annType);\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getAnnotations() {\n"
+" return at.getAnnotations();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Type getBaseType() {\n"
+" return at.getBaseType();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypeClosure() {\n"
+" return at.getTypeClosure();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annType) {\n"
+" return at.isAnnotationPresent(annType);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:272
+#, no-c-format
+msgid ""
+"Here's a second example, which adds the <literal>@Alternative</literal> "
+"annotation to any class which implements a certain <literal>Service</"
+"literal> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[class ServiceAlternativeExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" \n"
+" final AnnotatedType<T> type = pat.getAnnotatedType();\n"
+" \n"
+" if ( Service.class.isAssignableFrom( type.getJavaClass() ) ) {\n"
+" \n"
+" //if the class implements Service, make it an @Alternative\n"
+" AnnotatedType<T> wrapped = new AnnotatedType<T>() {\n"
+" \n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annotationType) {\n"
+" return annotationType.equals(Alternative.class) ? \n"
+" true : type.isAnnotationPresent(annotationType);\n"
+" }\n"
+" \n"
+" //remaining methods of AnnotatedType\n"
+" ...\n"
+" }\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:283
+#, no-c-format
+msgid ""
+"The <literal>AnnotatedType</literal> is not the only thing that can be "
+"wrapped by an extension."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:288
+#, no-c-format
+msgid "Wrapping an <literal>InjectionTarget</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:290
+#, no-c-format
+msgid ""
+"The <literal>InjectionTarget</literal> interface exposes operations for "
+"producing and disposing an instance of a component, injecting its "
+"dependencies and invoking its lifecycle callbacks. A portable extension may "
+"wrap the <literal>InjectionTarget</literal> for any Java EE component that "
+"supports injection, allowing it to intercept any of these operations when "
+"they are invoked by the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:297
+#, no-c-format
+msgid ""
+"Here's a CDI portable extension that reads values from properties files and "
+"configures fields of Java EE components, including servlets, EJBs, managed "
+"beans, interceptors and more. In this example, properties for a class such "
+"as <literal>org.mydomain.blog.Blogger</literal> go in a resource named "
+"<literal>org/mydomain/blog/Blogger.properties</literal>, and the name of a "
+"property must match the name of the field to be configured. So "
+"<literal>Blogger.properties</literal> could contain:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:305
+#, no-c-format
+msgid ""
+"firstName=Gavin\n"
+"lastName=King"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:307
+#, no-c-format
+msgid ""
+"The portable extension works by wrapping the containers "
+"<literal>InjectionTarget</literal> and setting field values from the "
+"<literal>inject()</literal> method."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:310
+#, no-c-format
+msgid ""
+"<![CDATA[public class ConfigExtension implements Extension {\n"
+"\n"
+" <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> "
+"pit) {\n"
+" \n"
+" //wrap this to intercept the component lifecycle\n"
+" final InjectionTarget<X> it = pit.getInjectionTarget();\n"
+" \n"
+" final Map<Field, Object> configuredValues = new HashMap<Field, "
+"Object>();\n"
+" \n"
+" //use this to read annotations of the class and its members\n"
+" AnnotatedType<X> at = pit.getAnnotatedType();\n"
+" \n"
+" //read the properties file\n"
+" String propsFileName = at.getClass().getSimpleName() + \".properties"
+"\";\n"
+" InputStream stream = at.getJavaClass().getResourceAsStream"
+"(propsFileName);\n"
+" if (stream!=null) {\n"
+" \n"
+" try {\n"
+" Properties props = new Properties();\n"
+" props.load(stream);\n"
+" for (Map.Entry<Object, Object> property : props.entrySet()) "
+"{\n"
+" String fieldName = property.getKey().toString();\n"
+" Object value = property.getValue();\n"
+" try {\n"
+" Field field = at.getJavaClass().getField"
+"(fieldName);\n"
+" field.setAccessible(true);\n"
+" if ( field.getType().isAssignableFrom( value.getClass"
+"() ) ) {\n"
+" configuredValues.put(field, value);\n"
+" }\n"
+" else {\n"
+" //TODO: do type conversion automatically\n"
+" pit.addDefinitionError( new InjectionException(\n"
+" \"field is not of type String: \" + "
+"field ) );\n"
+" }\n"
+" }\n"
+" catch (NoSuchFieldException nsfe) {\n"
+" pit.addDefinitionError(nsfe);\n"
+" }\n"
+" finally {\n"
+" stream.close();\n"
+" }\n"
+" }\n"
+" }\n"
+" catch (IOException ioe) {\n"
+" pit.addDefinitionError(ioe);\n"
+" }\n"
+" }\n"
+" \n"
+" InjectionTarget<X> wrapped = new InjectionTarget<X>() {\n"
+"\n"
+" @Override\n"
+" public void inject(X instance, CreationalContext<X> ctx) {\n"
+" it.inject(instance, ctx);\n"
+" \n"
+" //set the values onto the new instance of the component\n"
+" for (Map.Entry<Field, Object> configuredValue: "
+"configuredValues.entrySet()) {\n"
+" try {\n"
+" configuredValue.getKey().set(instance, "
+"configuredValue.getValue());\n"
+" }\n"
+" catch (Exception e) {\n"
+" throw new InjectionException(e);\n"
+" }\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void postConstruct(X instance) {\n"
+" it.postConstruct(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void preDestroy(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void dispose(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public X produce(CreationalContext<X> ctx) {\n"
+" return it.produce(ctx);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pit.setInjectionTarget(wrapped);\n"
+" \n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:312
+#, no-c-format
+msgid ""
+"There's a lot more to the portable extension SPI than what we've discussed "
+"here. Check out the CDI spec or Javadoc for more information. For now, we'll "
+"just mention one more extension point."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:320
+#, no-c-format
msgid "The <literal>Context</literal> interface"
msgstr "<literal>Context</literal>インタフェース"
#. Tag: para
-#: extend.xml:114
+#: extend.xml:322
#, fuzzy, no-c-format
msgid ""
"The <literal>Context</literal> interface supports addition of new scopes to "
@@ -283,7 +1001,7 @@
"または新しい環境での組み込みスコープの拡張をサポートします。"
#. Tag: programlisting
-#: extend.xml:119
+#: extend.xml:327
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface Context {\n"
@@ -305,7 +1023,7 @@
"}"
#. Tag: para
-#: extend.xml:121
+#: extend.xml:329
#, fuzzy, no-c-format
msgid ""
"For example, we might implement <literal>Context</literal> to add a business "
@@ -316,6 +1034,15 @@
"使用するアプリケーションに対話スコープのサポートを追加するために、"
"<literal>Context</literal>を実装するかもしれません。"
+#, fuzzy
+#~ 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>です。"
+
#~ msgid "Extending Web Beans"
#~ msgstr "Web Beansを拡張する"
@@ -438,9 +1165,6 @@
#~ "\n"
#~ "}]]>"
-#~ msgid "The <literal>Bean</literal> class"
-#~ msgstr "<literal>Bean</literal>クラス"
-
#~ msgid ""
#~ "public abstract class Bean<T> {\n"
#~ " \n"
Modified: doc/trunk/reference/ja-JP/extensions.po
===================================================================
--- doc/trunk/reference/ja-JP/extensions.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/extensions.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -39,10 +39,9 @@
#, 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."
+"of a logger object into any CDI bean. Simply create an injection point of "
+"type <literal>org.slf4j.Logger</literal> and an appropriate logger object "
+"will be injected into any instance of the bean."
msgstr ""
"あなたのアプリケーションへのロギングの追加はJSR-299 beanへのロガーオブジェク"
"トを単純なインジェクションよりも今やずっと簡単です。単に <emphasis>@Logger</"
@@ -51,19 +50,19 @@
"トされるでしょう。"
#. Tag: programlisting
-#: extensions.xml:26
+#: extensions.xml:25
#, fuzzy, no-c-format
msgid ""
-"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
-"import org.jboss.weld.log.Log;\n"
+"<![CDATA[import org.slf4j.Logger;\n"
+"import javax.inject.Inject;\n"
"\n"
"public class Checkout {\n"
-" private @Inject @Logger Log log;\n"
+" private @Inject Logger log;\n"
"\n"
" public void invoiceItems() {\n"
" ShoppingCart cart;\n"
" ...\n"
-" log.debug(\"Items invoiced for {0}\", cart);\n"
+" log.debug(\"Items invoiced for {}\", cart);\n"
" }\n"
"}]]>"
msgstr ""
@@ -83,42 +82,21 @@
"}]]>"
#. Tag: para
-#: extensions.xml:28
-#, fuzzy, no-c-format
+#: 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 "
-"<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."
+"The example shows how objects can be interpolated into a message. If you use "
+"this approach, you do not need to surround a call to the logger with a "
+"condition like <literal>if ( log.isDebugEnabled() )</literal> to avoid "
+"string concatenation."
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:41
+#: extensions.xml:34
#, 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 "
+"You can add Weld logging 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 ""
@@ -128,7 +106,7 @@
"しても良いです。"
#. Tag: para
-#: extensions.xml:46
+#: extensions.xml:39
#, fuzzy, no-c-format
msgid ""
"If you are using Weld as your JSR-299 implementation, there's no need to "
@@ -137,3 +115,32 @@
"もしあなたがJSR-299実装としてWeb Beansを利用しているのであれば、すでにインク"
"ルード済みなので、 <literal>webbeans-logging.jar</literal> をインクルードする"
"必要はありません。"
+
+#, fuzzy
+#~ 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 アノテーションを使ってロギングをインジェク"
+#~ "トするとき、そのメッセージが実際にログ出力されない限りはそのオブジェクト引"
+#~ "数は評価されないので条件テストは除外することができます。"
Modified: doc/trunk/reference/ja-JP/gettingstarted.po
===================================================================
--- doc/trunk/reference/ja-JP/gettingstarted.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/gettingstarted.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2008-12-19 20:26+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -155,9 +155,9 @@
#: gettingstarted.xml:83
#, no-c-format
msgid ""
-"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"To deploy the examples to JBoss AS, you'll need <ulink url=\"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="
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink url="
"\"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 "
@@ -191,7 +191,7 @@
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."
+"<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:"
@@ -268,21 +268,24 @@
#, no-c-format
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 "
+"<ulink url=\"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
-#, no-c-format
+#, fuzzy, no-c-format
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>."
msgstr ""
+"ここでは、コンテキストパスを親切なurl (<ulink url=\"http://localhost:8080/"
+"webbeans-translator\">http://localhost:8080/webbeans-translator</ulink>) に設"
+"定します。"
#. Tag: para
#: gettingstarted.xml:152
@@ -369,7 +372,7 @@
#, 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/"
+"bored, read the log messages), and visit <ulink url=\"http://localhost:8080/"
"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
"pseudo-translating."
msgstr ""
@@ -405,10 +408,10 @@
#: gettingstarted.xml:221
#, no-c-format
msgid ""
-"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"To deploy the examples to GlassFish, you'll need the final <ulink url="
"\"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/"
+"download a <ulink url=\"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, "
@@ -469,7 +472,7 @@
#: gettingstarted.xml:255
#, no-c-format
msgid ""
-"You deploy applications to GlassFish using the <ulink src=\"http://"
+"You deploy applications to GlassFish using the <ulink url=\"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 "
@@ -487,14 +490,14 @@
#, no-c-format
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 "
+"URL <ulink url=\"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://"
+"start it. You can see the examples running at either <ulink url=\"http://"
"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
-"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"ulink> or <ulink url=\"http://localhost:7070/weld-translator\">http://"
"localhost:7070/weld-translator</ulink>, depending on which example you "
"deployed."
msgstr ""
@@ -539,7 +542,7 @@
#, 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."
+"need to download Tomcat 6.0.18 or later from <ulink url=\"http://tomcat."
"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
msgstr ""
"Tomcat 6.0.18 以降を <ulink url=\"http://tomcat.apache.org/download-60.cgi"
@@ -689,7 +692,7 @@
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>!"
msgstr ""
@@ -878,7 +881,7 @@
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://"
+"URL: <ulink url=\"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 ""
@@ -958,7 +961,7 @@
"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"
+"application at the following local URL: <ulink url=\"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 ""
Modified: doc/trunk/reference/ja-JP/injection.po
===================================================================
--- doc/trunk/reference/ja-JP/injection.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/injection.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -553,12 +553,55 @@
#. Tag: title
#: injection.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"The built-in qualifiers <literal>@Default</literal> and <literal>@Any</"
+"literal>"
+msgstr ""
+"シンプルWeb Beanは<literal>@PostConstruct</literal>と<literal>@PreDestroy</"
+"literal>のみをコールバックとしてサポートします。"
+
+#. Tag: para
+#: injection.xml:218
#, no-c-format
+msgid ""
+"Whenever a bean or injection point does not explicitly declare a qualifier, "
+"the container assumes the qualifier <literal>@Default</literal>. From time "
+"to time, you'll need to decare an injection point without specifying a "
+"qualifier. There's a qualifier for that too. All beans have the qualifier "
+"<literal>@Any</literal>. Therefore, by explicitly specifying <literal>@Any</"
+"literal> at an injection point, you suppress the default qualifier, without "
+"otherwise restricting the beans that are eligible for injection."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:225
+#, no-c-format
+msgid ""
+"This is especially useful if you want to iterate over all beans with a "
+"certain bean type. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:226
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject \n"
+"void initServices(@Any Instance<Service> services) { \n"
+" for (Service service: services) {\n"
+" service.init();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: injection.xml:232
+#, no-c-format
msgid "Qualifiers with members"
msgstr ""
#. Tag: para
-#: injection.xml:218
+#: injection.xml:234
#, no-c-format
msgid ""
"Java annotations can have members. We can use annotation members to further "
@@ -569,7 +612,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:224
+#: injection.xml:240
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -587,14 +630,14 @@
"}]]>"
#. Tag: para
-#: injection.xml:226
+#: injection.xml:242
#, no-c-format
msgid ""
"Then we select one of the possible member values when appling the qualifier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:230
+#: injection.xml:246
#, fuzzy, no-c-format
msgid ""
"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
@@ -602,18 +645,18 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:232
+#: injection.xml:248
#, 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>."
+"annotating the member <literal>@Nonbinding</literal>."
msgstr ""
"バインディングアノテーションタイプのメンバーに@NonBindingアノテーションをつけ"
"ることによって、Web Beanマネージャがメンバを無視するように指定することもでき"
"ます。"
#. Tag: programlisting
-#: injection.xml:237
+#: injection.xml:253
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -621,7 +664,7 @@
"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
"public @interface PayBy {\n"
" PaymentMethod value();\n"
-" @NonBinding String comment() default \"\";\n"
+" @Nonbinding String comment() default \"\";\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -632,20 +675,20 @@
"}]]>"
#. Tag: title
-#: injection.xml:242
+#: injection.xml:258
#, no-c-format
msgid "Multiple qualifiers"
msgstr ""
#. Tag: para
-#: injection.xml:244
+#: injection.xml:260
#, fuzzy, no-c-format
msgid "An injection point may specify multiple qualifiers:"
msgstr ""
"注入箇所に、複数のバインディングアノテーションを指定することもできます。"
#. Tag: programlisting
-#: injection.xml:248
+#: injection.xml:264
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
@@ -654,7 +697,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:250
+#: injection.xml:266
#, fuzzy, no-c-format
msgid ""
"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
@@ -664,7 +707,7 @@
"Web Beanのみが、注入する対象として適格となります。"
#. Tag: programlisting
-#: injection.xml:255
+#: injection.xml:271
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Synchronous @Reliable\n"
@@ -679,13 +722,13 @@
"}]]>"
#. Tag: title
-#: injection.xml:260
+#: injection.xml:276
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: injection.xml:262
+#: injection.xml:278
#, no-c-format
msgid ""
"Alternatives are beans whose implementation is specific to a particular "
@@ -695,7 +738,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:266
+#: injection.xml:282
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
@@ -709,7 +752,7 @@
"}]]>"
#. Tag: para
-#: injection.xml:268
+#: injection.xml:284
#, no-c-format
msgid ""
"By default, <literal>@Alternative</literal> beans are disabled. We need to "
@@ -719,7 +762,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:274
+#: injection.xml:290
#, no-c-format
msgid ""
"<![CDATA[<beans\n"
@@ -735,7 +778,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:276
+#: injection.xml:292
#, no-c-format
msgid ""
"When an ambiguous dependency exists at an injection point, the container "
@@ -745,13 +788,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:285
+#: injection.xml:301
#, fuzzy, no-c-format
msgid "Fixing unsatisfied and ambiguous dependencies"
msgstr "依存性を充たすように修正する"
#. Tag: para
-#: injection.xml:287
+#: injection.xml:303
#, fuzzy, no-c-format
msgid ""
"The typesafe resolution algorithm fails when, after considering the "
@@ -766,7 +809,7 @@
"一つに絞りきれない場合、タイプセーフな解決アルゴリズムは失敗します。"
#. Tag: para
-#: injection.xml:294
+#: injection.xml:310
#, no-c-format
msgid ""
"During the course of your development, you're going to encounter this "
@@ -774,13 +817,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:298
+#: injection.xml:314
#, no-c-format
msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:304
+#: injection.xml:320
#, no-c-format
msgid ""
"create a bean which implements the bean type and has all the qualifier types "
@@ -788,7 +831,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:309
+#: injection.xml:325
#, no-c-format
msgid ""
"make sure that the bean you already have is in the classpath of the module "
@@ -796,7 +839,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:314
+#: injection.xml:330
#, no-c-format
msgid ""
"explicitly enable an <literal>@Alternative</literal> bean that implements "
@@ -805,13 +848,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:321
+#: injection.xml:337
#, no-c-format
msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:327
+#: injection.xml:343
#, no-c-format
msgid ""
"introduce a qualifier to distinguish between the two implementations of the "
@@ -819,14 +862,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:332
+#: injection.xml:348
#, no-c-format
msgid ""
"disable one of the beans by annotating it <literal>@Alternative</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:337
+#: injection.xml:353
#, no-c-format
msgid ""
"move one of the implementations to a module that is not in the classpath of "
@@ -834,7 +877,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:343
+#: injection.xml:359
#, no-c-format
msgid ""
"disable one of two <literal>@Alternative</literal> beans that are trying to "
@@ -842,10 +885,10 @@
msgstr ""
#. Tag: para
-#: injection.xml:350
+#: injection.xml:366
#, no-c-format
msgid ""
-"See <ulink src=\"http://sfwk.org/Documentation/"
+"See <ulink url=\"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 "
@@ -853,13 +896,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:358
+#: injection.xml:374
#, no-c-format
msgid "Just remember: \"There can be only one.\""
msgstr ""
#. Tag: para
-#: injection.xml:361
+#: injection.xml:377
#, no-c-format
msgid ""
"On the other hand, if you really do have an optional or multivalued "
@@ -868,7 +911,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:366
+#: injection.xml:382
#, fuzzy, no-c-format
msgid ""
"Now there's one more issue you need to be aware of when using the dependency "
@@ -877,13 +920,13 @@
"Web Beansにおける依存性注入を行う際に気をつけるべきことが、もう少しあります。"
#. Tag: title
-#: injection.xml:373
+#: injection.xml:389
#, no-c-format
msgid "Client proxies"
msgstr "クライアントプロキシ"
#. Tag: para
-#: injection.xml:375
+#: injection.xml:391
#, fuzzy, no-c-format
msgid ""
"Clients of an injected bean do not usually hold a direct reference to a bean "
@@ -894,7 +937,7 @@
"な参照を持ちません。"
#. Tag: para
-#: injection.xml:380
+#: injection.xml:396
#, fuzzy, no-c-format
msgid ""
"Imagine that a bean bound to the application scope held a direct reference "
@@ -909,7 +952,7 @@
"コープのWeb Beanインスタンスを参照するべきなのです。"
#. Tag: para
-#: injection.xml:386
+#: injection.xml:402
#, fuzzy, no-c-format
msgid ""
"Now imagine that a bean bound to the session scope holds a direct reference "
@@ -927,7 +970,7 @@
"るべきではないのです。"
#. Tag: para
-#: injection.xml:393
+#: injection.xml:409
#, fuzzy, no-c-format
msgid ""
"Therefore, unless a bean has the default scope <literal>@Dependent</"
@@ -949,7 +992,7 @@
"リアライズすることなく、シリアライズすることを可能とします。"
#. Tag: para
-#: injection.xml:401
+#: injection.xml:417
#, fuzzy, no-c-format
msgid ""
"Unfortunately, due to limitations of the Java language, some Java types "
@@ -964,20 +1007,20 @@
"literal>をスローします。"
#. Tag: para
-#: injection.xml:407
+#: injection.xml:423
#, fuzzy, no-c-format
msgid "The following Java types cannot be proxied by the container:"
msgstr "次に挙げるJava型はWeb Beanマネージャがプロキシ化することができません。"
#. Tag: para
-#: injection.xml:411
+#: injection.xml:427
#, fuzzy, no-c-format
msgid ""
"classes which don't have a non-private constructor with no parameters, and"
msgstr "プライベートでなく、引数を持たないコンストラクタを持たないクラス"
#. Tag: para
-#: injection.xml:414
+#: injection.xml:430
#, no-c-format
msgid ""
"classes which are declared <literal>final</literal> or have a "
@@ -987,27 +1030,52 @@
"を持つクラス"
#. Tag: para
-#: injection.xml:419
+#: injection.xml:435
#, no-c-format
msgid "arrays and primitive types."
msgstr "配列とプリミティブ型"
#. Tag: para
-#: injection.xml:423
-#, fuzzy, no-c-format
+#: injection.xml:439
+#, 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 "
+"It's usually very easy to fix an unproxyable dependency problem. If an "
+"injection point of type <literal>X</literal> results in an unproxyable "
+"dependency, simply:"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:446
+#, no-c-format
+msgid "add a constructor with no parameters to <literal>X</literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:451
+#, no-c-format
+msgid ""
+"change the type of the injection point to <literal>Instance<X></"
+"literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:456
+#, no-c-format
+msgid ""
+"introduce an interface <literal>Y</literal>, implemented by the injected "
+"bean, and change the type of the injection point to <literal>Y</literal>, or"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:462
+#, no-c-format
+msgid ""
+"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:430
+#: injection.xml:469
#, no-c-format
msgid ""
"A future release of Weld will likely support a non-standard workaround for "
@@ -1015,7 +1083,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:437
+#: injection.xml:476
#, no-c-format
msgid ""
"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
@@ -1023,7 +1091,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:442
+#: injection.xml:481
#, no-c-format
msgid ""
"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
@@ -1031,19 +1099,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:448
+#: injection.xml:487
#, no-c-format
msgid "But we didn't get around to implementing this yet."
msgstr ""
#. Tag: title
-#: injection.xml:457
+#: injection.xml:496
#, fuzzy, no-c-format
msgid "Obtaining a contextual instance by programmatic lookup"
msgstr "ルックアップ処理によるWeb Beanの取得"
#. Tag: para
-#: injection.xml:459
+#: injection.xml:498
#, no-c-format
msgid ""
"In certain situations, injection is not the most convenient way to obtain a "
@@ -1051,13 +1119,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:466
+#: injection.xml:505
#, no-c-format
msgid "the bean type or qualifiers vary dynamically at runtime, or"
msgstr ""
#. Tag: para
-#: injection.xml:471
+#: injection.xml:510
#, no-c-format
msgid ""
"depending upon the deployment, there may be no bean which satisfies the type "
@@ -1065,13 +1133,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:476
+#: injection.xml:515
#, no-c-format
msgid "we would like to iterate over all beans of a certain type."
msgstr ""
#. Tag: para
-#: injection.xml:482
+#: injection.xml:521
#, fuzzy, no-c-format
msgid ""
"In these situations, the application may obtain an instance of the interface "
@@ -1081,13 +1149,13 @@
"つインスタンスを取得することができます。"
#. Tag: programlisting
-#: injection.xml:487
+#: injection.xml:526
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:489
+#: injection.xml:528
#, fuzzy, no-c-format
msgid ""
"The <literal>get()</literal> method of <literal>Instance</literal> produces "
@@ -1096,25 +1164,25 @@
"テスト作業における<literal>@Mock</literal>や<literal>@Staging</literal>の使用"
#. Tag: programlisting
-#: injection.xml:493
+#: injection.xml:532
#, fuzzy, no-c-format
msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:495
+#: injection.xml:534
#, no-c-format
msgid "Qualifiers can be specified in one of two ways:"
msgstr ""
#. Tag: para
-#: injection.xml:501
+#: injection.xml:540
#, no-c-format
msgid "by annotating the <literal>Instance</literal> injection point, or"
msgstr ""
#. Tag: para
-#: injection.xml:504
+#: injection.xml:543
#, fuzzy, no-c-format
msgid ""
"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
@@ -1124,13 +1192,13 @@
"literal>のみをコールバックとしてサポートします。"
#. Tag: para
-#: injection.xml:508
+#: injection.xml:547
#, no-c-format
msgid "Specifying the qualifiers at the injection point is much, much easier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:512
+#: injection.xml:551
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
@@ -1139,7 +1207,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:514
+#: injection.xml:553
#, no-c-format
msgid ""
"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
@@ -1147,7 +1215,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:519
+#: injection.xml:558
#, no-c-format
msgid ""
"Alternatively, we can specify the qualifier dynamically. First, we add the "
@@ -1156,14 +1224,14 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:524
+#: injection.xml:563
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:526
+#: injection.xml:565
#, no-c-format
msgid ""
"Next, we need to obtain an instance of our qualifier type. Since annotatons "
@@ -1174,7 +1242,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:533
+#: injection.xml:572
#, fuzzy, no-c-format
msgid ""
"<![CDATA[abstract class AsynchronousQualifier\n"
@@ -1185,13 +1253,13 @@
" implements CreditCard {}]]>"
#. Tag: para
-#: injection.xml:535
+#: injection.xml:574
#, no-c-format
msgid "In some cases, we can use an anonymous class:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:539
+#: injection.xml:578
#, fuzzy, no-c-format
msgid ""
"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
@@ -1203,14 +1271,14 @@
"AnnotationLiteral<CreditCard>(){});]]>"
#. Tag: para
-#: injection.xml:542
+#: injection.xml:581
#, no-c-format
msgid ""
"We can't use an anonymous class to implement a qualifier type with members."
msgstr ""
#. Tag: para
-#: injection.xml:547
+#: injection.xml:586
#, no-c-format
msgid ""
"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
@@ -1218,7 +1286,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:551
+#: injection.xml:590
#, no-c-format
msgid ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
@@ -1228,13 +1296,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:556
+#: injection.xml:595
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
msgstr "<literal>InjectionPoint</literal>オブジェクト"
#. Tag: para
-#: injection.xml:558
+#: injection.xml:597
#, fuzzy, no-c-format
msgid ""
"There are certain kinds of dependent objects (beans with scope "
@@ -1247,7 +1315,7 @@
"いての情報が必要になります。例えば、"
#. Tag: para
-#: injection.xml:564
+#: injection.xml:603
#, no-c-format
msgid ""
"The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1257,7 +1325,7 @@
"が何であるかに依存します。"
#. Tag: para
-#: injection.xml:568
+#: injection.xml:607
#, no-c-format
msgid ""
"Injection of a HTTP parameter or header value depends upon what parameter or "
@@ -1267,7 +1335,7 @@
"が指定されているかに依存します。"
#. Tag: para
-#: injection.xml:572
+#: injection.xml:611
#, no-c-format
msgid ""
"Injection of the result of an EL expression evaluation depends upon the "
@@ -1277,7 +1345,7 @@
"します。"
#. Tag: para
-#: injection.xml:577
+#: injection.xml:616
#, fuzzy, no-c-format
msgid ""
"A bean with scope <literal>@Dependent</literal> may inject an instance of "
@@ -1289,7 +1357,7 @@
"注入箇所に関するメタデータにアクセスする可能性があります。"
#. Tag: para
-#: injection.xml:581
+#: injection.xml:620
#, no-c-format
msgid ""
"Let's look at an example. The following code is verbose, and vulnerable to "
@@ -1299,13 +1367,13 @@
"ドです。"
#. Tag: programlisting
-#: injection.xml:584
+#: injection.xml:623
#, 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:586
+#: injection.xml:625
#, no-c-format
msgid ""
"This clever little producer method lets you inject a JDK <literal>Logger</"
@@ -1315,7 +1383,7 @@
"JDKの<literal>Logger</literal>を注入します。"
#. Tag: programlisting
-#: injection.xml:589
+#: injection.xml:628
#, no-c-format
msgid ""
"<![CDATA[class LogFactory {\n"
@@ -1337,19 +1405,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:591
+#: injection.xml:630
#, no-c-format
msgid "We can now write:"
msgstr "これによって、次のような記述が可能になります。"
#. Tag: programlisting
-#: injection.xml:593
+#: injection.xml:632
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Logger log;]]>"
msgstr "<![CDATA[@Current Logger log;]]>"
#. Tag: para
-#: injection.xml:595
+#: injection.xml:634
#, fuzzy, no-c-format
msgid ""
"Not convinced? Then here's a second example. To inject HTTP parameters, we "
@@ -1359,14 +1427,14 @@
"は、バインディングタイプを定義する必要があります。"
#. Tag: programlisting
-#: injection.xml:598
-#, no-c-format
+#: injection.xml:637
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@BindingType\n"
"@Retention(RUNTIME)\n"
"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
"public @interface HttpParam {\n"
-" @NonBinding public String value();\n"
+" @Nonbinding public String value();\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -1377,14 +1445,14 @@
"}]]>"
#. Tag: para
-#: injection.xml:600
+#: injection.xml:639
#, fuzzy, no-c-format
msgid "We would use this qualifier type at injection points as follows:"
msgstr ""
"このバインディングタイプを注入箇所において、次のように使うことができます。"
#. Tag: programlisting
-#: injection.xml:602
+#: injection.xml:641
#, no-c-format
msgid ""
"<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1394,21 +1462,21 @@
"@HttpParam(\"password\") String password;]]>"
#. Tag: para
-#: injection.xml:604
+#: injection.xml:643
#, no-c-format
msgid "The following producer method does the work:"
msgstr "次のプロデューサメソッドが動作します。"
#. Tag: programlisting
-#: injection.xml:606
-#, no-c-format
+#: injection.xml:645
+#, fuzzy, 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.getAnnotated().getAnnotation(HttpParam."
+"class).value());\n"
" }\n"
"\n"
"}]]>"
@@ -1424,19 +1492,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:608
+#: injection.xml:647
#, 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>)"
+"<literal>@Nonbinding.</literal>)"
msgstr ""
"(<literal>HttpParam</literal>アノテーションの<literal>value()</literal>メン"
"バーは、<literal>@NonBinding</literal>アノテーションが付いているので、Web "
"Beanマネージャには無視されることに注意して下さい。)"
#. Tag: para
-#: injection.xml:611
+#: injection.xml:650
#, fuzzy, no-c-format
msgid ""
"The container provides a built-in bean that implements the "
@@ -1446,15 +1514,17 @@
"組み込みWeb Beanを提供します。"
#. Tag: programlisting
-#: injection.xml:614
-#, no-c-format
+#: injection.xml:653
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface InjectionPoint { \n"
-" public Object getInstance(); \n"
-" public Bean<?> getBean(); \n"
-" public Member getMember(): \n"
-" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
-" public Set<T extends Annotation> getAnnotations(); \n"
+" public Type getType();\n"
+" public Set<Annotation> getQualifiers();\n"
+" public Bean<?> getBean();\n"
+" public Member getMember();\n"
+" public Annotated getAnnotated();\n"
+" public boolean isDelegate();\n"
+" public boolean isTransient();\n"
"}]]>"
msgstr ""
"<![CDATA[public interface InjectionPoint { \n"
@@ -1465,7 +1535,19 @@
" public Set<T extends Annotation> getAnnotations(); \n"
"}]]>"
+#, fuzzy
#~ 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>に変更するだけです。"
+
+#~ msgid ""
#~ "Web Beans supports three primary mechanisms for dependency injection:"
#~ msgstr "Web Beansは依存性注入のための3つの基本的な機構を持っています。"
Modified: doc/trunk/reference/ja-JP/interceptors.po
===================================================================
--- doc/trunk/reference/ja-JP/interceptors.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/interceptors.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -474,7 +474,7 @@
"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:"
+"We can use the <literal>@Nonbinding</literal> annotation:"
msgstr ""
"しかし、もしインタセプタを一つしか持っていなくて、インタセプタをバインディン"
"グするときにマネージャに <literal>requiresNew</literal> の値を無視させたいな"
@@ -489,7 +489,7 @@
"@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"
Modified: doc/trunk/reference/ja-JP/next.po
===================================================================
--- doc/trunk/reference/ja-JP/next.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/next.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-04-19 02:20+0900\n"
"Last-Translator: wadahiro <wadahiro at gmail.com>\n"
"Language-Team: none\n"
@@ -25,10 +25,10 @@
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 "
+"remains the authority for information on CDI. The spec is 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-"
+"is available on the <ulink url=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
"299 page</ulink> at the JCP website."
msgstr ""
@@ -37,9 +37,9 @@
#: next.xml:14
#, fuzzy, no-c-format
msgid ""
-"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"The CDI reference implementation, Weld, is being developed at the <ulink url="
"\"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."
+"team and the CDI spec lead blog at <ulink url=\"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 "
@@ -54,9 +54,9 @@
#: next.xml:22
#, no-c-format
msgid ""
-"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"We encourage you to follow the <ulink url=\"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 url=\"http://seamframework.org/Weld/Development\">development</"
"ulink>. If you are reading this guide, you likely have something to offer."
msgstr ""
@@ -73,7 +73,7 @@
#: next.xml:35
#, no-c-format
msgid ""
-"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"Checkout source from <ulink url=\"http://anonsvn.jboss.org/repos/weld/doc/"
"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
"ulink> using SVN"
msgstr ""
@@ -90,8 +90,9 @@
#: 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)."
+"Edit the <literal>pom.xml</literal> file in the root of the checkout and "
+"remove the \"<literal>-SNAPSHOT</literal>\" from the version element (so you "
+"don't have to build other Weld modules)."
msgstr ""
#. Tag: para
@@ -119,7 +120,8 @@
#, 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"
+"You can find the HTML version in <literal>target/docbook/publish/en-US/html</"
+"literal>."
msgstr ""
#. Tag: para
Modified: doc/trunk/reference/ja-JP/part1.po
===================================================================
--- doc/trunk/reference/ja-JP/part1.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/part1.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2008-12-19 20:26+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -17,7 +17,7 @@
#: part1.xml:14
#, fuzzy, no-c-format
msgid ""
-"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"The <ulink url=\"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 "
@@ -356,7 +356,7 @@
#: part1.xml:197
#, no-c-format
msgid ""
-"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"Finally, CDI is a <ulink url=\"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/ja-JP/producermethods.po
===================================================================
--- doc/trunk/reference/ja-JP/producermethods.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/producermethods.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -246,14 +246,27 @@
"literal>はセッションコンテキストに属することになります。プロデューサメソッド"
"が同じセッションで再び呼び出されることは無いでしょう。"
+#. Tag: para
+#: producermethods.xml:95
+#, no-c-format
+msgid ""
+"A producer method does <emphasis>not</emphasis> inherit the scope of the "
+"bean that declares the method. There are two different beans here: the "
+"producer method, and the bean which declares it. The scope of the producer "
+"method determines how often the method will be called, and the lifecycle of "
+"the objects returned by the method. The scope of the bean that declares the "
+"producer method determines the lifecycle of the object upon which the "
+"producer method is invoked."
+msgstr ""
+
#. Tag: title
-#: producermethods.xml:97
+#: producermethods.xml:107
#, no-c-format
msgid "Injection into producer methods"
msgstr "プロデューサメソッドへのインジェクション"
#. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:109
#, no-c-format
msgid ""
"There's one potential problem with the code above. The implementations of "
@@ -269,7 +282,7 @@
"ターセプタを持ちません。"
#. Tag: para
-#: producermethods.xml:106
+#: producermethods.xml:116
#, fuzzy, no-c-format
msgid ""
"If this isn't what we want, we can use dependency injection into the "
@@ -279,7 +292,7 @@
"プロデューサメソッドに依存性注入することができます。"
#. Tag: programlisting
-#: producermethods.xml:111
+#: producermethods.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -307,7 +320,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:123
#, fuzzy, no-c-format
msgid ""
"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
@@ -329,7 +342,7 @@
"ンスをプロデューサメソッドから戻すときには気をつけてください。"
#. Tag: para
-#: producermethods.xml:122
+#: producermethods.xml:132
#, fuzzy, no-c-format
msgid ""
"There's at least three ways we could go about fixing this bug. We could "
@@ -345,7 +358,7 @@
"<literal>@RequestScoped</literal>に変えることでしょう。"
#. Tag: para
-#: producermethods.xml:129
+#: producermethods.xml:139
#, fuzzy, no-c-format
msgid ""
"But a more common solution is to use the special <literal>@New</literal> "
@@ -355,19 +368,19 @@
"グアノテーションを使用することです。"
#. Tag: title
-#: producermethods.xml:134
+#: producermethods.xml:144
#, no-c-format
msgid "Use of <literal>@New</literal> with producer methods"
msgstr "プロデューサメソッドへの<literal>@New</literal>アノテーションの使用"
#. Tag: para
-#: producermethods.xml:136
+#: producermethods.xml:146
#, no-c-format
msgid "Consider the following producer method:"
msgstr "以下のプロデューサメソッドを見てみましょう。"
#. Tag: programlisting
-#: producermethods.xml:138
+#: producermethods.xml:148
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -399,7 +412,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:140
+#: producermethods.xml:150
#, no-c-format
msgid ""
"Then a new <emphasis>dependent</emphasis> instance of "
@@ -416,13 +429,13 @@
"れるまで依存オブジェクトは破棄されることは無いでしょう。"
#. Tag: title
-#: producermethods.xml:150
+#: producermethods.xml:160
#, fuzzy, no-c-format
msgid "Disposer methods"
msgstr "プロデューサメソッド"
#. Tag: para
-#: producermethods.xml:152
+#: producermethods.xml:162
#, no-c-format
msgid ""
"Some producer methods return objects that require explicit destruction. For "
@@ -430,7 +443,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:157
+#: producermethods.xml:167
#, no-c-format
msgid ""
"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
@@ -439,7 +452,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:159
+#: producermethods.xml:169
#, no-c-format
msgid ""
"Destruction can be performed by a matching <emphasis>disposer method</"
@@ -447,7 +460,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:162
+#: producermethods.xml:172
#, no-c-format
msgid ""
"<![CDATA[void close(@Disposes Connection connection) {\n"
@@ -456,7 +469,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:164
+#: producermethods.xml:174
#, no-c-format
msgid ""
"The disposer method must have at least one parameter, annotated "
Modified: doc/trunk/reference/ja-JP/resources.po
===================================================================
--- doc/trunk/reference/ja-JP/resources.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/resources.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -66,6 +66,45 @@
#: resources.xml:33
#, no-c-format
msgid ""
+"The CDI specification uses the term <emphasis>resource</emphasis> to refer, "
+"generically, to any of the following kinds of object which might be "
+"available in the Java EE component environment:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:38
+#, no-c-format
+msgid ""
+"JDBC <literal>Datasource</literal>s, JMS <literal>Queue</literal>s, "
+"<literal>Topic</literal>s and <literal>ConnectionFactory</literal>s, "
+"JavaMail <literal>Session</literal>s and other transactional resources "
+"including JCA connectors,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"JPA <literal>EntityManager</literal>s and <literal>EntityManagerFactory</"
+"literal>s,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:46
+#, no-c-format
+msgid "remote EJBs, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid "web services"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:53
+#, 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>, "
@@ -73,7 +112,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:37
+#: resources.xml:57
#, no-c-format
msgid ""
"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
@@ -81,7 +120,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:39
+#: resources.xml:59
#, no-c-format
msgid ""
"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
@@ -90,7 +129,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:41
+#: resources.xml:61
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
@@ -98,7 +137,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:43
+#: resources.xml:63
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
@@ -106,7 +145,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:45
+#: resources.xml:65
#, no-c-format
msgid ""
"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
@@ -114,47 +153,69 @@
msgstr ""
#. Tag: para
-#: resources.xml:47
+#: resources.xml:67
#, no-c-format
msgid "The field may be static (but not final)."
msgstr ""
#. Tag: para
-#: resources.xml:49
+#: resources.xml:69
#, no-c-format
+msgid "A resource declaration really contains two pieces of information:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:73
+#, no-c-format
msgid ""
+"the JNDI name, EJB link, persistence unit name, or other metadata needed to "
+"obtain a reference to the resource from the component environment, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:77
+#, no-c-format
+msgid ""
+"the type and qualifiers that we will use to inject the reference into our "
+"beans."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:82
+#, 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</"
+"sense to declare your resources in a class annotated <literal>@Alternative</"
"literal>."
msgstr ""
#. Tag: title
-#: resources.xml:56
+#: resources.xml:90
#, no-c-format
msgid "Typesafe resource injection"
msgstr ""
#. Tag: para
-#: resources.xml:58
+#: resources.xml:92
#, no-c-format
msgid "These resources can now be injected in the usual way."
msgstr ""
#. Tag: programlisting
-#: resources.xml:62
+#: resources.xml:96
#, no-c-format
msgid "<![CDATA[@Inject Catalog catalog;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:63
+#: resources.xml:97
#, no-c-format
msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:64
+#: resources.xml:98
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManager "
@@ -162,7 +223,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:65
+#: resources.xml:99
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
@@ -170,13 +231,13 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:66
+#: resources.xml:100
#, no-c-format
msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
msgstr ""
#. Tag: para
-#: resources.xml:68
+#: resources.xml:102
#, no-c-format
msgid ""
"The bean type and qualifiers of the resource are determined by the producer "
@@ -184,7 +245,7 @@
msgstr ""
#. Tag: para
-#: resources.xml:72
+#: resources.xml:106
#, no-c-format
msgid ""
"It might seem like a pain to have to write these extra producer field "
@@ -196,25 +257,25 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:79
+#: resources.xml:113
#, no-c-format
msgid "@Inject @CustomerDatabase EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:81
+#: resources.xml:115
#, no-c-format
msgid "instead of"
msgstr ""
#. Tag: programlisting
-#: resources.xml:83
+#: resources.xml:117
#, no-c-format
msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:85
+#: resources.xml:119
#, 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/ri-spi.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-05-18 01:40+0900\n"
"Last-Translator: wadahiro <wadahiro at gmail.com>\n"
"Language-Team: none\n"
@@ -883,6 +883,19 @@
#. Tag: para
#: ri-spi.xml:497
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.ConversationAwareViewHandler</literal> as a "
+"delegating view handler."
+msgstr ""
+"Web Beansをサーブレット環境と統合しているなら、自動的またはユーザ設定によっ"
+"て、<literal>org.jboss.webbeans.servlet.WebBeansListener</literal>をサーブ"
+"レットリスナーとして登録する必要があります。この登録は、サーブレットを使用す"
+"る各Web Beansアプリケーションで必要です。"
+
+#. Tag: para
+#: ri-spi.xml:502
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -894,7 +907,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:504
+#: ri-spi.xml:509
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -904,7 +917,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:511 ri-spi.xml:557
+#: ri-spi.xml:516 ri-spi.xml:562
#, no-c-format
msgid ""
"There are a number of ways you can obtain the bean manager for the module. "
@@ -914,7 +927,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:518
+#: ri-spi.xml:523
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must register "
@@ -930,19 +943,19 @@
"このフィルタは安全に登録できます。"
#. Tag: para
-#: ri-spi.xml:526
+#: ri-spi.xml:531
#, fuzzy, no-c-format
msgid "Weld only supports JSF 1.2 and above."
msgstr "Web BeansはJSF 1.2以上をサポートしています。"
#. Tag: term
-#: ri-spi.xml:533
+#: ri-spi.xml:538
#, fuzzy, no-c-format
msgid "<term>JSP</term>"
msgstr "<term>JSF</term>"
#. Tag: para
-#: ri-spi.xml:538
+#: ri-spi.xml:543
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must register "
@@ -955,7 +968,7 @@
"る各Web Beansアプリケーションで必要です。"
#. Tag: para
-#: ri-spi.xml:543
+#: ri-spi.xml:548
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -966,7 +979,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:550
+#: ri-spi.xml:555
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -976,13 +989,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:567
+#: ri-spi.xml:572
#, no-c-format
msgid "Session Bean Interceptor"
msgstr "セッションBeanインタセプタ"
#. Tag: para
-#: ri-spi.xml:571
+#: ri-spi.xml:576
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into an EJB environment you must register "
@@ -998,7 +1011,7 @@
"要です。"
#. Tag: para
-#: ri-spi.xml:578
+#: ri-spi.xml:583
#, no-c-format
msgid ""
"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -1008,13 +1021,13 @@
"クの中で最も内側に登録する必要があります。"
#. Tag: term
-#: ri-spi.xml:586
+#: ri-spi.xml:591
#, fuzzy, no-c-format
msgid "The <literal>weld-core.jar</literal>"
msgstr "<literal>webbeans-core.jar</literal>"
#. Tag: para
-#: ri-spi.xml:590
+#: ri-spi.xml:595
#, no-c-format
msgid ""
"Weld can reside on an isolated classloader, or on a shared classloader. If "
@@ -1026,7 +1039,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:596
+#: ri-spi.xml:601
#, no-c-format
msgid ""
"You can provide your own implementation of <literal>Singleton</literal> and "
@@ -1035,7 +1048,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:601
+#: ri-spi.xml:606
#, no-c-format
msgid ""
"Weld also provides an implementation of Thread Context Classloader per "
@@ -1043,13 +1056,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:608
+#: ri-spi.xml:613
#, no-c-format
msgid "Binding the manager in JNDI"
msgstr "JNDIにマネージャをバインドする"
#. Tag: para
-#: ri-spi.xml:612
+#: ri-spi.xml:617
#, fuzzy, no-c-format
msgid ""
"You should bind the bean manager for the bean deployment archive into JNDI "
@@ -1065,13 +1078,13 @@
"ばなりません。"
#. Tag: term
-#: ri-spi.xml:622
+#: ri-spi.xml:627
#, no-c-format
msgid "Performing CDI injection on Java EE component classes"
msgstr ""
#. Tag: para
-#: ri-spi.xml:626
+#: ri-spi.xml:631
#, no-c-format
msgid ""
"The CDI specification requires the container to provide injection into non-"
@@ -1083,7 +1096,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:634
+#: ri-spi.xml:639
#, no-c-format
msgid ""
"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
@@ -1094,7 +1107,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:641
+#: ri-spi.xml:646
#, no-c-format
msgid ""
"To help the integrator, Weld provides <literal>WeldManager."
@@ -1103,7 +1116,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:646
+#: ri-spi.xml:651
#, no-c-format
msgid ""
"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
@@ -1131,7 +1144,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:647
+#: ri-spi.xml:652
#, no-c-format
msgid ""
"The container may intersperse other operations between these calls. Further, "
@@ -1140,7 +1153,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:651
+#: ri-spi.xml:656
#, no-c-format
msgid ""
"When performing injections on EJBs you must use the Weld-defined SPI, "
@@ -1150,7 +1163,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:656
+#: ri-spi.xml:661
#, no-c-format
msgid ""
"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
Modified: doc/trunk/reference/ja-JP/scopescontexts.po
===================================================================
--- doc/trunk/reference/ja-JP/scopescontexts.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/scopescontexts.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -75,18 +75,23 @@
#: 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."
+"JPA entities aren't a great fit for this model. Entities have their whole "
+"own lifecycle and identity model which just doesn't map naturally to the "
+"model used in CDI. Therefore, we recommend against treating entities as CDI "
+"beans. You're certainly going to run into problems if you try to give an "
+"entity a scope other than the default scope <literal>@Dependent</literal>. "
+"The client proxy will get in the way if you try to pass an injected instance "
+"to the JPA <literal>EntityManager</literal>."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:41
+#: scopescontexts.xml:45
#, no-c-format
msgid "Scope types"
msgstr "スコープタイプ"
#. Tag: para
-#: scopescontexts.xml:43
+#: scopescontexts.xml:47
#, fuzzy, no-c-format
msgid ""
"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
@@ -97,7 +102,7 @@
"プを定義することが可能になっています。"
#. Tag: programlisting
-#: scopescontexts.xml:48
+#: scopescontexts.xml:52
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ScopeType\n"
@@ -111,7 +116,7 @@
"public @interface ClusterScoped {}]]>"
#. Tag: para
-#: scopescontexts.xml:50
+#: scopescontexts.xml:54
#, fuzzy, no-c-format
msgid ""
"Of course, that's the easy part of the job. For this scope type to be "
@@ -127,7 +132,7 @@
"作業であり、フレームワークを開発する目的でのみ行われます。"
#. Tag: para
-#: scopescontexts.xml:57
+#: scopescontexts.xml:61
#, fuzzy, no-c-format
msgid ""
"We can apply a scope type annotation to a bean implementation class to "
@@ -137,7 +142,7 @@
"テーションを適用することができます。"
#. Tag: programlisting
-#: scopescontexts.xml:61
+#: scopescontexts.xml:65
#, no-c-format
msgid ""
"<![CDATA[@ClusterScoped\n"
@@ -147,55 +152,55 @@
"public class SecondLevelCache { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:63
+#: scopescontexts.xml:67
#, fuzzy, no-c-format
msgid "Usually, you'll use one of CDI's built-in scopes."
msgstr "通常、Web Beansの組み込みスコープの中の一つを使います。"
#. Tag: title
-#: scopescontexts.xml:68
+#: scopescontexts.xml:72
#, no-c-format
msgid "Built-in scopes"
msgstr "組み込みスコープ"
#. Tag: para
-#: scopescontexts.xml:70
+#: scopescontexts.xml:74
#, fuzzy, no-c-format
msgid "CDI defines four built-in scopes:"
msgstr "Web Beansは四つの組み込みスコープを持ちます。"
#. Tag: literal
-#: scopescontexts.xml:74
+#: scopescontexts.xml:78
#, no-c-format
msgid "@RequestScoped"
msgstr "@RequestScoped"
#. Tag: literal
-#: scopescontexts.xml:77
+#: scopescontexts.xml:81
#, no-c-format
msgid "@SessionScoped"
msgstr "@SessionScoped"
#. Tag: literal
-#: scopescontexts.xml:80
+#: scopescontexts.xml:84
#, no-c-format
msgid "@ApplicationScoped"
msgstr "@ApplicationScoped"
#. Tag: literal
-#: scopescontexts.xml:83
+#: scopescontexts.xml:87
#, no-c-format
msgid "@ConversationScoped"
msgstr "@ConversationScoped"
#. Tag: para
-#: scopescontexts.xml:87
+#: scopescontexts.xml:91
#, fuzzy, no-c-format
msgid "For a web application that uses CDI:"
msgstr "Web Beansを使用するWebアプリケーションでは、"
#. Tag: para
-#: scopescontexts.xml:91
+#: scopescontexts.xml:95
#, no-c-format
msgid ""
"any servlet request has access to active request, session and application "
@@ -205,21 +210,21 @@
"コープ、アプリケーションスコープにアクセスし、さらに、"
#. Tag: para
-#: scopescontexts.xml:96
+#: scopescontexts.xml:100
#, no-c-format
msgid "any JSF request has access to an active conversation scope."
msgstr "すべてのJSFリクエストはアクティブな対話スコープにアクセスします。"
#. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:105
#, no-c-format
msgid ""
-"A CDI extension can support the conversation scope for other frameworks as "
-"well."
+"A CDI extension can implement support for the conversation scope in other "
+"web frameworks."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:108
#, no-c-format
msgid "The request and application scopes are also active:"
msgstr ""
@@ -227,31 +232,43 @@
"ブとなります。"
#. Tag: para
-#: scopescontexts.xml:108
+#: scopescontexts.xml:112
#, no-c-format
msgid "during invocations of EJB remote methods,"
msgstr "EJBのリモートメソッドが起動する際"
#. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:115
+#, fuzzy, no-c-format
+msgid "during invocations of EJB asynchronous methods,"
+msgstr "EJBのリモートメソッドが起動する際"
+
+#. Tag: para
+#: scopescontexts.xml:118
#, no-c-format
msgid "during EJB timeouts,"
msgstr "EJBがタイムアウトになる際"
#. Tag: para
-#: scopescontexts.xml:114
-#, no-c-format
-msgid "during message delivery to a message-driven bean, and"
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
+msgid "during message delivery to a message-driven bean,"
msgstr "メッセージドリブンビーンにメッセージが到着する際"
#. Tag: para
-#: scopescontexts.xml:117
+#: scopescontexts.xml:124
+#, fuzzy, no-c-format
+msgid "during message delivery to a <literal>MessageListener</literal>, and"
+msgstr "メッセージドリブンビーンにメッセージが到着する際"
+
+#. Tag: para
+#: scopescontexts.xml:127
#, no-c-format
msgid "during web service invocations."
msgstr "Webサービスが起動する際"
#. Tag: para
-#: scopescontexts.xml:121
+#: scopescontexts.xml:131
#, fuzzy, no-c-format
msgid ""
"If the application tries to invoke a bean with a scope that does not have an "
@@ -263,9 +280,18 @@
"<literal>ContextNotActiveException</literal>を送出します。"
#. Tag: para
-#: scopescontexts.xml:126
+#: scopescontexts.xml:136
#, no-c-format
msgid ""
+"Managed beans with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal> must be serializable, since the "
+"container passivates the HTTP session from time to time."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:141
+#, no-c-format
+msgid ""
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
@@ -275,13 +301,13 @@
"ら、残りの一つは新たなスコープです。"
#. Tag: title
-#: scopescontexts.xml:134
+#: scopescontexts.xml:149
#, no-c-format
msgid "The conversation scope"
msgstr "対話スコープ"
#. Tag: para
-#: scopescontexts.xml:136
+#: scopescontexts.xml:151
#, fuzzy, no-c-format
msgid ""
"The conversation scope is a bit like the traditional session scope in that "
@@ -295,13 +321,13 @@
"コープとは異なります。"
#. Tag: para
-#: scopescontexts.xml:144
+#: scopescontexts.xml:159
#, no-c-format
msgid "is demarcated explicitly by the application, and"
msgstr "対話スコープの境界は、アプリケーションによって明示的に定義されます"
#. Tag: para
-#: scopescontexts.xml:147
+#: scopescontexts.xml:162
#, no-c-format
msgid ""
"holds state associated with a particular web browser tab in a JSF "
@@ -310,7 +336,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:154
+#: scopescontexts.xml:169
#, fuzzy, no-c-format
msgid ""
"A conversation represents a task—a unit of work from the point of view "
@@ -323,7 +349,7 @@
"ザーが複数の作業を同時に行っている場合は、対話も複数になります。"
#. Tag: para
-#: scopescontexts.xml:160
+#: scopescontexts.xml:175
#, fuzzy, no-c-format
msgid ""
"The conversation context is active during any JSF request. Most "
@@ -337,13 +363,13 @@
"対話</emphasis>として導入する必要があります。"
#. Tag: title
-#: scopescontexts.xml:167
+#: scopescontexts.xml:182
#, no-c-format
msgid "Conversation demarcation"
msgstr "対話の境界"
#. Tag: para
-#: scopescontexts.xml:169
+#: scopescontexts.xml:184
#, fuzzy, no-c-format
msgid ""
"CDI provides a built-in bean for controlling the lifecycle of conversations "
@@ -354,13 +380,13 @@
"ます。"
#. Tag: programlisting
-#: scopescontexts.xml:174
+#: scopescontexts.xml:189
#, fuzzy, no-c-format
msgid "@Inject Conversation conversation;"
msgstr "@Current Conversation conversation;"
#. Tag: para
-#: scopescontexts.xml:176
+#: scopescontexts.xml:191
#, no-c-format
msgid ""
"To promote the conversation associated with the current request to a long-"
@@ -375,7 +401,7 @@
"<literal>end()</literal>メソッドを呼びます。"
#. Tag: para
-#: scopescontexts.xml:182
+#: scopescontexts.xml:197
#, fuzzy, no-c-format
msgid ""
"In the following example, a conversation-scoped bean controls the "
@@ -385,7 +411,7 @@
"す。"
#. Tag: programlisting
-#: scopescontexts.xml:186
+#: scopescontexts.xml:201
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ConversationScoped @Stateful\n"
@@ -449,7 +475,7 @@
"}"
#. Tag: para
-#: scopescontexts.xml:188
+#: scopescontexts.xml:203
#, fuzzy, no-c-format
msgid ""
"This bean is able to control its own lifecycle through use of the "
@@ -461,13 +487,13 @@
"ジェクトに依存するようなWeb Beanも存在します。"
#. Tag: title
-#: scopescontexts.xml:196
+#: scopescontexts.xml:211
#, no-c-format
msgid "Conversation propagation"
msgstr "対話の伝播"
#. Tag: para
-#: scopescontexts.xml:198
+#: scopescontexts.xml:213
#, fuzzy, no-c-format
msgid ""
"The conversation context automatically propagates with any JSF faces request "
@@ -479,7 +505,7 @@
"クエストについては自動的に伝播されません。"
#. Tag: para
-#: scopescontexts.xml:203
+#: scopescontexts.xml:218
#, fuzzy, no-c-format
msgid ""
"We can force the conversation to propagate with a non-faces request by "
@@ -497,13 +523,13 @@
"す。"
#. Tag: para
-#: scopescontexts.xml:210
+#: scopescontexts.xml:225
#, no-c-format
msgid "Therefore, the following link propagates the conversation:"
msgstr "ゆえに、次のリンクは対話を伝播します。"
#. Tag: programlisting
-#: scopescontexts.xml:214
+#: scopescontexts.xml:229
#, no-c-format
msgid ""
"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -513,13 +539,13 @@
">"
#. Tag: para
-#: scopescontexts.xml:216
+#: scopescontexts.xml:231
#, no-c-format
msgid "It's probably better to use one of the link components in JSF 2:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:220
+#: scopescontexts.xml:235
#, no-c-format
msgid ""
"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
@@ -528,7 +554,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:223
+#: scopescontexts.xml:238
#, fuzzy, no-c-format
msgid ""
"The conversation context propagates across redirects, making it very easy to "
@@ -544,13 +570,13 @@
"タを付加します。"
#. Tag: title
-#: scopescontexts.xml:233
+#: scopescontexts.xml:248
#, no-c-format
msgid "Conversation timeout"
msgstr "対話のタイムアウト"
#. Tag: para
-#: scopescontexts.xml:235
+#: scopescontexts.xml:250
#, fuzzy, no-c-format
msgid ""
"The container is permitted to destroy a conversation and all state held in "
@@ -567,7 +593,7 @@
"期間となります。"
#. Tag: para
-#: scopescontexts.xml:242
+#: scopescontexts.xml:257
#, fuzzy, no-c-format
msgid ""
"The <literal>Conversation</literal> object provides a method to set the "
@@ -579,31 +605,127 @@
"Beanマネージャはこれを自由に無視することもできます。"
#. Tag: programlisting
-#: scopescontexts.xml:247
+#: scopescontexts.xml:262
#, no-c-format
msgid "conversation.setTimeout(timeoutInMillis);"
msgstr "conversation.setTimeout(timeoutInMillis);"
#. Tag: title
-#: scopescontexts.xml:254
+#: scopescontexts.xml:269
+#, fuzzy, no-c-format
+msgid "The singleton pseudo-scope"
+msgstr "依存擬似スコープ"
+
+#. Tag: para
+#: scopescontexts.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"In addition to the four built-in scopes, CDI also supports two "
+"<emphasis>pseudo-scopes</emphasis>. The first is the <emphasis>singleton "
+"pseudo-scope</emphasis>, which we specify using the annotation "
+"<literal>@Singleton</literal>."
+msgstr ""
+"四つの組み込みスコープに加えて、Web Beansはいわゆる<emphasis>依存擬似スコープ"
+"</emphasis>という特徴を持っています。これは、明示的にスコープタイプが宣言され"
+"ていないWeb Beanのデフォルトのスコープになります。"
+
+#. Tag: para
+#: scopescontexts.xml:277
#, no-c-format
+msgid ""
+"Unlike the other scopes, which belong to the package <literal>javax."
+"enterprise.context</literal>, the <literal>@Singleton</literal> annotation "
+"is defined in the package <literal>javax.inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:283
+#, no-c-format
+msgid ""
+"You can guess what \"singleton\" means here. It means a bean that is "
+"instantiated once. Unfortunately, there's a little problem with this pseudo-"
+"scope. Beans with scope <literal>@Singleton</literal> don't have a proxy "
+"object. Clients hold a direct reference to the singleton instance. So we "
+"need to consider the case of a client that can be serialized, for example, "
+"any bean with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal>, any dependent object of a bean with "
+"scope <literal>@SessionScoped</literal> or <literal>@ConversationScoped</"
+"literal>, or any stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:292
+#, no-c-format
+msgid ""
+"Now, if the singleton instance is a simple, immutable, serializable object "
+"like a string, a number or a date, we probably don't mind too much if it "
+"gets duplicated via serialization. However, that makes it no stop being a "
+"true singleton, and we may as well have just declared it with the default "
+"scope."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:298
+#, no-c-format
+msgid ""
+"There are several ways to ensure that the singleton bean remains a singleton "
+"when its client gets serialized:"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:302
+#, no-c-format
+msgid ""
+"have the singleton bean implement <literal>writeResolve()</literal> and "
+"<literal>readReplace()</literal> (as defined by the Java serialization "
+"specification),"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:308
+#, no-c-format
+msgid ""
+"make sure the client keeps only a transient reference to the singleton bean, "
+"or"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:313
+#, no-c-format
+msgid ""
+"give the client a reference of type <literal>Instance<X></literal> "
+"where <literal>X</literal> is the bean type of the singleton bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:320
+#, no-c-format
+msgid ""
+"A fourth, better solution is to instead use <literal>@ApplicationScoped</"
+"literal>, allowing the container to proxy the bean, and take care of "
+"serialization problems automatically."
+msgstr ""
+
+#. Tag: title
+#: scopescontexts.xml:326
+#, no-c-format
msgid "The dependent pseudo-scope"
msgstr "依存擬似スコープ"
#. Tag: para
-#: scopescontexts.xml:256
+#: scopescontexts.xml:328
#, fuzzy, no-c-format
msgid ""
-"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 "
-"bean which does not explicitly declare a scope type."
+"Finally, CDI features the so-called <emphasis>dependent pseudo-scope</"
+"emphasis>. This is the default scope for a bean which does not explicitly "
+"declare a scope type."
msgstr ""
"四つの組み込みスコープに加えて、Web Beansはいわゆる<emphasis>依存擬似スコープ"
"</emphasis>という特徴を持っています。これは、明示的にスコープタイプが宣言され"
"ていないWeb Beanのデフォルトのスコープになります。"
#. Tag: para
-#: scopescontexts.xml:261
+#: scopescontexts.xml:333
#, fuzzy, no-c-format
msgid ""
"For example, this bean has the scope type <literal>@Dependent</literal>:"
@@ -611,24 +733,56 @@
"例えば、次のWeb Beanは<literal>@Dependent</literal>スコープタイプを持ちます。"
#. Tag: programlisting
-#: scopescontexts.xml:265
+#: scopescontexts.xml:337
#, no-c-format
msgid "<![CDATA[public class Calculator { ... }]]>"
msgstr "<![CDATA[public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:267
+#: scopescontexts.xml:339
#, no-c-format
msgid ""
-"An instances of a dependent bean is never shared between different clients "
-"or different injection points. It is strictly a <emphasis>dependent object</"
+"An instance 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:273
+#: scopescontexts.xml:345
+#, no-c-format
+msgid ""
+"If a Unified EL expression refers to a dependent bean by EL name, an "
+"instance of the bean is instantiated every time the expression is evaluated. "
+"The instance is not reused during any other expression evaluation."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:351
+#, no-c-format
+msgid ""
+"If you need to access a bean directly by EL name in a JSF page, you probably "
+"need to give it a scope other than <literal>@Dependent</literal>. Otherwise, "
+"any value that gets set to the bean by a JSF input will be lost immediately. "
+"That's why CDI features the <literal>@Model</literal> stereotype; it lets "
+"you give a bean a name, and set its scope to <literal>@RequestScoped</"
+"literal> in one stroke. If you need to access a bean that really "
+"<emphasis>has</emphasis> to have the scope <literal>@Dependent</literal> "
+"from a JSF page, inject it into a different bean, and expose it to EL via a "
+"getter method."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:361
+#, no-c-format
+msgid ""
+"Beans with scope <literal>@Dependent</literal> don't need a proxy object. "
+"The client holds a direct reference to its instance."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:366
#, fuzzy, no-c-format
msgid ""
"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
@@ -639,13 +793,13 @@
"す。"
#. Tag: title
-#: scopescontexts.xml:281
+#: scopescontexts.xml:374
#, fuzzy, no-c-format
msgid "The <literal>@New</literal> qualifier"
msgstr "<literal>@New</literal>アノテーション"
#. Tag: para
-#: scopescontexts.xml:283
+#: scopescontexts.xml:376
#, no-c-format
msgid ""
"The built-in qualifier <literal>@New</literal> allows us to obtain a "
@@ -653,13 +807,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:287
+#: scopescontexts.xml:380
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
msgstr "<![CDATA[@New Calculator calculator;]]>"
#. Tag: para
-#: scopescontexts.xml:289
+#: scopescontexts.xml:382
#, no-c-format
msgid ""
"The class must be a valid managed bean or session bean, but need not be an "
@@ -667,7 +821,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:291
+#: scopescontexts.xml:384
#, fuzzy, no-c-format
msgid ""
"This works even if <literal>Calculator</literal> is <emphasis>already</"
@@ -677,7 +831,7 @@
"emphasis>異なるスコープタイプを持って宣言されていた場合でも有効となります。"
#. Tag: programlisting
-#: scopescontexts.xml:296
+#: scopescontexts.xml:389
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped\n"
@@ -687,7 +841,7 @@
"public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:298
+#: scopescontexts.xml:391
#, no-c-format
msgid ""
"So the following injected attributes each get a different instance of "
@@ -697,7 +851,7 @@
"ンスタンスを得ることとなります。"
#. Tag: programlisting
-#: scopescontexts.xml:302
+#: scopescontexts.xml:395
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class PaymentCalc {\n"
@@ -713,7 +867,7 @@
"}]]>"
#. Tag: para
-#: scopescontexts.xml:304
+#: scopescontexts.xml:397
#, no-c-format
msgid ""
"The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -728,7 +882,7 @@
"され、注入されます。"
#. Tag: para
-#: scopescontexts.xml:310
+#: scopescontexts.xml:403
#, no-c-format
msgid ""
"This feature is particularly useful with producer methods, as we'll see in "
Modified: doc/trunk/reference/ja-JP/weldexamples.po
===================================================================
--- doc/trunk/reference/ja-JP/weldexamples.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ja-JP/weldexamples.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -144,7 +144,7 @@
"<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"
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"XML"
"\"><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN"
"\"\n"
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
@@ -524,7 +524,7 @@
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."
+"can open the example natively using the <ulink url=\"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.."
@@ -620,8 +620,9 @@
"<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."
+"<ulink url=\"http://localhost:9090\">http://localhost:9090</ulink> to view "
+"the app. To debug choose <emphasis>Debug as Java Application</emphasis> "
+"instead."
msgstr ""
#. Tag: title
@@ -663,8 +664,9 @@
#: 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>."
+"to deploy the example to Tomcat. You can then access application at <ulink "
+"url=\"http://localhost:8080/weld-numberguess-wicket\">http://localhost:8080/"
+"weld-numberguess-wicket</ulink>."
msgstr ""
#. Tag: para
@@ -976,7 +978,7 @@
"\"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"
+"public class Game\n"
"{\n"
"\n"
" public static final int MAX_NUM_GUESSES = 10;\n"
@@ -1078,19 +1080,18 @@
"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"
+"to get the random number at the start of each game. Note that it can't use "
+"<literal>Instance.get()</literal> like the JSF example does because there "
+"will not be any active contexts like there are 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"
@@ -1545,7 +1546,6 @@
#, 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>."
+"information on Weld, please visit <ulink url=\"http://www.seamframework.org/"
+"Weld\">http://www.seamframework.org/Weld</ulink>."
msgstr ""
Modified: doc/trunk/reference/ko-KR/beans.po
===================================================================
--- doc/trunk/reference/ko-KR/beans.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/beans.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -484,14 +484,14 @@
#, 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."
+"context until the context is destroyed. There is no way to manually remove a "
+"bean from a context. If you don't want the bean to sit in the session "
+"indefinitely, consider using another scope with a shorted lifespan, such as "
+"the request or conversation scope."
msgstr ""
#. Tag: para
-#: beans.xml:272
+#: beans.xml:273
#, no-c-format
msgid ""
"If a scope is not explicitly specified, then the bean belongs to a special "
@@ -501,19 +501,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:278
+#: beans.xml:279
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:283
+#: beans.xml:284
#, no-c-format
msgid "EL name"
msgstr ""
#. Tag: para
-#: beans.xml:285
+#: beans.xml:286
#, no-c-format
msgid ""
"If you want to reference a bean in non-Java code that supports Unified EL "
@@ -522,7 +522,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:290
+#: beans.xml:291
#, no-c-format
msgid ""
"The EL name is specified using the <literal>@Named</literal> annotation, as "
@@ -530,7 +530,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:294
+#: beans.xml:295
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
@@ -538,13 +538,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:296
+#: beans.xml:297
#, no-c-format
msgid "Now we can easily use the bean in any JSF or JSP page:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:298
+#: beans.xml:299
#, no-c-format
msgid ""
"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
@@ -553,7 +553,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:301
+#: beans.xml:302
#, no-c-format
msgid ""
"The <literal>@Named</literal> annotation is not what makes the class a bean. "
@@ -563,7 +563,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:308
+#: beans.xml:309
#, no-c-format
msgid ""
"We can let CDI choose a name for us by leaving off the value of the "
@@ -571,7 +571,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:312
+#: beans.xml:313
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named\n"
@@ -579,7 +579,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:314
+#: beans.xml:315
#, no-c-format
msgid ""
"The name defaults to the unqualified class name, decapitalized; in this "
@@ -587,13 +587,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:324
+#: beans.xml:325
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: beans.xml:326
+#: beans.xml:327
#, no-c-format
msgid ""
"We've already seen how qualifiers let us choose between multiple "
@@ -606,7 +606,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:334
+#: beans.xml:335
#, no-c-format
msgid ""
"<![CDATA[public @Alternative\n"
@@ -614,33 +614,33 @@
msgstr ""
#. Tag: para
-#: beans.xml:336
+#: beans.xml:337
#, 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 "
+"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
+#: beans.xml:345
#, no-c-format
msgid ""
"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:351
+#: beans.xml:352
#, no-c-format
msgid "Interceptor binding types"
msgstr ""
#. Tag: para
-#: beans.xml:353
+#: beans.xml:354
#, no-c-format
msgid ""
"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
@@ -651,7 +651,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:360
+#: beans.xml:361
#, no-c-format
msgid ""
"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
@@ -668,7 +668,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:371
+#: beans.xml:372
#, no-c-format
msgid ""
"CDI provides a new approach to binding interceptors to beans that introduces "
@@ -678,7 +678,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:377
+#: beans.xml:378
#, no-c-format
msgid ""
"An interceptor binding type is a user-defined annotation that is itself "
@@ -688,7 +688,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:382
+#: beans.xml:383
#, no-c-format
msgid ""
"<![CDATA[@InterceptorBinding\n"
@@ -699,7 +699,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:384
+#: beans.xml:385
#, no-c-format
msgid ""
"The interceptor that implements transaction management declares this "
@@ -707,7 +707,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:388
+#: beans.xml:389
#, no-c-format
msgid ""
"<![CDATA[public @Transactional @Interceptor\n"
@@ -715,7 +715,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:390
+#: beans.xml:391
#, no-c-format
msgid ""
"We can apply the interceptor to a bean by annotating the bean class with the "
@@ -723,7 +723,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:394
+#: beans.xml:395
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Transactional\n"
@@ -731,7 +731,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:396
+#: beans.xml:397
#, no-c-format
msgid ""
"Notice that <literal>ShoppingCart</literal> and "
@@ -740,18 +740,18 @@
msgstr ""
#. Tag: para
-#: beans.xml:401
+#: beans.xml:402
#, 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 "
+"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
+#: beans.xml:409
#, no-c-format
msgid ""
"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
@@ -759,13 +759,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:418
+#: beans.xml:419
#, no-c-format
msgid "What kinds of classes are beans?"
msgstr ""
#. Tag: para
-#: beans.xml:420
+#: beans.xml:421
#, no-c-format
msgid ""
"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
@@ -774,13 +774,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:427
+#: beans.xml:428
#, no-c-format
msgid "Managed beans"
msgstr ""
#. Tag: para
-#: beans.xml:429
+#: beans.xml:430
#, no-c-format
msgid ""
"A managed bean is a Java class. The basic lifecycle and semantics of a "
@@ -792,19 +792,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:440
+#: beans.xml:441
#, no-c-format
msgid "It is not a non-static inner class."
msgstr ""
#. Tag: para
-#: beans.xml:443
+#: beans.xml:444
#, no-c-format
msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:446
+#: beans.xml:447
#, no-c-format
msgid ""
"It is not annotated with an EJB component-defining annotation or declared as "
@@ -812,7 +812,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:452
+#: beans.xml:453
#, no-c-format
msgid ""
"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
@@ -820,25 +820,25 @@
msgstr ""
#. Tag: para
-#: beans.xml:455
+#: beans.xml:456
#, no-c-format
msgid "It has an appropriate constructor—either:"
msgstr ""
#. Tag: para
-#: beans.xml:460
+#: beans.xml:461
#, no-c-format
msgid "the class has a constructor with no parameters, or"
msgstr ""
#. Tag: para
-#: beans.xml:463
+#: beans.xml:464
#, no-c-format
msgid "the class declares a constructor annotated <literal>@Inject</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:471
+#: beans.xml:472
#, no-c-format
msgid ""
"The unrestricted set of bean types for a managed bean contains the bean "
@@ -847,7 +847,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:474
+#: beans.xml:475
#, no-c-format
msgid ""
"If a managed bean has a public field, it must have the default scope "
@@ -855,7 +855,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:476
+#: beans.xml:477
#, no-c-format
msgid ""
"Managed beans support the <literal>@PostConstruct</literal> and "
@@ -863,7 +863,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:479
+#: beans.xml:480
#, no-c-format
msgid ""
"Session beans are also, technically, managed beans. However, since they have "
@@ -873,13 +873,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:488
+#: beans.xml:489
#, no-c-format
msgid "Session beans"
msgstr ""
#. Tag: para
-#: beans.xml:490
+#: beans.xml:491
#, no-c-format
msgid ""
"Session beans belong to the EJB specification. They have a special "
@@ -892,7 +892,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:499
+#: beans.xml:500
#, no-c-format
msgid ""
"Message-driven and entity beans are by nature non-contextual objects and may "
@@ -904,7 +904,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:507
+#: beans.xml:508
#, no-c-format
msgid ""
"The unrestricted set of bean types for a session bean contains all local "
@@ -916,7 +916,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:515
+#: beans.xml:516
#, no-c-format
msgid ""
"There's no reason to explicitly declare the scope of a stateless session "
@@ -927,7 +927,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:519
+#: beans.xml:520
#, no-c-format
msgid ""
"Stateful session beans may define a <emphasis>remove method</emphasis>, "
@@ -940,7 +940,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:527
+#: beans.xml:528
#, no-c-format
msgid ""
"So, when should we use a session bean instead of a plain managed bean? "
@@ -948,19 +948,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:534
+#: beans.xml:535
#, no-c-format
msgid "method-level transaction management and security,"
msgstr ""
#. Tag: para
-#: beans.xml:537
+#: beans.xml:538
#, no-c-format
msgid "concurrency management,"
msgstr ""
#. Tag: para
-#: beans.xml:540
+#: beans.xml:541
#, no-c-format
msgid ""
"instance-level passivation for stateful session beans and instance-pooling "
@@ -968,19 +968,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:544
+#: beans.xml:545
#, no-c-format
msgid "remote or web service invocation, or"
msgstr ""
#. Tag: para
-#: beans.xml:547
+#: beans.xml:548
#, no-c-format
msgid "timers and asynchronous methods,"
msgstr ""
#. Tag: para
-#: beans.xml:551
+#: beans.xml:552
#, no-c-format
msgid ""
"When we don't need any of these things, an ordinary managed bean will serve "
@@ -988,7 +988,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:553
+#: beans.xml:554
#, no-c-format
msgid ""
"Many beans (including any <literal>@SessionScoped</literal> or "
@@ -998,7 +998,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:559
+#: beans.xml:560
#, no-c-format
msgid ""
"Beans which hold references to heavy-weight resources, or hold a lot of "
@@ -1008,7 +1008,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:565
+#: beans.xml:566
#, no-c-format
msgid ""
"Finally, it's usually obvious when method-level transaction management, "
@@ -1017,7 +1017,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:570
+#: beans.xml:571
#, no-c-format
msgid ""
"The point we're trying to make is: use a session bean when you need the "
@@ -1030,7 +1030,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:578
+#: beans.xml:579
#, no-c-format
msgid ""
"On the other hand, don't be scared to use session beans just because you've "
@@ -1043,13 +1043,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:589
+#: beans.xml:590
#, no-c-format
msgid "Producer methods"
msgstr ""
#. Tag: para
-#: beans.xml:591
+#: beans.xml:592
#, no-c-format
msgid ""
"Not everything that needs to be injected can be boiled down to a bean class "
@@ -1061,7 +1061,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:599
+#: beans.xml:600
#, no-c-format
msgid ""
"A <emphasis>producer method</emphasis> is a method that acts as a source of "
@@ -1072,7 +1072,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:606
+#: beans.xml:607
#, no-c-format
msgid ""
"A producer method is declared by annotating a method of a bean class with "
@@ -1080,7 +1080,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:611
+#: beans.xml:612
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
@@ -1096,7 +1096,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:613
+#: beans.xml:614
#, no-c-format
msgid ""
"We can't write a bean class that is itself a random number. But we can "
@@ -1111,25 +1111,25 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:622
+#: beans.xml:623
#, no-c-format
msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
msgstr ""
#. Tag: para
-#: beans.xml:624
+#: beans.xml:625
#, no-c-format
msgid "Even in a Unified EL expression:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:628
+#: beans.xml:629
#, no-c-format
msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
msgstr ""
#. Tag: para
-#: beans.xml:630
+#: beans.xml:631
#, no-c-format
msgid ""
"A producer method must be a non-abstract method of a managed bean class or "
@@ -1139,13 +1139,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:636
+#: beans.xml:637
#, no-c-format
msgid "The bean types of a producer method depend upon the method return type:"
msgstr ""
#. Tag: para
-#: beans.xml:642
+#: beans.xml:643
#, no-c-format
msgid ""
"If the return type is an interface, the unrestricted set of bean types "
@@ -1154,7 +1154,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:648
+#: beans.xml:649
#, no-c-format
msgid ""
"If a return type is primitive or is a Java array type, the unrestricted set "
@@ -1163,7 +1163,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:654
+#: beans.xml:655
#, no-c-format
msgid ""
"If the return type is a class, the unrestricted set of bean types contains "
@@ -1172,7 +1172,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:661
+#: beans.xml:662
#, no-c-format
msgid ""
"If the producer method has method parameters, the container will look for a "
@@ -1181,7 +1181,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:667
+#: beans.xml:668
#, no-c-format
msgid ""
"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
@@ -1190,7 +1190,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:669
+#: beans.xml:670
#, no-c-format
msgid ""
"We'll talk much more about producer methods in <xref linkend="
@@ -1198,13 +1198,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:674
+#: beans.xml:675
#, no-c-format
msgid "Producer fields"
msgstr ""
#. Tag: para
-#: beans.xml:676
+#: beans.xml:677
#, no-c-format
msgid ""
"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
@@ -1214,7 +1214,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:682
+#: beans.xml:683
#, no-c-format
msgid ""
"<![CDATA[public class Shop {\n"
@@ -1224,7 +1224,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:684
+#: beans.xml:685
#, no-c-format
msgid ""
"The rules for determining the bean types of a producer field parallel the "
@@ -1232,7 +1232,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:688
+#: beans.xml:689
#, no-c-format
msgid ""
"A producer field is really just a shortcut that lets us avoid writing a "
@@ -1242,3 +1242,405 @@
"linkend=\"resources\"/>. Because we can't wait to get to work on some "
"examples."
msgstr ""
+
+#. Tag: title
+#: beans.xml:701
+#, no-c-format
+msgid "The (minimal) bean descriptor"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:703
+#, no-c-format
+msgid ""
+"First, it's important to understand that the XML bean descriptor in CDI "
+"(beans.xml) is not there to define beans in XML, like in other popular bean "
+"containers. Rather, you use this file to enable CDI services for the current "
+"bean archive that is difficult to define consistently in Java or which you "
+"don't want to define in Java (e.g., to accomodate testing)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:710
+#, no-c-format
+msgid ""
+"For example, the XML is used to enable interceptors (which are disabled by "
+"default) and define interceptor ordering. So the bean descriptor "
+"<emphasis>complements</emphasis> the metadata that is provided in the Java "
+"language syntax. (You may still want to define beans in XML for other "
+"reasons, but that is the concern of an extension)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:717
+#, no-c-format
+msgid ""
+"Let's first ask why the beans.xml is required, then look at what services it "
+"is used used to enable."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:722
+#, no-c-format
+msgid "Why is beans.xml required?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:724
+#, no-c-format
+msgid ""
+"You may be wondering, if beans are not described using XML, why do we need "
+"beans.xml at all, particularly if you don't have anything that you would "
+"need the bean descriptor to enable (alternatives, interceptors or "
+"decorators)?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:730
+#, no-c-format
+msgid "There are two things about CDI that we need to keep in mind:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:736
+#, no-c-format
+msgid ""
+"CDI does not require any special declaration for a Java class to be injected "
+"- that's right, no annotation or XML declaration at all!"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:742
+#, no-c-format
+msgid ""
+"CDI does not define any special kind of module - CDI beans can be deployed "
+"in a library JAR, EJB JAR, WAR, RAR, or JVM classpath directory."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:749
+#, no-c-format
+msgid ""
+"The CDI specification calls the process of identifying beans in modules "
+"<emphasis>bean discovery</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:753
+#, no-c-format
+msgid ""
+"So there are potentially a lot of classes in the classpath which might be "
+"beans! We don't want to force the container to scan every one of those "
+"classes at startup and build its internal metamodel for each of them. This "
+"really could make bean discovery very slow."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:759
+#, no-c-format
+msgid ""
+"But there's another reason we need to give the user some control over which "
+"classes are available for injection. We don't want every class in the "
+"classpath to potentially match an injection point, including classes that "
+"were never intended to be injected into things. This would force the "
+"developer to have to use qualifiers much more often to disambiguate "
+"injection points."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:766
+#, no-c-format
+msgid "So we have two choices. We could have the developer:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:772
+#, no-c-format
+msgid "explicitly exclude modules which do not contain beans, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:775
+#, no-c-format
+msgid "explicitly declare modules which do contain beans."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:779
+#, no-c-format
+msgid ""
+"It should be clear that the second option is a much better way to go. Thus, "
+"CDI has the notion of a bean archive. A bean archive is just a module that "
+"has a file named beans.xml in the META-INF directory. The container looks "
+"for beans in bean archives. It ignores other modules."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:785
+#, no-c-format
+msgid ""
+"Now, you might be wondering if we've got the granularity wrong here. Why "
+"should module be the right criteria to use for including/excluding a class. "
+"Why not consider:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:792
+#, no-c-format
+msgid "a class-level annotation,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:795
+#, no-c-format
+msgid "the package,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:798
+#, no-c-format
+msgid "some type it implements or extends, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:801
+#, no-c-format
+msgid "some naming convention."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:805
+#, no-c-format
+msgid ""
+"We've got the first option covered. Annotate a bean <literal>@Alternative</"
+"literal>, or with an alternative stereotype, and it will be considered "
+"disabled by CDI, as long as you don't explicitly enable it in beans.xml. "
+"That's not quite the same thing as excluding the class from scanning "
+"altogether, but it's close. (One difference is that a portable extension "
+"with still get a <literal>ProcessAnnotatedType</literal> event for that "
+"class)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:813
+#, no-c-format
+msgid ""
+"A future version of CDI might allow you to declare excluded packages in "
+"beans.xml. Excluding a bean by type or naming convention isn't really that "
+"appealing. In the world of CDI, we use stereotypes for identifying "
+"architectural roles. We don't use marker interfaces or naming conventions. "
+"Names really shouldn't affect functionality as it is too fragile."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:820
+#, no-c-format
+msgid "Enough theory, what elements are available in beans.xml?"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:826
+#, no-c-format
+msgid "Bean descriptor schema"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:828
+#, no-c-format
+msgid ""
+"If you don't need to activate any interceptors, decorators or alternatives "
+"(you just have plain beans that you need to use in an archive), the beans."
+"xml file can be <emphasis>empty</emphasis>. If you do have one of these "
+"requirements, then you need to start popularing the descriptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:834
+#, no-c-format
+msgid ""
+"The root element of a beans.xml file is <literal>beans</literal>, with the "
+"following <ulink url=\"http://anonsvn.jboss.org/repos/weld/api/trunk/cdi/src/"
+"main/resources/beans.xsd\">schema</ulink>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:839
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<beans 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"
+"</beans>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:841
+#, no-c-format
+msgid ""
+"The <literal>beans</literal> element can have one or more of each of the "
+"following children:"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:847
+#, no-c-format
+msgid "interceptors"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:850
+#, no-c-format
+msgid "decorators"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:853
+#, no-c-format
+msgid "alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:857
+#, no-c-format
+msgid "Let's look at each element in detail."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:862
+#, no-c-format
+msgid "<interceptors>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:864
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled interceptors bound via interceptor "
+"bindings. An interceptor must be explicitly enabled by listing the fully "
+"qualified class name in a child <class> element of <"
+"interceptors>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:870
+#, no-c-format
+msgid ""
+"There may be zero or more interceptor class elements. The order of the class "
+"declarations determines the interceptor ordering. Interceptors which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an interceptor "
+"class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:877
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.intercept.SecurityInterceptor</class>\n"
+" <class>com.acme.intercept.TransactionInterceptor</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:883
+#, no-c-format
+msgid "<decorators>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:885
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled decorators. A decorator must be "
+"explicitly enabled by listing the fully qualified class name in a child <"
+"class> element of <decorators>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:891
+#, no-c-format
+msgid ""
+"There may be zero or more decorator class elements. The order of the class "
+"declarations determines the decorator ordering. Decorators which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an decorator class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.decorate.BigAccountDecorator</class>\n"
+" <class>com.acme.decorate.SpecialGiftDecorator</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:903
+#, no-c-format
+msgid "<alternatives>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:905
+#, no-c-format
+msgid ""
+"An alternative is a bean that must be explicitly declared in the beans.xml "
+"file if it should be available for lookup, injection or EL resolution. By "
+"default, a bean archive has no active alternatives. An alternative must be "
+"explicitly declared using the fully qualified bean class name or stereotype "
+"class name in either a child <class> or <stereotype> element of "
+"<alternatives>, respectively."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:913
+#, no-c-format
+msgid ""
+"An alternative is selected for the bean archive if either: the alternative "
+"is a managed bean or session bean and the bean class of the bean is listed, "
+"or the alternative is a producer method, field or resource, and the bean "
+"class that declares the method or field is listed, or any "
+"<literal>@Alternative</literal> stereotype of the alternative is listed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:920
+#, no-c-format
+msgid ""
+"There may be zero or more alternative bean class elements. The same class "
+"may not be listed twice. And of course, the class must exist and it must be "
+"an alternative bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:925
+#, no-c-format
+msgid ""
+"There may also be zero or more <literal>@Alternative</literal> stereotype "
+"elements. The same stereotype may not be listed twice. And of course, the "
+"stereotype class must exist and it must be an stereotype annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:931
+#, no-c-format
+msgid ""
+"<![CDATA[<stereotypes>\n"
+" <class>com.acme.business.MockPaymentProcessor</class>\n"
+" <stereotype>com.acme.stereotype.Mock</stereotype>\n"
+"</stereotypes>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:935
+#, no-c-format
+msgid ""
+"And that's it! A very simple schema, used only to activate and order CDI "
+"services."
+msgstr ""
Modified: doc/trunk/reference/ko-KR/dependencies.po
===================================================================
--- doc/trunk/reference/ko-KR/dependencies.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/dependencies.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -24,7 +24,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/"
+"is currently maintained in the <ulink url=\"https://jira.jboss.org/jira/"
"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
"appendix."
msgstr ""
Modified: doc/trunk/reference/ko-KR/ee.po
===================================================================
--- doc/trunk/reference/ko-KR/ee.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/ee.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: ee\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -73,7 +73,7 @@
#: ee.xml:32
#, no-c-format
msgid ""
-"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"the default <ulink url=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
"Validation</ulink> <literal>ValidationFactory</literal>, and"
msgstr ""
@@ -85,14 +85,49 @@
"literal>."
msgstr ""
+#. Tag: para
+#: ee.xml:45
+#, no-c-format
+msgid ""
+"The CDI specification does not require the servlet context objects, "
+"<literal>HttpServletRequest</literal>, <literal>HttpSession</literal> and "
+"<literal>ServletContext</literal> to be exposed as injectable beans. If you "
+"really want to be able to inject these objects, it's easy to create a "
+"portable extension to expose them as beans. However, we recommend that "
+"direct access to these objects be limited to servlets, servlet filters and "
+"servlet event listeners, where they may be obtained in the usual way as "
+"defined by the Java Servlets spec. The <literal>FacesContext</literal> is "
+"also not injectable. You can get at it by calling <literal>FacesContext."
+"getCurrentInstance()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ee.xml:57
+#, no-c-format
+msgid ""
+"Oh, you <emphasis>really</emphasis> want to inject the "
+"<literal>FacesContext</literal>? Alright then, try this producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: ee.xml:61
+#, no-c-format
+msgid ""
+"<![CDATA[class FacesContextProducer {\n"
+" @Produces @RequestScoped FacesContext getFacesContext() {\n"
+" return FacesContext.getCurrentInstance();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
#. Tag: title
-#: ee.xml:47
+#: ee.xml:67
#, fuzzy, no-c-format
msgid "Injecting Java EE resources into a bean"
msgstr "Java EE 리소스를 Web Bean으로 삽입 "
#. Tag: para
-#: ee.xml:49
+#: ee.xml:69
#, fuzzy, no-c-format
msgid ""
"All managed beans may take advantage of Java EE component environment "
@@ -106,7 +141,7 @@
"입의 장점을 취할 수 있습니다. 이미 이에 대한 몇몇 예를 살펴보았습니다: "
#. Tag: programlisting
-#: ee.xml:56
+#: ee.xml:76
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @Interceptor\n"
@@ -128,7 +163,7 @@
"}]]>"
#. Tag: programlisting
-#: ee.xml:58
+#: ee.xml:78
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped\n"
@@ -149,7 +184,7 @@
"}]]>"
#. Tag: para
-#: ee.xml:60
+#: ee.xml:80
#, fuzzy, no-c-format
msgid ""
"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
@@ -163,7 +198,7 @@
"다. "
#. Tag: para
-#: ee.xml:66
+#: ee.xml:86
#, no-c-format
msgid ""
"Of course, we advise that component environment injection be used to define "
@@ -171,13 +206,13 @@
msgstr ""
#. Tag: title
-#: ee.xml:74
+#: ee.xml:94
#, fuzzy, no-c-format
msgid "Calling a bean from a servlet"
msgstr "Servlet에서 Web Bean 호출 "
#. Tag: para
-#: ee.xml:76
+#: ee.xml:96
#, fuzzy, no-c-format
msgid ""
"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
@@ -187,7 +222,7 @@
"또는 초기화 방식 삽입을 사용하여 Web Bean을 삽입합니다. "
#. Tag: programlisting
-#: ee.xml:81
+#: ee.xml:101
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class Login extends HttpServlet {\n"
@@ -234,7 +269,7 @@
"}"
#. Tag: para
-#: ee.xml:83
+#: ee.xml:103
#, fuzzy, no-c-format
msgid ""
"Since instances of servlets are shared across all incoming threads, the bean "
@@ -247,13 +282,13 @@
"출을 라우팅을 처리합니다. "
#. Tag: title
-#: ee.xml:92
+#: ee.xml:112
#, fuzzy, no-c-format
msgid "Calling a bean from a message-driven bean"
msgstr "Message-Driven Bean에서 Web Bean 호출 "
#. Tag: para
-#: ee.xml:94
+#: ee.xml:114
#, no-c-format
msgid ""
"CDI injection applies to all EJBs, even when they aren't managed beans. In "
@@ -262,14 +297,14 @@
msgstr ""
#. Tag: para
-#: ee.xml:99
+#: ee.xml:119
#, 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:101
+#: ee.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @MessageDriven\n"
@@ -295,7 +330,7 @@
"}"
#. Tag: para
-#: ee.xml:103
+#: ee.xml:123
#, fuzzy, no-c-format
msgid ""
"Please note that there is no session or conversation context available when "
@@ -309,19 +344,19 @@
"<literal>@ApplicationScoped</literal> Web Beans 만을 사용할 수 있습니다. "
#. Tag: para
-#: ee.xml:109
+#: ee.xml:129
#, no-c-format
msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
msgstr ""
#. Tag: title
-#: ee.xml:116
+#: ee.xml:136
#, no-c-format
msgid "JMS endpoints"
msgstr "JMS 엔드포인트 "
#. Tag: para
-#: ee.xml:118
+#: ee.xml:138
#, no-c-format
msgid ""
"Sending messages using JMS can be quite complex, because of the number of "
@@ -345,7 +380,7 @@
"있습니다. "
#. Tag: para
-#: ee.xml:127
+#: ee.xml:147
#, no-c-format
msgid ""
"You can use producer fields and methods to prepare all of these resources "
@@ -353,7 +388,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:131
+#: ee.xml:151
#, no-c-format
msgid ""
"<![CDATA[public class OrderResources {\n"
@@ -402,7 +437,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:133
+#: ee.xml:153
#, no-c-format
msgid ""
"In this example, we can just inject the prepared <literal>MessageProducer</"
@@ -410,7 +445,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:138
+#: ee.xml:158
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject Order order;\n"
@@ -434,7 +469,7 @@
"}"
#. Tag: para
-#: ee.xml:144
+#: ee.xml:164
#, fuzzy, no-c-format
msgid ""
"The lifecycle of the injected JMS objects is completely controlled by the "
@@ -443,13 +478,13 @@
"삽입된 JMS 객체의 수명주기는 Web Bean 관리자에 의해 전적으로 관리됩니다. "
#. Tag: title
-#: ee.xml:151
+#: ee.xml:171
#, no-c-format
msgid "Packaging and deployment"
msgstr "패키징 및 배포 "
#. Tag: para
-#: ee.xml:153
+#: ee.xml:173
#, fuzzy, no-c-format
msgid ""
"CDI doesn't define any special deployment archive. You can package beans in "
@@ -471,7 +506,7 @@
"는 애플리케이션에서 사용할 수 없습니다. "
#. Tag: para
-#: ee.xml:162
+#: ee.xml:182
#, fuzzy, no-c-format
msgid ""
"In an embeddable EJB container, beans may be deployed in any location in "
Modified: doc/trunk/reference/ko-KR/environments.po
===================================================================
--- doc/trunk/reference/ko-KR/environments.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/environments.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -383,133 +383,270 @@
"available:"
msgstr ""
-#. Tag: literal
-#: environments.xml:215
+#. Tag: para
+#: environments.xml:214
#, no-c-format
-msgid "POJOs (no EJBs)"
+msgid ""
+"Managed beans with <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:220
#, no-c-format
-msgid "Typesafe Dependency Injection"
+msgid "Dependency injection with qualifiers and alternatives"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:225
#, no-c-format
-msgid "Application and Dependent Contexts"
+msgid ""
+"<literal>@Application</literal>, <literal>@Dependent</literal> and "
+"<literal>@Singleton</literal> scopes"
msgstr ""
-#. Tag: literal
-#: environments.xml:230
+#. Tag: para
+#: environments.xml:231
#, no-c-format
-msgid "Qualifiers"
+msgid "Interceptors and decorators"
msgstr ""
-#. Tag: literal
-#: environments.xml:235
+#. Tag: para
+#: environments.xml:236
#, no-c-format
msgid "Stereotypes"
msgstr ""
-#. Tag: literal
-#: environments.xml:240
+#. Tag: para
+#: environments.xml:241
#, no-c-format
-msgid "Typesafe Event Model"
+msgid "Events"
msgstr ""
-#. Tag: title
+#. Tag: para
#: environments.xml:246
#, no-c-format
+msgid "Portable extension support"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:252
+#, no-c-format
+msgid "EJB beans are not supported."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:257
+#, no-c-format
msgid "CDI SE Module"
msgstr ""
#. Tag: para
-#: environments.xml:248
+#: environments.xml:259
#, 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:"
+"automatically registering all simple beans found on the classpath. The "
+"command line parameters can be injected using either of the following:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:255
+#: environments.xml:264
#, no-c-format
+msgid "<![CDATA[@Inject @Parameters List<String> params;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:266
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters String[] paramsArray;]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:268
+#, no-c-format
+msgid "The second form is useful for compatibility with existing classes."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:273
+#, no-c-format
msgid ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with "
-"existing classes]]>"
+"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 ""
#. Tag: para
-#: environments.xml:257
+#: environments.xml:282
#, no-c-format
msgid "Here's an example of a simple CDI SE application:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:261
+#: environments.xml:286
#, no-c-format
msgid ""
-"<![CDATA[@ApplicationScoped\n"
+"<![CDATA[@Singleton\n"
"public class HelloWorld\n"
"{\n"
-" @Inject @Parameters List<String> parameters;\n"
-"\n"
-" public void printHello(@Observes ContainerInitialized event) {\n"
+" public void printHello(@Observes ContainerInitialized event, @Parameters "
+"List<String> parameters) {\n"
" System.out.println(\"Hello \" + parameters.get(0));\n"
" }\n"
"}]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:292
+#, no-c-format
+msgid "Bootstrapping CDI SE"
+msgstr ""
+
#. Tag: para
-#: environments.xml:263
+#: environments.xml:294
#, no-c-format
+msgid "CDI SE applications can be bootstrapped in the following ways."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:300
+#, no-c-format
+msgid "The ContainerInitialized Event"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:302
+#, no-c-format
msgid ""
-"CDI SE applications can be bootstrapped by running the StartMain class like "
-"so:"
+"Thanks to the power of CDI's typesafe event model, application developers "
+"need not write any bootstrapping code. The Weld SE module comes with a built-"
+"in main method which will bootstrap CDI for you and then fire a "
+"<literal>ContainerInitialized</literal> event. The entry point for your "
+"application code would therefore be a simple bean which observes the "
+"<literal>ContainerInitialized</literal> event, as in the previous example."
msgstr ""
+#. Tag: para
+#: environments.xml:310
+#, no-c-format
+msgid ""
+"In this case your application can be started by calling the provided main "
+"method like so:"
+msgstr ""
+
#. Tag: programlisting
-#: environments.xml:267
+#: environments.xml:313
#, no-c-format
msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:319
+#, no-c-format
+msgid "Programatic Bootstrap API"
+msgstr ""
+
#. Tag: para
-#: environments.xml:269
+#: environments.xml:321
#, 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:"
+"For added flexibility, CDI SE also comes with a bootstrap API which can be "
+"called from within your application in order to initialize CDI and obtain "
+"references to your application's beans and events. The API consists of two "
+"classes: <literal>Weld</literal> and <literal>WeldContainer</literal>."
msgstr ""
#. Tag: programlisting
-#: environments.xml:276
+#: environments.xml:327
#, no-c-format
msgid ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+"<![CDATA[public class Weld\n"
+"{\n"
+"\n"
+" /** Boots Weld and creates and returns a WeldContainer instance, through "
+"which\n"
+" * beans and events can be accesed. */\n"
+" public WeldContainer initialize() {...}\n"
+"\n"
+" /** Convenience method for shutting down the container. */\n"
+" public void shutdown() {...}\n"
+"\n"
"}]]>"
msgstr ""
+#. Tag: programlisting
+#: environments.xml:329
+#, no-c-format
+msgid ""
+"<![CDATA[public class WeldContainer\n"
+"{\n"
+"\n"
+" /** Provides access to all beans within the application. */\n"
+" public Instance<Object> instance() {...}\n"
+"\n"
+" /** Provides access to all events within the application. */\n"
+" public Event<Object> event() {...}\n"
+"\n"
+" /** Provides direct access to the BeanManager. */\n"
+" public BeanManager getBeanManager() {...}\n"
+"\n"
+"}]]>"
+msgstr ""
+
#. Tag: para
-#: environments.xml:279
+#: environments.xml:331
#, 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>."
+"Here's an example application main method which uses this API to initialize "
+"a bean of type <literal>MyApplicationBean</literal>."
msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.instance().select(MyApplicationBean.class).get();\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:336
+#, no-c-format
+msgid ""
+"Alternatively the application could be started by firing a custom event "
+"which would then be observed by another simple bean. The following example "
+"fires <literal>MyEvent</literal> on startup."
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.event().select(MyEvent.class).fire( new MyEvent() );\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: environments.xml:348
+#, no-c-format
+msgid "Setting the Classpath"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:350
+#, no-c-format
+msgid ""
+"Weld SE comes packaged as a 'shaded' jar which includes the CDI API, Weld "
+"Core and all dependant classes bundled into a single jar. Therefore the only "
+"Weld jar you need on the classpath, in addition to your application's "
+"classes and dependant jars, is the Weld SE jar."
+msgstr ""
Modified: doc/trunk/reference/ko-KR/example.po
===================================================================
--- doc/trunk/reference/ko-KR/example.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/example.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: example\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -34,14 +34,16 @@
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:"
+"request-scoped bean to hold the username and password entered during login, "
+"with constraints defined using annotations from the Bean Validation "
+"specification:"
msgstr ""
"이러한 웹 애플리케이션의 예를 살펴봅시다. JSF를 사용하는 애플리케이션의 사용"
"자 로그인/로그아웃을 구현할 것입니다. 먼저, 로그인시 입력한 사용자 이름 및 암"
"호를 보유하기 위해 Web Bean을 정의합니다: "
#. Tag: programlisting
-#: example.xml:11
+#: example.xml:12
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Named @RequestScoped\n"
@@ -49,9 +51,11 @@
" private String username;\n"
" private String password;\n"
" \n"
+" @NotNull @Length(min=3, max=25)\n"
" public String getUsername() { return username; }\n"
" public void setUsername(String username) { this.username = username; }\n"
" \n"
+" @NotNull @Length(min=6, max=20)\n"
" public String getPassword() { return password; }\n"
" public void setPassword(String password) { this.password = password; }\n"
"}]]>"
@@ -71,21 +75,23 @@
"}]]>"
#. Tag: para
-#: example.xml:13
+#: example.xml:14
#, 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
+#: example.xml:16
#, 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"
+" <f:validateBean>\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"
+" </f:validateBean>\n"
" </h:panelGrid>\n"
" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
"login.loggedIn}\"/>\n"
@@ -107,9 +113,52 @@
"</h:form>]]>"
#. Tag: para
-#: example.xml:17
+#: example.xml:18
+#, no-c-format
+msgid "Users are represented by a JPA entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:22
#, fuzzy, no-c-format
msgid ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+" private @NotNull @Length(min=3, max=25) @Id String username;\n"
+" private @NotNull @Length(min=6, max=20) String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" public String setPassword(String password) { this.password = password; }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class Credentials {\n"
+" \n"
+" private String username;\n"
+" private String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" \n"
+" public String getPassword() { return password; }\n"
+" public void setPassword(String password) { this.password = password; }\n"
+" \n"
+"}]]>"
+
+#. Tag: para
+#: example.xml:24
+#, no-c-format
+msgid ""
+"(Note that we're also going to need a <literal>persistence.xml</literal> "
+"file to configure the JPA persistence unit containing <literal>User</"
+"literal>.)"
+msgstr ""
+
+#. Tag: para
+#: example.xml:29
+#, 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:"
@@ -118,7 +167,7 @@
"이 완료되어 다른 Web Beans에 <literal>User</literal> 엔티티를 노출시킵니다: "
#. Tag: programlisting
-#: example.xml:22
+#: example.xml:34
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped @Named\n"
@@ -197,7 +246,7 @@
"}]]>"
#. Tag: para
-#: example.xml:24
+#: example.xml:36
#, no-c-format
msgid ""
"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
@@ -205,7 +254,7 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:26
+#: example.xml:38
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -219,7 +268,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: programlisting
-#: example.xml:28
+#: example.xml:40
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -233,7 +282,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: para
-#: example.xml:30
+#: example.xml:42
#, no-c-format
msgid ""
"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
@@ -241,16 +290,17 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:34
+#: example.xml:46
#, no-c-format
msgid ""
-"<![CDATA[public class UserDatabaseProducer {\n"
-" @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"<![CDATA[class UserDatabaseProducer {\n"
+" @Produces @UserDatabase @PersistenceContext \n"
+" static EntityManager userDatabase;\n"
"}]]>"
msgstr ""
#. Tag: para
-#: example.xml:36
+#: example.xml:48
#, fuzzy, no-c-format
msgid ""
"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
@@ -258,7 +308,7 @@
msgstr "기타 다른 Web Bean은 현재 사용자를 쉽게 삽입할 수 있습니다: "
#. Tag: programlisting
-#: example.xml:38
+#: example.xml:50
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class DocumentEditor {\n"
@@ -286,13 +336,13 @@
"}]]>"
#. Tag: para
-#: example.xml:40
+#: example.xml:52
#, no-c-format
msgid "Or we can reference the current user in a JSF view:"
msgstr ""
#. Tag: programlisting
-#: example.xml:42
+#: example.xml:54
#, no-c-format
msgid ""
"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
@@ -301,7 +351,7 @@
msgstr ""
#. Tag: para
-#: example.xml:44
+#: example.xml:56
#, fuzzy, no-c-format
msgid ""
"Hopefully, this example gave you a taste of the CDI programming model. In "
Modified: doc/trunk/reference/ko-KR/extend.po
===================================================================
--- doc/trunk/reference/ko-KR/extend.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/extend.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: extend\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -103,52 +103,228 @@
"some other source"
msgstr ""
+#. Tag: title
+#: extend.xml:58
+#, fuzzy, no-c-format
+msgid "Creating an <literal>Extension</literal>"
+msgstr "<literal>Bean</literal> 클래스 "
+
#. Tag: para
-#: extend.xml:57
+#: extend.xml:60
+#, no-c-format
+msgid ""
+"The first step in creating a portable extension is to write a class that "
+"implements <literal>Extension</literal>. This marker interface does not "
+"define any methods, but it's needed to satisfy the requirements of Java SE's "
+"service provider architecture."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:66
+#, no-c-format
+msgid "class MyExtension implements Extension { ... }"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:68
+#, no-c-format
+msgid ""
+"Next, we need to register our extension as a service provider by creating a "
+"file named <literal>META-INF/services/javax.enterprise.inject.spi.Extension</"
+"literal>, which contains the name of our extension class:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:74
+#, no-c-format
+msgid "org.mydomain.extension.MyExtension"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:76
+#, no-c-format
+msgid ""
+"An extension is not a bean, exactly, since it is instantiated by the "
+"container during the initialization process, before any beans or contexts "
+"exist. However, it can be injected into other beans once the initialization "
+"process is complete."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:82
+#, no-c-format
+msgid ""
+"@Inject \n"
+"MyBean(MyExtension myExtension) {\n"
+" myExtension.doSomething();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:84
+#, no-c-format
+msgid ""
+"And, like beans, extensions can have observer methods. Usually, the observer "
+"methods observe <emphasis>container lifecycle events</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:92
+#, no-c-format
+msgid "Container lifecycle events"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:94
+#, no-c-format
+msgid ""
+"During the initialization process, the container fires a series of events, "
+"including:"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:101
+#, no-c-format
+msgid "BeforeBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:106
+#, no-c-format
+msgid "ProcessAnnotatedType"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:110
+#, no-c-format
+msgid ""
+"<literal>ProcessInjectionTarget</literal> and <literal>ProcessProducer</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:115
+#, no-c-format
+msgid ""
+"<literal>ProcessBean</literal> and <literal>ProcessObserverMethod</literal>"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:121
+#, no-c-format
+msgid "AfterBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:126
+#, no-c-format
+msgid "AfterDeploymentValidation"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:131
+#, no-c-format
+msgid "Extensions may observe these events:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {\n"
+" Logger.global.debug(\"beginning the scanning process\");\n"
+" }\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" Logger.global.debug(\"scanning type: \" + pat.getAnnotatedType()."
+"getJavaClass().getName());\n"
+" } \n"
+"\n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {\n"
+" Logger.global.debug(\"finished the scanning process\");\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:137
+#, no-c-format
+msgid ""
+"In fact, the extension can do a lot more than just observe. The extension is "
+"permitted to modify the container's metamodel and more. Here's a very simple "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" //tell the container to ignore the type if it is annotated @Ignore\n"
+" if ( pat.getAnnotatedType().isAnnotionPresent(Ignore.class) ) pat.veto"
+"(); \n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:144
#, fuzzy, no-c-format
-msgid ""
-"The nerve center for extending CDI is the <literal>BeanManager</literal> "
-"object."
+msgid "The observer method may inject a <literal>BeanManager</literal>"
msgstr "Web Beans 확장의 중심은 <literal>Manager</literal> 객체입니다. "
+#. Tag: programlisting
+#: extend.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> "
+"pat, BeanManager beanManager) { ... }]]>"
+msgstr ""
+
#. Tag: title
-#: extend.xml:62
+#: extend.xml:153
#, fuzzy, no-c-format
msgid "The <literal>BeanManager</literal> object"
msgstr "<literal>Manager</literal> 객체 "
#. Tag: para
-#: extend.xml:64
+#: extend.xml:155
#, fuzzy, no-c-format
msgid ""
-"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object. 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:69
+#: extend.xml:161
#, no-c-format
msgid ""
-"<![CDATA[public interface Manager {\n"
+"<![CDATA[public interface BeanManager {\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(Type beanType, Annotation... qualifiers);\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"
-" public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
-"Annotation... bindings);\n"
+" public void fireEvent(Object event, Annotation... qualifiers);\n"
+" public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, "
+"Annotation... qualifiers);\n"
" public List<Decorator<?>> resolveDecorators(Set<Type> types, "
-"Annotation... bindings);\n"
+"Annotation... qualifiers);\n"
" public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
"Annotation... interceptorBindings);\n"
" public boolean isScope(Class<? extends Annotation> annotationType);\n"
@@ -157,11 +333,11 @@
" public boolean isPassivatingScope(Class<? extends Annotation> "
"annotationType);\n"
" public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
-" public boolean isInterceptorBindingType(Class<? extends Annotation> "
+" public boolean isInterceptorBinding(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> getInterceptorBindingDefinition(Class<? extends "
+"Annotation> bindingType);\n"
" public Set<Annotation> getStereotypeDefinition(Class<? extends "
"Annotation> stereotype);\n"
" public Context getContext(Class<? extends Annotation> scopeType);\n"
@@ -175,20 +351,21 @@
msgstr ""
#. Tag: para
-#: extend.xml:71
+#: extend.xml:163
#, fuzzy, no-c-format
msgid ""
-"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+"Any bean or other Java EE component which supports injection can obtain an "
+"instance of <literal>BeanManager</literal> via injection:"
msgstr "삽입을 통해 <literal>Manager</literal> 인스턴스를 얻을 수 있습니다: "
#. Tag: programlisting
-#: extend.xml:73
+#: extend.xml:166
#, fuzzy, no-c-format
-msgid "@Inject BeanManager beanManager"
+msgid "@Inject BeanManager beanManager;"
msgstr "@Current Manager manager"
#. Tag: para
-#: extend.xml:75
+#: extend.xml:168
#, no-c-format
msgid ""
"Java EE components may obtain an instance of <literal>BeanManager</literal> "
@@ -198,7 +375,7 @@
msgstr ""
#. Tag: para
-#: extend.xml:81
+#: extend.xml:174
#, fuzzy, no-c-format
msgid ""
"Let's study some of the interfaces exposed by the <literal>BeanManager</"
@@ -206,25 +383,99 @@
msgstr "Web Beans 확장의 중심은 <literal>Manager</literal> 객체입니다. "
#. Tag: title
-#: extend.xml:86
+#: extend.xml:179
#, fuzzy, no-c-format
+msgid "The <literal>InjectionTarget</literal> interface"
+msgstr "<literal>Context</literal> 인터페이스 "
+
+#. Tag: para
+#: extend.xml:181
+#, no-c-format
+msgid ""
+"The first thing that a framework developer is going to look for in the "
+"portable extension SPI is a way to inject CDI beans into objects which are "
+"not under the control of CDI. The <literal>InjectionTarget</literal> "
+"interface makes this very easy."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:188
+#, no-c-format
+msgid ""
+"We recommend that frameworks let CDI take over the job of actually "
+"instantiating the framework-controlled objects. That way, the framework-"
+"controlled objects can take advantage of constructor injection. However, if "
+"the framework requires use of a constructor with a special signature, the "
+"framework will need to instatiate the object itself, and so only method and "
+"field injection will be supported."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[//get the BeanManager from JNDI\n"
+"BeanManager beanManager = (BeanManager) new InitialContext().lookup(\"java:"
+"comp/BeanManager\");\n"
+"\n"
+"//CDI uses an AnnotatedType object to read the annotations of a class\n"
+"AnnotatedType<SomeFrameworkComponent> type = beanManager.createAnnotatedType"
+"(SomeFrameworkComponent.class);\n"
+"\n"
+"//The extension uses an InjectionTarget to delegate instantiation, "
+"dependency injection \n"
+"//and lifecycle callbacks to the CDI container\n"
+"InjectionTarget<SomeFrameworkComponent> it = beanManager."
+"createInjectionTarget(type);\n"
+"\n"
+"//each instance needs its own CDI CreationalContext\n"
+"CreationalContext ctx = beanManager.createCreationalContext(null);\n"
+"\n"
+"//instantiate the framework component and inject its dependencies\n"
+"SomeFrameworkComponent instance = it.produce(ctx); //call the constructor\n"
+"it.inject(instance, ctx); //call initializer methods and perform field "
+"injection\n"
+"it.postConstruct(instance); //call the @PostConstruct method\n"
+"\n"
+"...\n"
+"\n"
+"//destroy the framework component instance and clean up dependent objects\n"
+"it.preDestroy(instance); //call the @PreDestroy method\n"
+"it.dispose(instance); //it is now safe to discard the instance\n"
+"ctx.release(); //clean up dependent objects\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:201
+#, fuzzy, no-c-format
msgid "The <literal>Bean</literal> interface"
msgstr "<literal>Context</literal> 인터페이스 "
#. Tag: para
-#: extend.xml:88
+#: extend.xml:203
#, 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."
+"<literal>BeanManager</literal> object for every bean in the application. "
+"There are even <literal>Bean</literal> objects representing interceptors, "
+"decorators and producer methods."
msgstr ""
"<literal>Bean</literal> 추상 클래스의 인스턴스는 Web Beans를 나타냅니다. 애플"
"리케이션에 있는 모든 Web Bean에 해당하는 <literal>Manager</literal> 객체로 등"
"록된 <literal>Bean</literal> 인스턴스가 있습니다. "
+#. Tag: para
+#: extend.xml:210
+#, no-c-format
+msgid ""
+"The <literal>Bean</literal> interface exposes all the interesting things we "
+"dicussed in <xref linkend=\"bean-anatomy\"/>."
+msgstr ""
+
#. Tag: programlisting
-#: extend.xml:94
+#: extend.xml:215
#, no-c-format
msgid ""
"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
@@ -241,16 +492,28 @@
msgstr ""
#. Tag: para
-#: extend.xml:96
+#: extend.xml:217
+#, no-c-format
+msgid "There's an easy way to find out what beans exist in the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[Set<Bean<?>> allBeans = beanManager.getBeans(Obect.class, new "
+"AnnotationLiteral<Any>() {});]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:223
#, 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."
+"The <literal>Bean</literal> interface makes it possible for a portable "
+"extension 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을 지원하기 위"
@@ -259,25 +522,480 @@
"literal> 클래스를 사용하여 Web Beans에 주입된 다른 프레임워크에 의해 관리되"
"는 객체를 허용하게 할 수 있습니다. "
+#. Tag: title
+#: extend.xml:233
+#, fuzzy, no-c-format
+msgid "Registering a <literal>Bean</literal>"
+msgstr "<literal>Bean</literal> 클래스 "
+
#. Tag: para
-#: extend.xml:104
-#, fuzzy, no-c-format
+#: extend.xml:235
+#, no-c-format
msgid ""
-"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
-"specification: <literal>Interceptor</literal> and <literal>Decorator</"
-"literal>."
+"The most common kind of CDI portable extension registers a bean (or beans) "
+"with the container."
msgstr ""
-"Web Beans 사양에 의해 정의되는 두 개의 <literal>Bean</literal> 하부 클래스가 "
-"있습니다: <literal>Interceptor</literal> 및 <literal>Decorator</literal>. "
+#. Tag: para
+#: extend.xml:239
+#, no-c-format
+msgid ""
+"In this example, we make a framework class, <literal>SecurityManager</"
+"literal> available for injection. To make things a bit more interesting, "
+"we're going to delegate back to the container's <literal>InjectionTarget</"
+"literal> to perform instantiation and injection upon the "
+"<literal>SecurityManager</literal> instance."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:246
+#, no-c-format
+msgid ""
+"<![CDATA[public class SecurityManagerExtension implements Extension {\n"
+" \n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager "
+"bm) {\n"
+" \n"
+" //use this to read annotations of the class\n"
+" AnnotatedType<SecurityManager> at = bm.createAnnotatedType"
+"(SecurityManager.class); \n"
+"\n"
+" //use this to instantiate the class and inject dependencies\n"
+" final InjectionTarget<SecurityManager> it = bm.createInjectionTarget"
+"(at); \n"
+"\n"
+" abd.addBean( new Bean<SecurityManager>() {\n"
+"\n"
+" @Override\n"
+" public Class<?> getBeanClass() {\n"
+" return SecurityManager.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public String getName() {\n"
+" return \"securityManager\";\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getQualifiers() {\n"
+" Set<Annotation> qualifiers = new HashSet<Annotation>();\n"
+" qualifiers.add( new AnnotationLiteral<Default>() {} );\n"
+" qualifiers.add( new AnnotationLiteral<Any>() {} );\n"
+" return qualifiers;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<? extends Annotation> getScope() {\n"
+" return SessionScoped.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Class<? extends Annotation>> getStereotypes() {\n"
+" return Collections.emptySet();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypes() {\n"
+" Set<Type> types = new HashSet<Type>();\n"
+" types.add(SecurityManager.class);\n"
+" types.add(Object.class);\n"
+" return types;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAlternative() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isNullable() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public SecurityManager create(CreationalContext<SecurityManager> "
+"ctx) {\n"
+" SecurityManager instance = it.produce(ctx);\n"
+" it.inject(instance, ctx);\n"
+" it.postConstruct(instance);\n"
+" return instance;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void destroy(SecurityManager instance, \n"
+" CreationalContext<SecurityManager> ctx) {\n"
+" it.preDestroy(instance);\n"
+" it.dispose(instance);\n"
+" ctx.release();\n"
+" }\n"
+" \n"
+" } );\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:248
+#, no-c-format
+msgid ""
+"But a portable extension can also mess with beans that are discovered "
+"automatically by the container."
+msgstr ""
+
#. Tag: title
-#: extend.xml:112
+#: extend.xml:255
#, no-c-format
+msgid "Wrapping an <literal>AnnotatedType</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:257
+#, no-c-format
+msgid ""
+"One of the most interesting things that an extension class can do is process "
+"the annotations of a bean class <emphasis>before</emphasis> the container "
+"builds its metamodel."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:262
+#, no-c-format
+msgid ""
+"Let's start with an example of an extension that provides support for the "
+"use of <literal>@Named</literal> at the package level. The package-level "
+"name is used to qualify the EL names of all beans defined in that package. "
+"The portable extension uses the <literal>ProcessAnnotatedType</literal> "
+"event to wrap the <literal>AnnotatedType</literal> object and override the "
+"<literal>value()</literal> of the <literal>@Named</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[public class QualifiedNameExtension implements Extension {\n"
+"\n"
+" <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) {\n"
+"\n"
+" //wrap this to override the annotations of the class\n"
+" final AnnotatedType<X> at = pat.getAnnotatedType();\n"
+" \n"
+" AnnotatedType<X> wrapped = new AnnotatedType<X>() {\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedConstructor<X>> getConstructors() {\n"
+" return at.getConstructors();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedField<? super X>> getFields() {\n"
+" return at.getFields();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<X> getJavaClass() {\n"
+" return at.getJavaClass();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedMethod<? super X>> getMethods() {\n"
+" return at.getMethods();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public <T extends Annotation> T getAnnotation(final Class<T> "
+"annType) {\n"
+" if ( Named.class.equals(annType) ) {\n"
+" class NamedLiteral \n"
+" extends AnnotationLiteral<Named> \n"
+" implements Named {\n"
+" @Override\n"
+" public String value() {\n"
+" Package pkg = at.getClass().getPackage();\n"
+" String unqualifiedName = at.getAnnotation(Named."
+"class).value();\n"
+" final String qualifiedName;\n"
+" if ( pkg.isAnnotationPresent(Named.class) ) {\n"
+" qualifiedName = pkg.getAnnotation(Named."
+"class).value() \n"
+" + '.' + unqualifiedName;\n"
+" }\n"
+" else {\n"
+" qualifiedName = unqualifiedName;\n"
+" }\n"
+" return qualifiedName;\n"
+" }\n"
+" }\n"
+" return (T) new NamedLiteral();\n"
+" }\n"
+" else {\n"
+" return at.getAnnotation(annType);\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getAnnotations() {\n"
+" return at.getAnnotations();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Type getBaseType() {\n"
+" return at.getBaseType();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypeClosure() {\n"
+" return at.getTypeClosure();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annType) {\n"
+" return at.isAnnotationPresent(annType);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:272
+#, no-c-format
+msgid ""
+"Here's a second example, which adds the <literal>@Alternative</literal> "
+"annotation to any class which implements a certain <literal>Service</"
+"literal> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[class ServiceAlternativeExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" \n"
+" final AnnotatedType<T> type = pat.getAnnotatedType();\n"
+" \n"
+" if ( Service.class.isAssignableFrom( type.getJavaClass() ) ) {\n"
+" \n"
+" //if the class implements Service, make it an @Alternative\n"
+" AnnotatedType<T> wrapped = new AnnotatedType<T>() {\n"
+" \n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annotationType) {\n"
+" return annotationType.equals(Alternative.class) ? \n"
+" true : type.isAnnotationPresent(annotationType);\n"
+" }\n"
+" \n"
+" //remaining methods of AnnotatedType\n"
+" ...\n"
+" }\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:283
+#, no-c-format
+msgid ""
+"The <literal>AnnotatedType</literal> is not the only thing that can be "
+"wrapped by an extension."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:288
+#, no-c-format
+msgid "Wrapping an <literal>InjectionTarget</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:290
+#, no-c-format
+msgid ""
+"The <literal>InjectionTarget</literal> interface exposes operations for "
+"producing and disposing an instance of a component, injecting its "
+"dependencies and invoking its lifecycle callbacks. A portable extension may "
+"wrap the <literal>InjectionTarget</literal> for any Java EE component that "
+"supports injection, allowing it to intercept any of these operations when "
+"they are invoked by the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:297
+#, no-c-format
+msgid ""
+"Here's a CDI portable extension that reads values from properties files and "
+"configures fields of Java EE components, including servlets, EJBs, managed "
+"beans, interceptors and more. In this example, properties for a class such "
+"as <literal>org.mydomain.blog.Blogger</literal> go in a resource named "
+"<literal>org/mydomain/blog/Blogger.properties</literal>, and the name of a "
+"property must match the name of the field to be configured. So "
+"<literal>Blogger.properties</literal> could contain:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:305
+#, no-c-format
+msgid ""
+"firstName=Gavin\n"
+"lastName=King"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:307
+#, no-c-format
+msgid ""
+"The portable extension works by wrapping the containers "
+"<literal>InjectionTarget</literal> and setting field values from the "
+"<literal>inject()</literal> method."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:310
+#, no-c-format
+msgid ""
+"<![CDATA[public class ConfigExtension implements Extension {\n"
+"\n"
+" <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> "
+"pit) {\n"
+" \n"
+" //wrap this to intercept the component lifecycle\n"
+" final InjectionTarget<X> it = pit.getInjectionTarget();\n"
+" \n"
+" final Map<Field, Object> configuredValues = new HashMap<Field, "
+"Object>();\n"
+" \n"
+" //use this to read annotations of the class and its members\n"
+" AnnotatedType<X> at = pit.getAnnotatedType();\n"
+" \n"
+" //read the properties file\n"
+" String propsFileName = at.getClass().getSimpleName() + \".properties"
+"\";\n"
+" InputStream stream = at.getJavaClass().getResourceAsStream"
+"(propsFileName);\n"
+" if (stream!=null) {\n"
+" \n"
+" try {\n"
+" Properties props = new Properties();\n"
+" props.load(stream);\n"
+" for (Map.Entry<Object, Object> property : props.entrySet()) "
+"{\n"
+" String fieldName = property.getKey().toString();\n"
+" Object value = property.getValue();\n"
+" try {\n"
+" Field field = at.getJavaClass().getField"
+"(fieldName);\n"
+" field.setAccessible(true);\n"
+" if ( field.getType().isAssignableFrom( value.getClass"
+"() ) ) {\n"
+" configuredValues.put(field, value);\n"
+" }\n"
+" else {\n"
+" //TODO: do type conversion automatically\n"
+" pit.addDefinitionError( new InjectionException(\n"
+" \"field is not of type String: \" + "
+"field ) );\n"
+" }\n"
+" }\n"
+" catch (NoSuchFieldException nsfe) {\n"
+" pit.addDefinitionError(nsfe);\n"
+" }\n"
+" finally {\n"
+" stream.close();\n"
+" }\n"
+" }\n"
+" }\n"
+" catch (IOException ioe) {\n"
+" pit.addDefinitionError(ioe);\n"
+" }\n"
+" }\n"
+" \n"
+" InjectionTarget<X> wrapped = new InjectionTarget<X>() {\n"
+"\n"
+" @Override\n"
+" public void inject(X instance, CreationalContext<X> ctx) {\n"
+" it.inject(instance, ctx);\n"
+" \n"
+" //set the values onto the new instance of the component\n"
+" for (Map.Entry<Field, Object> configuredValue: "
+"configuredValues.entrySet()) {\n"
+" try {\n"
+" configuredValue.getKey().set(instance, "
+"configuredValue.getValue());\n"
+" }\n"
+" catch (Exception e) {\n"
+" throw new InjectionException(e);\n"
+" }\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void postConstruct(X instance) {\n"
+" it.postConstruct(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void preDestroy(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void dispose(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public X produce(CreationalContext<X> ctx) {\n"
+" return it.produce(ctx);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pit.setInjectionTarget(wrapped);\n"
+" \n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:312
+#, no-c-format
+msgid ""
+"There's a lot more to the portable extension SPI than what we've discussed "
+"here. Check out the CDI spec or Javadoc for more information. For now, we'll "
+"just mention one more extension point."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:320
+#, no-c-format
msgid "The <literal>Context</literal> interface"
msgstr "<literal>Context</literal> 인터페이스 "
#. Tag: para
-#: extend.xml:114
+#: extend.xml:322
#, fuzzy, no-c-format
msgid ""
"The <literal>Context</literal> interface supports addition of new scopes to "
@@ -287,7 +1005,7 @@
"하거나 새로운 환경에 내장된 범위를 확장 지원합니다. "
#. Tag: programlisting
-#: extend.xml:119
+#: extend.xml:327
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface Context {\n"
@@ -309,7 +1027,7 @@
"}"
#. Tag: para
-#: extend.xml:121
+#: extend.xml:329
#, fuzzy, no-c-format
msgid ""
"For example, we might implement <literal>Context</literal> to add a business "
@@ -320,6 +1038,16 @@
"하는 애플리케이션에 컨버세이션 범위에 대한 지원을 추가하기 위해 "
"<literal>Context</literal>를 구현할 수 있습니다. "
+#, fuzzy
+#~ 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>. "
+
#~ msgid "Extending Web Beans"
#~ msgstr "Web Beans 확장 "
@@ -442,9 +1170,6 @@
#~ "\n"
#~ "}]]>"
-#~ msgid "The <literal>Bean</literal> class"
-#~ msgstr "<literal>Bean</literal> 클래스 "
-
#~ msgid ""
#~ "public abstract class Bean<T> {\n"
#~ " \n"
Modified: doc/trunk/reference/ko-KR/extensions.po
===================================================================
--- doc/trunk/reference/ko-KR/extensions.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/extensions.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -37,61 +37,51 @@
#, 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."
+"of a logger object into any CDI bean. Simply create an injection point of "
+"type <literal>org.slf4j.Logger</literal> and an appropriate logger object "
+"will be injected into any instance of the bean."
msgstr ""
#. Tag: programlisting
-#: extensions.xml:26
+#: extensions.xml:25
#, no-c-format
msgid ""
-"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
-"import org.jboss.weld.log.Log;\n"
+"<![CDATA[import org.slf4j.Logger;\n"
+"import javax.inject.Inject;\n"
"\n"
"public class Checkout {\n"
-" private @Inject @Logger Log log;\n"
+" private @Inject Logger log;\n"
"\n"
" public void invoiceItems() {\n"
" ShoppingCart cart;\n"
" ...\n"
-" log.debug(\"Items invoiced for {0}\", cart);\n"
+" log.debug(\"Items invoiced for {}\", cart);\n"
" }\n"
"}]]>"
msgstr ""
#. Tag: para
-#: extensions.xml:28
+#: 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 "
-"<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."
+"The example shows how objects can be interpolated into a message. If you use "
+"this approach, you do not need to surround a call to the logger with a "
+"condition like <literal>if ( log.isDebugEnabled() )</literal> to avoid "
+"string concatenation."
msgstr ""
#. Tag: para
-#: extensions.xml:41
+#: extensions.xml:34
#, 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 "
+"You can add Weld logging 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:46
+#: extensions.xml:39
#, no-c-format
msgid ""
"If you are using Weld as your JSR-299 implementation, there's no need to "
Modified: doc/trunk/reference/ko-KR/gettingstarted.po
===================================================================
--- doc/trunk/reference/ko-KR/gettingstarted.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/gettingstarted.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: ri\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -165,9 +165,9 @@
#: gettingstarted.xml:83
#, no-c-format
msgid ""
-"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"To deploy the examples to JBoss AS, you'll need <ulink url=\"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="
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink url="
"\"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 "
@@ -201,7 +201,7 @@
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."
+"<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:"
@@ -278,21 +278,24 @@
#, no-c-format
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 "
+"<ulink url=\"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
-#, no-c-format
+#, fuzzy, no-c-format
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>."
msgstr ""
+"url (<ulink url=\"http://localhost:8080/webbeans-translator\">http://"
+"localhost:8080/webbeans-translator</ulink>)을 제공하는 컨텍스트 경로를 설정합"
+"니다. "
#. Tag: para
#: gettingstarted.xml:152
@@ -377,7 +380,7 @@
#, 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/"
+"bored, read the log messages), and visit <ulink url=\"http://localhost:8080/"
"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
"pseudo-translating."
msgstr ""
@@ -413,10 +416,10 @@
#: gettingstarted.xml:221
#, no-c-format
msgid ""
-"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"To deploy the examples to GlassFish, you'll need the final <ulink url="
"\"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/"
+"download a <ulink url=\"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, "
@@ -477,7 +480,7 @@
#: gettingstarted.xml:255
#, no-c-format
msgid ""
-"You deploy applications to GlassFish using the <ulink src=\"http://"
+"You deploy applications to GlassFish using the <ulink url=\"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 "
@@ -495,14 +498,14 @@
#, no-c-format
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 "
+"URL <ulink url=\"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://"
+"start it. You can see the examples running at either <ulink url=\"http://"
"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
-"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"ulink> or <ulink url=\"http://localhost:7070/weld-translator\">http://"
"localhost:7070/weld-translator</ulink>, depending on which example you "
"deployed."
msgstr ""
@@ -547,7 +550,7 @@
#, 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."
+"need to download Tomcat 6.0.18 or later from <ulink url=\"http://tomcat."
"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
msgstr ""
"다음으로 <ulink url=\"http://seamframework.org/Download\">seamframework.org</"
@@ -695,7 +698,7 @@
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>!"
msgstr ""
@@ -882,7 +885,7 @@
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://"
+"URL: <ulink url=\"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 ""
@@ -962,7 +965,7 @@
"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"
+"application at the following local URL: <ulink url=\"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 ""
Modified: doc/trunk/reference/ko-KR/injection.po
===================================================================
--- doc/trunk/reference/ko-KR/injection.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/injection.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: injection\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -567,12 +567,55 @@
#. Tag: title
#: injection.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"The built-in qualifiers <literal>@Default</literal> and <literal>@Any</"
+"literal>"
+msgstr ""
+"심플 Web Beans는 <literal>@PostConstruct</literal> 및 <literal>@PreDestroy</"
+"literal> 콜백 기능만을 지원합니다. "
+
+#. Tag: para
+#: injection.xml:218
#, no-c-format
+msgid ""
+"Whenever a bean or injection point does not explicitly declare a qualifier, "
+"the container assumes the qualifier <literal>@Default</literal>. From time "
+"to time, you'll need to decare an injection point without specifying a "
+"qualifier. There's a qualifier for that too. All beans have the qualifier "
+"<literal>@Any</literal>. Therefore, by explicitly specifying <literal>@Any</"
+"literal> at an injection point, you suppress the default qualifier, without "
+"otherwise restricting the beans that are eligible for injection."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:225
+#, no-c-format
+msgid ""
+"This is especially useful if you want to iterate over all beans with a "
+"certain bean type. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:226
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject \n"
+"void initServices(@Any Instance<Service> services) { \n"
+" for (Service service: services) {\n"
+" service.init();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: injection.xml:232
+#, no-c-format
msgid "Qualifiers with members"
msgstr ""
#. Tag: para
-#: injection.xml:218
+#: injection.xml:234
#, no-c-format
msgid ""
"Java annotations can have members. We can use annotation members to further "
@@ -583,7 +626,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:224
+#: injection.xml:240
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -601,14 +644,14 @@
"}]]>"
#. Tag: para
-#: injection.xml:226
+#: injection.xml:242
#, no-c-format
msgid ""
"Then we select one of the possible member values when appling the qualifier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:230
+#: injection.xml:246
#, fuzzy, no-c-format
msgid ""
"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
@@ -616,17 +659,17 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:232
+#: injection.xml:248
#, 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>."
+"annotating the member <literal>@Nonbinding</literal>."
msgstr ""
"Web Bean 관리자에게 <literal>@NonBinding</literal> 멤버를 어노테이션하여 바인"
"딩 어노테이션 유형 멤버를 무시하라고 말할 수 있습니다. "
#. Tag: programlisting
-#: injection.xml:237
+#: injection.xml:253
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -634,7 +677,7 @@
"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
"public @interface PayBy {\n"
" PaymentMethod value();\n"
-" @NonBinding String comment() default \"\";\n"
+" @Nonbinding String comment() default \"\";\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -645,19 +688,19 @@
"}]]>"
#. Tag: title
-#: injection.xml:242
+#: injection.xml:258
#, no-c-format
msgid "Multiple qualifiers"
msgstr ""
#. Tag: para
-#: injection.xml:244
+#: injection.xml:260
#, fuzzy, no-c-format
msgid "An injection point may specify multiple qualifiers:"
msgstr "삽입 지점은 여러 바인딩 어노테이션을 지정할 수 도 있습니다: "
#. Tag: programlisting
-#: injection.xml:248
+#: injection.xml:264
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
@@ -666,7 +709,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:250
+#: injection.xml:266
#, fuzzy, no-c-format
msgid ""
"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
@@ -676,7 +719,7 @@
"입될 수 있습니다. "
#. Tag: programlisting
-#: injection.xml:255
+#: injection.xml:271
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Synchronous @Reliable\n"
@@ -691,13 +734,13 @@
"}]]>"
#. Tag: title
-#: injection.xml:260
+#: injection.xml:276
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: injection.xml:262
+#: injection.xml:278
#, no-c-format
msgid ""
"Alternatives are beans whose implementation is specific to a particular "
@@ -707,7 +750,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:266
+#: injection.xml:282
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
@@ -721,7 +764,7 @@
"}]]>"
#. Tag: para
-#: injection.xml:268
+#: injection.xml:284
#, no-c-format
msgid ""
"By default, <literal>@Alternative</literal> beans are disabled. We need to "
@@ -731,7 +774,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:274
+#: injection.xml:290
#, no-c-format
msgid ""
"<![CDATA[<beans\n"
@@ -747,7 +790,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:276
+#: injection.xml:292
#, no-c-format
msgid ""
"When an ambiguous dependency exists at an injection point, the container "
@@ -757,13 +800,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:285
+#: injection.xml:301
#, fuzzy, no-c-format
msgid "Fixing unsatisfied and ambiguous dependencies"
msgstr "불만족스러운 의존성 수정 "
#. Tag: para
-#: injection.xml:287
+#: injection.xml:303
#, fuzzy, no-c-format
msgid ""
"The typesafe resolution algorithm fails when, after considering the "
@@ -778,7 +821,7 @@
"우 타입 안정적 해상도 알고리즘은 실패하게 됩니다. "
#. Tag: para
-#: injection.xml:294
+#: injection.xml:310
#, no-c-format
msgid ""
"During the course of your development, you're going to encounter this "
@@ -786,13 +829,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:298
+#: injection.xml:314
#, no-c-format
msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:304
+#: injection.xml:320
#, no-c-format
msgid ""
"create a bean which implements the bean type and has all the qualifier types "
@@ -800,7 +843,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:309
+#: injection.xml:325
#, no-c-format
msgid ""
"make sure that the bean you already have is in the classpath of the module "
@@ -808,7 +851,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:314
+#: injection.xml:330
#, no-c-format
msgid ""
"explicitly enable an <literal>@Alternative</literal> bean that implements "
@@ -817,13 +860,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:321
+#: injection.xml:337
#, no-c-format
msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:327
+#: injection.xml:343
#, no-c-format
msgid ""
"introduce a qualifier to distinguish between the two implementations of the "
@@ -831,14 +874,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:332
+#: injection.xml:348
#, no-c-format
msgid ""
"disable one of the beans by annotating it <literal>@Alternative</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:337
+#: injection.xml:353
#, no-c-format
msgid ""
"move one of the implementations to a module that is not in the classpath of "
@@ -846,7 +889,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:343
+#: injection.xml:359
#, no-c-format
msgid ""
"disable one of two <literal>@Alternative</literal> beans that are trying to "
@@ -854,10 +897,10 @@
msgstr ""
#. Tag: para
-#: injection.xml:350
+#: injection.xml:366
#, no-c-format
msgid ""
-"See <ulink src=\"http://sfwk.org/Documentation/"
+"See <ulink url=\"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 "
@@ -865,13 +908,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:358
+#: injection.xml:374
#, no-c-format
msgid "Just remember: \"There can be only one.\""
msgstr ""
#. Tag: para
-#: injection.xml:361
+#: injection.xml:377
#, no-c-format
msgid ""
"On the other hand, if you really do have an optional or multivalued "
@@ -880,7 +923,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:366
+#: injection.xml:382
#, fuzzy, no-c-format
msgid ""
"Now there's one more issue you need to be aware of when using the dependency "
@@ -890,13 +933,13 @@
"다. "
#. Tag: title
-#: injection.xml:373
+#: injection.xml:389
#, no-c-format
msgid "Client proxies"
msgstr "클라이언트 프록시 "
#. Tag: para
-#: injection.xml:375
+#: injection.xml:391
#, fuzzy, no-c-format
msgid ""
"Clients of an injected bean do not usually hold a direct reference to a bean "
@@ -907,7 +950,7 @@
"습니다. "
#. Tag: para
-#: injection.xml:380
+#: injection.xml:396
#, fuzzy, no-c-format
msgid ""
"Imagine that a bean bound to the application scope held a direct reference "
@@ -921,7 +964,7 @@
"딩된 Web Bean의 다른 인스턴스를 확인해야 합니다! "
#. Tag: para
-#: injection.xml:386
+#: injection.xml:402
#, fuzzy, no-c-format
msgid ""
"Now imagine that a bean bound to the session scope holds a direct reference "
@@ -938,7 +981,7 @@
"나열되어서는 안됩니다! "
#. Tag: para
-#: injection.xml:393
+#: injection.xml:409
#, fuzzy, no-c-format
msgid ""
"Therefore, unless a bean has the default scope <literal>@Dependent</"
@@ -959,7 +1002,7 @@
"로 바운딩되게 합니다. "
#. Tag: para
-#: injection.xml:401
+#: injection.xml:417
#, fuzzy, no-c-format
msgid ""
"Unfortunately, due to limitations of the Java language, some Java types "
@@ -973,20 +1016,20 @@
"<literal>UnproxyableDependencyException</literal>을 던지게 됩니다. "
#. Tag: para
-#: injection.xml:407
+#: injection.xml:423
#, fuzzy, no-c-format
msgid "The following Java types cannot be proxied by the container:"
msgstr "다음과 같은 Java 유형은 Web Bean 관리자에 의해 프록시될 수 없습니다: "
#. Tag: para
-#: injection.xml:411
+#: injection.xml:427
#, fuzzy, no-c-format
msgid ""
"classes which don't have a non-private constructor with no parameters, and"
msgstr "매개 변수 없는 비전용 생성자를 갖지 않는 클래스, "
#. Tag: para
-#: injection.xml:414
+#: injection.xml:430
#, no-c-format
msgid ""
"classes which are declared <literal>final</literal> or have a "
@@ -996,26 +1039,52 @@
"방식을 갖는 클래스, "
#. Tag: para
-#: injection.xml:419
+#: injection.xml:435
#, no-c-format
msgid "arrays and primitive types."
msgstr "배열 및 기본 유형 "
#. Tag: para
-#: injection.xml:423
-#, fuzzy, no-c-format
+#: injection.xml:439
+#, 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 "
+"It's usually very easy to fix an unproxyable dependency problem. If an "
+"injection point of type <literal>X</literal> results in an unproxyable "
+"dependency, simply:"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:446
+#, no-c-format
+msgid "add a constructor with no parameters to <literal>X</literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:451
+#, no-c-format
+msgid ""
+"change the type of the injection point to <literal>Instance<X></"
+"literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:456
+#, no-c-format
+msgid ""
+"introduce an interface <literal>Y</literal>, implemented by the injected "
+"bean, and change the type of the injection point to <literal>Y</literal>, or"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:462
+#, no-c-format
+msgid ""
+"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:430
+#: injection.xml:469
#, no-c-format
msgid ""
"A future release of Weld will likely support a non-standard workaround for "
@@ -1023,7 +1092,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:437
+#: injection.xml:476
#, no-c-format
msgid ""
"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
@@ -1031,7 +1100,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:442
+#: injection.xml:481
#, no-c-format
msgid ""
"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
@@ -1039,19 +1108,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:448
+#: injection.xml:487
#, no-c-format
msgid "But we didn't get around to implementing this yet."
msgstr ""
#. Tag: title
-#: injection.xml:457
+#: injection.xml:496
#, fuzzy, no-c-format
msgid "Obtaining a contextual instance by programmatic lookup"
msgstr "프로그램적 lookup에 의해 Web Bean 획득 "
#. Tag: para
-#: injection.xml:459
+#: injection.xml:498
#, no-c-format
msgid ""
"In certain situations, injection is not the most convenient way to obtain a "
@@ -1059,13 +1128,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:466
+#: injection.xml:505
#, no-c-format
msgid "the bean type or qualifiers vary dynamically at runtime, or"
msgstr ""
#. Tag: para
-#: injection.xml:471
+#: injection.xml:510
#, no-c-format
msgid ""
"depending upon the deployment, there may be no bean which satisfies the type "
@@ -1073,13 +1142,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:476
+#: injection.xml:515
#, no-c-format
msgid "we would like to iterate over all beans of a certain type."
msgstr ""
#. Tag: para
-#: injection.xml:482
+#: injection.xml:521
#, fuzzy, no-c-format
msgid ""
"In these situations, the application may obtain an instance of the interface "
@@ -1089,13 +1158,13 @@
"를 획득할 수 있습니다: "
#. Tag: programlisting
-#: injection.xml:487
+#: injection.xml:526
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:489
+#: injection.xml:528
#, fuzzy, no-c-format
msgid ""
"The <literal>get()</literal> method of <literal>Instance</literal> produces "
@@ -1104,25 +1173,25 @@
"테스트 용 <literal>@Mock</literal> 및 <literal>@Staging</literal> 배치 유형 "
#. Tag: programlisting
-#: injection.xml:493
+#: injection.xml:532
#, fuzzy, no-c-format
msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:495
+#: injection.xml:534
#, no-c-format
msgid "Qualifiers can be specified in one of two ways:"
msgstr ""
#. Tag: para
-#: injection.xml:501
+#: injection.xml:540
#, no-c-format
msgid "by annotating the <literal>Instance</literal> injection point, or"
msgstr ""
#. Tag: para
-#: injection.xml:504
+#: injection.xml:543
#, fuzzy, no-c-format
msgid ""
"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
@@ -1132,13 +1201,13 @@
"literal> 콜백 기능만을 지원합니다. "
#. Tag: para
-#: injection.xml:508
+#: injection.xml:547
#, no-c-format
msgid "Specifying the qualifiers at the injection point is much, much easier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:512
+#: injection.xml:551
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
@@ -1147,7 +1216,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:514
+#: injection.xml:553
#, no-c-format
msgid ""
"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
@@ -1155,7 +1224,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:519
+#: injection.xml:558
#, no-c-format
msgid ""
"Alternatively, we can specify the qualifier dynamically. First, we add the "
@@ -1164,14 +1233,14 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:524
+#: injection.xml:563
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:526
+#: injection.xml:565
#, no-c-format
msgid ""
"Next, we need to obtain an instance of our qualifier type. Since annotatons "
@@ -1182,7 +1251,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:533
+#: injection.xml:572
#, fuzzy, no-c-format
msgid ""
"<![CDATA[abstract class AsynchronousQualifier\n"
@@ -1193,13 +1262,13 @@
" implements CreditCard {}]]>"
#. Tag: para
-#: injection.xml:535
+#: injection.xml:574
#, no-c-format
msgid "In some cases, we can use an anonymous class:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:539
+#: injection.xml:578
#, fuzzy, no-c-format
msgid ""
"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
@@ -1211,14 +1280,14 @@
"AnnotationLiteral<CreditCard>(){});]]>"
#. Tag: para
-#: injection.xml:542
+#: injection.xml:581
#, no-c-format
msgid ""
"We can't use an anonymous class to implement a qualifier type with members."
msgstr ""
#. Tag: para
-#: injection.xml:547
+#: injection.xml:586
#, no-c-format
msgid ""
"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
@@ -1226,7 +1295,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:551
+#: injection.xml:590
#, no-c-format
msgid ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
@@ -1236,13 +1305,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:556
+#: injection.xml:595
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
msgstr "<literal>InjectionPoint</literal> 객체 "
#. Tag: para
-#: injection.xml:558
+#: injection.xml:597
#, fuzzy, no-c-format
msgid ""
"There are certain kinds of dependent objects (beans with scope "
@@ -1255,7 +1324,7 @@
"입 지점에 관해 알아야 합니다. 예: "
#. Tag: para
-#: injection.xml:564
+#: injection.xml:603
#, no-c-format
msgid ""
"The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1265,7 +1334,7 @@
"합니다. "
#. Tag: para
-#: injection.xml:568
+#: injection.xml:607
#, no-c-format
msgid ""
"Injection of a HTTP parameter or header value depends upon what parameter or "
@@ -1275,7 +1344,7 @@
"을 지정하였는가에 의존합니다. "
#. Tag: para
-#: injection.xml:572
+#: injection.xml:611
#, no-c-format
msgid ""
"Injection of the result of an EL expression evaluation depends upon the "
@@ -1285,7 +1354,7 @@
"현식에 의존합니다. "
#. Tag: para
-#: injection.xml:577
+#: injection.xml:616
#, fuzzy, no-c-format
msgid ""
"A bean with scope <literal>@Dependent</literal> may inject an instance of "
@@ -1297,7 +1366,7 @@
"된 메타데이트를 액세스합니다. "
#. Tag: para
-#: injection.xml:581
+#: injection.xml:620
#, no-c-format
msgid ""
"Let's look at an example. The following code is verbose, and vulnerable to "
@@ -1307,13 +1376,13 @@
"장황합니다: "
#. Tag: programlisting
-#: injection.xml:584
+#: injection.xml:623
#, 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:586
+#: injection.xml:625
#, no-c-format
msgid ""
"This clever little producer method lets you inject a JDK <literal>Logger</"
@@ -1323,7 +1392,7 @@
"<literal>Logger</literal>를 삽입하게 합니다: "
#. Tag: programlisting
-#: injection.xml:589
+#: injection.xml:628
#, no-c-format
msgid ""
"<![CDATA[class LogFactory {\n"
@@ -1345,19 +1414,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:591
+#: injection.xml:630
#, no-c-format
msgid "We can now write:"
msgstr "이제 다음을 작성할 수 있습니다: "
#. Tag: programlisting
-#: injection.xml:593
+#: injection.xml:632
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Logger log;]]>"
msgstr "<![CDATA[@Current Logger log;]]>"
#. Tag: para
-#: injection.xml:595
+#: injection.xml:634
#, fuzzy, no-c-format
msgid ""
"Not convinced? Then here's a second example. To inject HTTP parameters, we "
@@ -1367,14 +1436,14 @@
"수를 삽입하려면, 바인딩 유형을 정의해야 합니다: "
#. Tag: programlisting
-#: injection.xml:598
-#, no-c-format
+#: injection.xml:637
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@BindingType\n"
"@Retention(RUNTIME)\n"
"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
"public @interface HttpParam {\n"
-" @NonBinding public String value();\n"
+" @Nonbinding public String value();\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -1385,13 +1454,13 @@
"}]]>"
#. Tag: para
-#: injection.xml:600
+#: injection.xml:639
#, fuzzy, no-c-format
msgid "We would use this qualifier type at injection points as follows:"
msgstr "다음과 같이 삽입 지점에서 이러한 바인딩 유형을 사용할 수 있습니다: "
#. Tag: programlisting
-#: injection.xml:602
+#: injection.xml:641
#, no-c-format
msgid ""
"<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1401,21 +1470,21 @@
"@HttpParam(\"password\") String password;]]>"
#. Tag: para
-#: injection.xml:604
+#: injection.xml:643
#, no-c-format
msgid "The following producer method does the work:"
msgstr "다음의 생산자 방식은 다음과 같이 작업합니다: "
#. Tag: programlisting
-#: injection.xml:606
-#, no-c-format
+#: injection.xml:645
+#, fuzzy, 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.getAnnotated().getAnnotation(HttpParam."
+"class).value());\n"
" }\n"
"\n"
"}]]>"
@@ -1431,19 +1500,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:608
+#: injection.xml:647
#, 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>)"
+"<literal>@Nonbinding.</literal>)"
msgstr ""
"<literal>HttpParam</literal> 어노테이션의 <literal>value()</literal> 멤버는"
"<literal>@NonBinding.</literal>을 어노테이션하므로 Web Bean 관리자에 의해 무"
"시됨에 유의하시기 바랍니다. "
#. Tag: para
-#: injection.xml:611
+#: injection.xml:650
#, fuzzy, no-c-format
msgid ""
"The container provides a built-in bean that implements the "
@@ -1453,15 +1522,17 @@
"장된 Web Bean을 제공합니다: "
#. Tag: programlisting
-#: injection.xml:614
-#, no-c-format
+#: injection.xml:653
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface InjectionPoint { \n"
-" public Object getInstance(); \n"
-" public Bean<?> getBean(); \n"
-" public Member getMember(): \n"
-" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
-" public Set<T extends Annotation> getAnnotations(); \n"
+" public Type getType();\n"
+" public Set<Annotation> getQualifiers();\n"
+" public Bean<?> getBean();\n"
+" public Member getMember();\n"
+" public Annotated getAnnotated();\n"
+" public boolean isDelegate();\n"
+" public boolean isTransient();\n"
"}]]>"
msgstr ""
"<![CDATA[public interface InjectionPoint { \n"
@@ -1472,7 +1543,19 @@
" public Set<T extends Annotation> getAnnotations(); \n"
"}]]>"
+#, fuzzy
#~ 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>로 변경합"
+#~ "니다. "
+
+#~ msgid ""
#~ "Web Beans supports three primary mechanisms for dependency injection:"
#~ msgstr "Web Beans는 의존성 삽입에 대한 세 가지 주요 메카니즘을 지원합니다: "
Modified: doc/trunk/reference/ko-KR/interceptors.po
===================================================================
--- doc/trunk/reference/ko-KR/interceptors.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/interceptors.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: interceptors\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -477,7 +477,7 @@
"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:"
+"We can use the <literal>@Nonbinding</literal> annotation:"
msgstr ""
"한 개의 인터샙터만이 있고 인터셉터를 바인딩할 때 <literal>requiresNew</"
"literal> 값을 무시하기 위한 관리자를 원할 경우에는 <literal>@NonBinding</"
@@ -491,7 +491,7 @@
"@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"
Modified: doc/trunk/reference/ko-KR/next.po
===================================================================
--- doc/trunk/reference/ko-KR/next.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/next.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: next\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -30,10 +30,10 @@
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 "
+"remains the authority for information on CDI. The spec is 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-"
+"is available on the <ulink url=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
"299 page</ulink> at the JCP website."
msgstr ""
@@ -41,9 +41,9 @@
#: next.xml:14
#, fuzzy, no-c-format
msgid ""
-"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"The CDI reference implementation, Weld, is being developed at the <ulink url="
"\"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."
+"team and the CDI spec lead blog at <ulink url=\"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 "
@@ -58,9 +58,9 @@
#: next.xml:22
#, no-c-format
msgid ""
-"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"We encourage you to follow the <ulink url=\"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 url=\"http://seamframework.org/Weld/Development\">development</"
"ulink>. If you are reading this guide, you likely have something to offer."
msgstr ""
@@ -77,7 +77,7 @@
#: next.xml:35
#, no-c-format
msgid ""
-"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"Checkout source from <ulink url=\"http://anonsvn.jboss.org/repos/weld/doc/"
"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
"ulink> using SVN"
msgstr ""
@@ -94,8 +94,9 @@
#: 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)."
+"Edit the <literal>pom.xml</literal> file in the root of the checkout and "
+"remove the \"<literal>-SNAPSHOT</literal>\" from the version element (so you "
+"don't have to build other Weld modules)."
msgstr ""
#. Tag: para
@@ -123,7 +124,8 @@
#, 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"
+"You can find the HTML version in <literal>target/docbook/publish/en-US/html</"
+"literal>."
msgstr ""
#. Tag: para
Modified: doc/trunk/reference/ko-KR/part1.po
===================================================================
--- doc/trunk/reference/ko-KR/part1.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/part1.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: part1\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -26,7 +26,7 @@
#: part1.xml:14
#, fuzzy, no-c-format
msgid ""
-"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"The <ulink url=\"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 "
@@ -352,7 +352,7 @@
#: part1.xml:197
#, no-c-format
msgid ""
-"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"Finally, CDI is a <ulink url=\"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/ko-KR/producermethods.po
===================================================================
--- doc/trunk/reference/ko-KR/producermethods.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/producermethods.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: producermethods\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -229,14 +229,27 @@
"션 컨텍스트로 바운드됩니다. 동일한 세션에서 생산자 방식은 다시 호출되지 않습"
"니다. "
+#. Tag: para
+#: producermethods.xml:95
+#, no-c-format
+msgid ""
+"A producer method does <emphasis>not</emphasis> inherit the scope of the "
+"bean that declares the method. There are two different beans here: the "
+"producer method, and the bean which declares it. The scope of the producer "
+"method determines how often the method will be called, and the lifecycle of "
+"the objects returned by the method. The scope of the bean that declares the "
+"producer method determines the lifecycle of the object upon which the "
+"producer method is invoked."
+msgstr ""
+
#. Tag: title
-#: producermethods.xml:97
+#: producermethods.xml:107
#, no-c-format
msgid "Injection into producer methods"
msgstr "생산자 방식으로 삽입 "
#. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:109
#, no-c-format
msgid ""
"There's one potential problem with the code above. The implementations of "
@@ -251,7 +264,7 @@
"스화된 객체는 의존성 삽입의 장점을 취할 수 없으며 인터셉터를 갖지 못합니다. "
#. Tag: para
-#: producermethods.xml:106
+#: producermethods.xml:116
#, fuzzy, no-c-format
msgid ""
"If this isn't what we want, we can use dependency injection into the "
@@ -261,7 +274,7 @@
"Bean 인스턴스를 획득할 수 있습니다: "
#. Tag: programlisting
-#: producermethods.xml:111
+#: producermethods.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -289,7 +302,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:123
#, fuzzy, no-c-format
msgid ""
"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
@@ -310,7 +323,7 @@
"랍니다! "
#. Tag: para
-#: producermethods.xml:122
+#: producermethods.xml:132
#, fuzzy, no-c-format
msgid ""
"There's at least three ways we could go about fixing this bug. We could "
@@ -326,7 +339,7 @@
"literal>로 변경하는 것입니다. "
#. Tag: para
-#: producermethods.xml:129
+#: producermethods.xml:139
#, fuzzy, no-c-format
msgid ""
"But a more common solution is to use the special <literal>@New</literal> "
@@ -336,19 +349,19 @@
"을 사용하는 것입니다. "
#. Tag: title
-#: producermethods.xml:134
+#: producermethods.xml:144
#, no-c-format
msgid "Use of <literal>@New</literal> with producer methods"
msgstr "생산자 방식과 함께 <literal>@New</literal> 사용 "
#. Tag: para
-#: producermethods.xml:136
+#: producermethods.xml:146
#, no-c-format
msgid "Consider the following producer method:"
msgstr "다음과 같은 생산자 방식을 고려합니다: "
#. Tag: programlisting
-#: producermethods.xml:138
+#: producermethods.xml:148
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -380,7 +393,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:140
+#: producermethods.xml:150
#, no-c-format
msgid ""
"Then a new <emphasis>dependent</emphasis> instance of "
@@ -397,13 +410,13 @@
"다. "
#. Tag: title
-#: producermethods.xml:150
+#: producermethods.xml:160
#, fuzzy, no-c-format
msgid "Disposer methods"
msgstr "생산자 방식 "
#. Tag: para
-#: producermethods.xml:152
+#: producermethods.xml:162
#, no-c-format
msgid ""
"Some producer methods return objects that require explicit destruction. For "
@@ -411,7 +424,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:157
+#: producermethods.xml:167
#, no-c-format
msgid ""
"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
@@ -420,7 +433,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:159
+#: producermethods.xml:169
#, no-c-format
msgid ""
"Destruction can be performed by a matching <emphasis>disposer method</"
@@ -428,7 +441,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:162
+#: producermethods.xml:172
#, no-c-format
msgid ""
"<![CDATA[void close(@Disposes Connection connection) {\n"
@@ -437,7 +450,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:164
+#: producermethods.xml:174
#, no-c-format
msgid ""
"The disposer method must have at least one parameter, annotated "
Modified: doc/trunk/reference/ko-KR/resources.po
===================================================================
--- doc/trunk/reference/ko-KR/resources.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/resources.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -66,6 +66,45 @@
#: resources.xml:33
#, no-c-format
msgid ""
+"The CDI specification uses the term <emphasis>resource</emphasis> to refer, "
+"generically, to any of the following kinds of object which might be "
+"available in the Java EE component environment:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:38
+#, no-c-format
+msgid ""
+"JDBC <literal>Datasource</literal>s, JMS <literal>Queue</literal>s, "
+"<literal>Topic</literal>s and <literal>ConnectionFactory</literal>s, "
+"JavaMail <literal>Session</literal>s and other transactional resources "
+"including JCA connectors,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"JPA <literal>EntityManager</literal>s and <literal>EntityManagerFactory</"
+"literal>s,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:46
+#, no-c-format
+msgid "remote EJBs, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid "web services"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:53
+#, 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>, "
@@ -73,7 +112,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:37
+#: resources.xml:57
#, no-c-format
msgid ""
"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
@@ -81,7 +120,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:39
+#: resources.xml:59
#, no-c-format
msgid ""
"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
@@ -90,7 +129,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:41
+#: resources.xml:61
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
@@ -98,7 +137,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:43
+#: resources.xml:63
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
@@ -106,7 +145,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:45
+#: resources.xml:65
#, no-c-format
msgid ""
"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
@@ -114,47 +153,69 @@
msgstr ""
#. Tag: para
-#: resources.xml:47
+#: resources.xml:67
#, no-c-format
msgid "The field may be static (but not final)."
msgstr ""
#. Tag: para
-#: resources.xml:49
+#: resources.xml:69
#, no-c-format
+msgid "A resource declaration really contains two pieces of information:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:73
+#, no-c-format
msgid ""
+"the JNDI name, EJB link, persistence unit name, or other metadata needed to "
+"obtain a reference to the resource from the component environment, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:77
+#, no-c-format
+msgid ""
+"the type and qualifiers that we will use to inject the reference into our "
+"beans."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:82
+#, 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</"
+"sense to declare your resources in a class annotated <literal>@Alternative</"
"literal>."
msgstr ""
#. Tag: title
-#: resources.xml:56
+#: resources.xml:90
#, no-c-format
msgid "Typesafe resource injection"
msgstr ""
#. Tag: para
-#: resources.xml:58
+#: resources.xml:92
#, no-c-format
msgid "These resources can now be injected in the usual way."
msgstr ""
#. Tag: programlisting
-#: resources.xml:62
+#: resources.xml:96
#, no-c-format
msgid "<![CDATA[@Inject Catalog catalog;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:63
+#: resources.xml:97
#, no-c-format
msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:64
+#: resources.xml:98
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManager "
@@ -162,7 +223,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:65
+#: resources.xml:99
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
@@ -170,13 +231,13 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:66
+#: resources.xml:100
#, no-c-format
msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
msgstr ""
#. Tag: para
-#: resources.xml:68
+#: resources.xml:102
#, no-c-format
msgid ""
"The bean type and qualifiers of the resource are determined by the producer "
@@ -184,7 +245,7 @@
msgstr ""
#. Tag: para
-#: resources.xml:72
+#: resources.xml:106
#, no-c-format
msgid ""
"It might seem like a pain to have to write these extra producer field "
@@ -196,25 +257,25 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:79
+#: resources.xml:113
#, no-c-format
msgid "@Inject @CustomerDatabase EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:81
+#: resources.xml:115
#, no-c-format
msgid "instead of"
msgstr ""
#. Tag: programlisting
-#: resources.xml:83
+#: resources.xml:117
#, no-c-format
msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:85
+#: resources.xml:119
#, 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/ri-spi.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: ri-spi\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -823,6 +823,19 @@
#. Tag: para
#: ri-spi.xml:497
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.ConversationAwareViewHandler</literal> as a "
+"delegating view handler."
+msgstr ""
+"Web Beans를 Servlet 환경으로 통합할 경우, Servlet을 사용하는 각각의 Web "
+"Beans 애플리케이션에 대해 자동으로 또는 사용자 설정을 통해 <literal>org."
+"jboss.webbeans.servlet.WebBeansListener</literal>를 Servlet 청취자로 등록해"
+"야 합니다. "
+
+#. Tag: para
+#: ri-spi.xml:502
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -834,7 +847,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:504
+#: ri-spi.xml:509
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -844,7 +857,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:511 ri-spi.xml:557
+#: ri-spi.xml:516 ri-spi.xml:562
#, no-c-format
msgid ""
"There are a number of ways you can obtain the bean manager for the module. "
@@ -854,7 +867,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:518
+#: ri-spi.xml:523
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must register "
@@ -869,19 +882,19 @@
"야 합니다. "
#. Tag: para
-#: ri-spi.xml:526
+#: ri-spi.xml:531
#, no-c-format
msgid "Weld only supports JSF 1.2 and above."
msgstr ""
#. Tag: term
-#: ri-spi.xml:533
+#: ri-spi.xml:538
#, no-c-format
msgid "<term>JSP</term>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:538
+#: ri-spi.xml:543
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must register "
@@ -894,7 +907,7 @@
"야 합니다. "
#. Tag: para
-#: ri-spi.xml:543
+#: ri-spi.xml:548
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -905,7 +918,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:550
+#: ri-spi.xml:555
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -915,13 +928,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:567
+#: ri-spi.xml:572
#, no-c-format
msgid "Session Bean Interceptor"
msgstr "Session Bean 인터셉터 "
#. Tag: para
-#: ri-spi.xml:571
+#: ri-spi.xml:576
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into an EJB environment you must register "
@@ -936,7 +949,7 @@
"으로 또는 사용자 설정을 통해 등록해야 합니다. "
#. Tag: para
-#: ri-spi.xml:578
+#: ri-spi.xml:583
#, no-c-format
msgid ""
"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -944,13 +957,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:586
+#: ri-spi.xml:591
#, fuzzy, no-c-format
msgid "The <literal>weld-core.jar</literal>"
msgstr "<literal>webbeans-ri.jar</literal> "
#. Tag: para
-#: ri-spi.xml:590
+#: ri-spi.xml:595
#, no-c-format
msgid ""
"Weld can reside on an isolated classloader, or on a shared classloader. If "
@@ -962,7 +975,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:596
+#: ri-spi.xml:601
#, no-c-format
msgid ""
"You can provide your own implementation of <literal>Singleton</literal> and "
@@ -971,7 +984,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:601
+#: ri-spi.xml:606
#, no-c-format
msgid ""
"Weld also provides an implementation of Thread Context Classloader per "
@@ -979,13 +992,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:608
+#: ri-spi.xml:613
#, no-c-format
msgid "Binding the manager in JNDI"
msgstr ""
#. Tag: para
-#: ri-spi.xml:612
+#: ri-spi.xml:617
#, no-c-format
msgid ""
"You should bind the bean manager for the bean deployment archive into JNDI "
@@ -996,13 +1009,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:622
+#: ri-spi.xml:627
#, no-c-format
msgid "Performing CDI injection on Java EE component classes"
msgstr ""
#. Tag: para
-#: ri-spi.xml:626
+#: ri-spi.xml:631
#, no-c-format
msgid ""
"The CDI specification requires the container to provide injection into non-"
@@ -1014,7 +1027,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:634
+#: ri-spi.xml:639
#, no-c-format
msgid ""
"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
@@ -1025,7 +1038,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:641
+#: ri-spi.xml:646
#, no-c-format
msgid ""
"To help the integrator, Weld provides <literal>WeldManager."
@@ -1034,7 +1047,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:646
+#: ri-spi.xml:651
#, no-c-format
msgid ""
"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
@@ -1062,7 +1075,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:647
+#: ri-spi.xml:652
#, no-c-format
msgid ""
"The container may intersperse other operations between these calls. Further, "
@@ -1071,7 +1084,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:651
+#: ri-spi.xml:656
#, no-c-format
msgid ""
"When performing injections on EJBs you must use the Weld-defined SPI, "
@@ -1081,7 +1094,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:656
+#: ri-spi.xml:661
#, no-c-format
msgid ""
"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
Modified: doc/trunk/reference/ko-KR/scopescontexts.po
===================================================================
--- doc/trunk/reference/ko-KR/scopescontexts.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/scopescontexts.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: scopescontexts\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -81,18 +81,23 @@
#: 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."
+"JPA entities aren't a great fit for this model. Entities have their whole "
+"own lifecycle and identity model which just doesn't map naturally to the "
+"model used in CDI. Therefore, we recommend against treating entities as CDI "
+"beans. You're certainly going to run into problems if you try to give an "
+"entity a scope other than the default scope <literal>@Dependent</literal>. "
+"The client proxy will get in the way if you try to pass an injected instance "
+"to the JPA <literal>EntityManager</literal>."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:41
+#: scopescontexts.xml:45
#, no-c-format
msgid "Scope types"
msgstr "범위 유형 "
#. Tag: para
-#: scopescontexts.xml:43
+#: scopescontexts.xml:47
#, fuzzy, no-c-format
msgid ""
"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
@@ -102,7 +107,7 @@
"새로운 범위 유형 어노테이션을 생성하여 새로운 범위를 정의할 수 있습니다: "
#. Tag: programlisting
-#: scopescontexts.xml:48
+#: scopescontexts.xml:52
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ScopeType\n"
@@ -116,7 +121,7 @@
"public @interface ClusterScoped {}]]>"
#. Tag: para
-#: scopescontexts.xml:50
+#: scopescontexts.xml:54
#, fuzzy, no-c-format
msgid ""
"Of course, that's the easy part of the job. For this scope type to be "
@@ -132,7 +137,7 @@
"을 목적으로 합니다. "
#. Tag: para
-#: scopescontexts.xml:57
+#: scopescontexts.xml:61
#, fuzzy, no-c-format
msgid ""
"We can apply a scope type annotation to a bean implementation class to "
@@ -142,7 +147,7 @@
"적용할 수 있습니다: "
#. Tag: programlisting
-#: scopescontexts.xml:61
+#: scopescontexts.xml:65
#, no-c-format
msgid ""
"<![CDATA[@ClusterScoped\n"
@@ -152,55 +157,55 @@
"public class SecondLevelCache { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:63
+#: scopescontexts.xml:67
#, fuzzy, no-c-format
msgid "Usually, you'll use one of CDI's built-in scopes."
msgstr "주로, Web Beans의 내장된 범위 중 하나를 사용하게 됩니다. "
#. Tag: title
-#: scopescontexts.xml:68
+#: scopescontexts.xml:72
#, no-c-format
msgid "Built-in scopes"
msgstr "내장된 범위 "
#. Tag: para
-#: scopescontexts.xml:70
+#: scopescontexts.xml:74
#, fuzzy, no-c-format
msgid "CDI defines four built-in scopes:"
msgstr "Web Beans는 네 가지 내장된 범위를 정의합니다: "
#. Tag: literal
-#: scopescontexts.xml:74
+#: scopescontexts.xml:78
#, no-c-format
msgid "@RequestScoped"
msgstr "@RequestScoped"
#. Tag: literal
-#: scopescontexts.xml:77
+#: scopescontexts.xml:81
#, no-c-format
msgid "@SessionScoped"
msgstr "@SessionScoped"
#. Tag: literal
-#: scopescontexts.xml:80
+#: scopescontexts.xml:84
#, no-c-format
msgid "@ApplicationScoped"
msgstr "@ApplicationScoped"
#. Tag: literal
-#: scopescontexts.xml:83
+#: scopescontexts.xml:87
#, no-c-format
msgid "@ConversationScoped"
msgstr "@ConversationScoped"
#. Tag: para
-#: scopescontexts.xml:87
+#: scopescontexts.xml:91
#, fuzzy, no-c-format
msgid "For a web application that uses CDI:"
msgstr "Web Beans를 사용하는 웹 애플리케이션의 경우: "
#. Tag: para
-#: scopescontexts.xml:91
+#: scopescontexts.xml:95
#, no-c-format
msgid ""
"any servlet request has access to active request, session and application "
@@ -208,51 +213,63 @@
msgstr "servlet 요청은 활성 요청, 세션 및 애플리케이션 범위에 액세스합니다 "
#. Tag: para
-#: scopescontexts.xml:96
+#: scopescontexts.xml:100
#, no-c-format
msgid "any JSF request has access to an active conversation scope."
msgstr "JSF 요청은 활성 컨버세이션 범위에 액세스합니다. "
#. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:105
#, no-c-format
msgid ""
-"A CDI extension can support the conversation scope for other frameworks as "
-"well."
+"A CDI extension can implement support for the conversation scope in other "
+"web frameworks."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:108
#, no-c-format
msgid "The request and application scopes are also active:"
msgstr "요청 및 애플리케이션 범위도 활성화되어 있습니다: "
#. Tag: para
-#: scopescontexts.xml:108
+#: scopescontexts.xml:112
#, no-c-format
msgid "during invocations of EJB remote methods,"
msgstr "EJB 원격 방식의 호출시 "
#. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:115
+#, fuzzy, no-c-format
+msgid "during invocations of EJB asynchronous methods,"
+msgstr "EJB 원격 방식의 호출시 "
+
+#. Tag: para
+#: scopescontexts.xml:118
#, no-c-format
msgid "during EJB timeouts,"
msgstr "EJB 시간 초과시 "
#. Tag: para
-#: scopescontexts.xml:114
-#, no-c-format
-msgid "during message delivery to a message-driven bean, and"
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
+msgid "during message delivery to a message-driven bean,"
msgstr "메세지 구동 빈에 메세지 전달시 "
#. Tag: para
-#: scopescontexts.xml:117
+#: scopescontexts.xml:124
+#, fuzzy, no-c-format
+msgid "during message delivery to a <literal>MessageListener</literal>, and"
+msgstr "메세지 구동 빈에 메세지 전달시 "
+
+#. Tag: para
+#: scopescontexts.xml:127
#, no-c-format
msgid "during web service invocations."
msgstr "웹 서비스 호출시 "
#. Tag: para
-#: scopescontexts.xml:121
+#: scopescontexts.xml:131
#, fuzzy, no-c-format
msgid ""
"If the application tries to invoke a bean with a scope that does not have an "
@@ -264,9 +281,18 @@
"에 의해 넘기게 됩니다. "
#. Tag: para
-#: scopescontexts.xml:126
+#: scopescontexts.xml:136
#, no-c-format
msgid ""
+"Managed beans with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal> must be serializable, since the "
+"container passivates the HTTP session from time to time."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:141
+#, no-c-format
+msgid ""
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
@@ -275,13 +301,13 @@
"루지 않겠습니다. 하지만 이 중 하나의 범위 새로운 것입니다. "
#. Tag: title
-#: scopescontexts.xml:134
+#: scopescontexts.xml:149
#, no-c-format
msgid "The conversation scope"
msgstr "컨버세이션 범위 "
#. Tag: para
-#: scopescontexts.xml:136
+#: scopescontexts.xml:151
#, fuzzy, no-c-format
msgid ""
"The conversation scope is a bit like the traditional session scope in that "
@@ -294,13 +320,13 @@
"다르게 컨버세이션 범위는 다음과 같은 사항을 갖습니다: "
#. Tag: para
-#: scopescontexts.xml:144
+#: scopescontexts.xml:159
#, no-c-format
msgid "is demarcated explicitly by the application, and"
msgstr "애플리케이션에 의해 명시적으로 경계를 정합니다 "
#. Tag: para
-#: scopescontexts.xml:147
+#: scopescontexts.xml:162
#, no-c-format
msgid ""
"holds state associated with a particular web browser tab in a JSF "
@@ -309,7 +335,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:154
+#: scopescontexts.xml:169
#, fuzzy, no-c-format
msgid ""
"A conversation represents a task—a unit of work from the point of view "
@@ -323,7 +349,7 @@
"니다. "
#. Tag: para
-#: scopescontexts.xml:160
+#: scopescontexts.xml:175
#, fuzzy, no-c-format
msgid ""
"The conversation context is active during any JSF request. Most "
@@ -337,13 +363,13 @@
"다. "
#. Tag: title
-#: scopescontexts.xml:167
+#: scopescontexts.xml:182
#, no-c-format
msgid "Conversation demarcation"
msgstr "컨버세이션 경계 설정 "
#. Tag: para
-#: scopescontexts.xml:169
+#: scopescontexts.xml:184
#, fuzzy, no-c-format
msgid ""
"CDI provides a built-in bean for controlling the lifecycle of conversations "
@@ -353,13 +379,13 @@
"된 Web Bean을 제공합니다. 이러한 Web Bean은 삽입에 의해 획득될 수 있습니다: "
#. Tag: programlisting
-#: scopescontexts.xml:174
+#: scopescontexts.xml:189
#, fuzzy, no-c-format
msgid "@Inject Conversation conversation;"
msgstr "@Current Conversation conversation;"
#. Tag: para
-#: scopescontexts.xml:176
+#: scopescontexts.xml:191
#, no-c-format
msgid ""
"To promote the conversation associated with the current request to a long-"
@@ -374,7 +400,7 @@
"<literal>end()</literal>를 호출합니다. "
#. Tag: para
-#: scopescontexts.xml:182
+#: scopescontexts.xml:197
#, fuzzy, no-c-format
msgid ""
"In the following example, a conversation-scoped bean controls the "
@@ -383,7 +409,7 @@
"다음의 예에서, 컨버세이션 범위 Web Bean은 관련 된 컨버세이션을 제어합니다: "
#. Tag: programlisting
-#: scopescontexts.xml:186
+#: scopescontexts.xml:201
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ConversationScoped @Stateful\n"
@@ -447,7 +473,7 @@
"}"
#. Tag: para
-#: scopescontexts.xml:188
+#: scopescontexts.xml:203
#, fuzzy, no-c-format
msgid ""
"This bean is able to control its own lifecycle through use of the "
@@ -459,13 +485,13 @@
"기를 갖습니다. "
#. Tag: title
-#: scopescontexts.xml:196
+#: scopescontexts.xml:211
#, no-c-format
msgid "Conversation propagation"
msgstr "컨버세이션 보급 "
#. Tag: para
-#: scopescontexts.xml:198
+#: scopescontexts.xml:213
#, fuzzy, no-c-format
msgid ""
"The conversation context automatically propagates with any JSF faces request "
@@ -477,7 +503,7 @@
"으로 보급되지 않습니다. "
#. Tag: para
-#: scopescontexts.xml:203
+#: scopescontexts.xml:218
#, fuzzy, no-c-format
msgid ""
"We can force the conversation to propagate with a non-faces request by "
@@ -494,13 +520,13 @@
"<literal>conversation</literal>이라는 Web Beans 이름을 갖습니다. "
#. Tag: para
-#: scopescontexts.xml:210
+#: scopescontexts.xml:225
#, no-c-format
msgid "Therefore, the following link propagates the conversation:"
msgstr "따라서, 다음과 같은 링크가 컨버세이션을 보급합니다: "
#. Tag: programlisting
-#: scopescontexts.xml:214
+#: scopescontexts.xml:229
#, no-c-format
msgid ""
"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -510,13 +536,13 @@
">"
#. Tag: para
-#: scopescontexts.xml:216
+#: scopescontexts.xml:231
#, no-c-format
msgid "It's probably better to use one of the link components in JSF 2:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:220
+#: scopescontexts.xml:235
#, no-c-format
msgid ""
"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
@@ -525,7 +551,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:223
+#: scopescontexts.xml:238
#, fuzzy, no-c-format
msgid ""
"The conversation context propagates across redirects, making it very easy to "
@@ -540,13 +566,13 @@
"추가합니다. "
#. Tag: title
-#: scopescontexts.xml:233
+#: scopescontexts.xml:248
#, no-c-format
msgid "Conversation timeout"
msgstr "컨버세이션 시간 초과 "
#. Tag: para
-#: scopescontexts.xml:235
+#: scopescontexts.xml:250
#, fuzzy, no-c-format
msgid ""
"The container is permitted to destroy a conversation and all state held in "
@@ -562,7 +588,7 @@
"습니다. 시간 초과는 컨버세이션이 삭제된 후 비활성화 기간을 말합니다. "
#. Tag: para
-#: scopescontexts.xml:242
+#: scopescontexts.xml:257
#, fuzzy, no-c-format
msgid ""
"The <literal>Conversation</literal> object provides a method to set the "
@@ -574,31 +600,127 @@
"습니다. "
#. Tag: programlisting
-#: scopescontexts.xml:247
+#: scopescontexts.xml:262
#, no-c-format
msgid "conversation.setTimeout(timeoutInMillis);"
msgstr "conversation.setTimeout(timeoutInMillis);"
#. Tag: title
-#: scopescontexts.xml:254
+#: scopescontexts.xml:269
+#, fuzzy, no-c-format
+msgid "The singleton pseudo-scope"
+msgstr "dependent pseudo-scope "
+
+#. Tag: para
+#: scopescontexts.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"In addition to the four built-in scopes, CDI also supports two "
+"<emphasis>pseudo-scopes</emphasis>. The first is the <emphasis>singleton "
+"pseudo-scope</emphasis>, which we specify using the annotation "
+"<literal>@Singleton</literal>."
+msgstr ""
+"네 가지 내장된 범위에 더하여, Web Beans는 <emphasis>dependent pseudo-scope</"
+"emphasis>라는 기능을 특징으로 합니다. 이는 범위 유형을 명시하지 않는 Web Bean"
+"에 대한 기본값 범위입니다. "
+
+#. Tag: para
+#: scopescontexts.xml:277
#, no-c-format
+msgid ""
+"Unlike the other scopes, which belong to the package <literal>javax."
+"enterprise.context</literal>, the <literal>@Singleton</literal> annotation "
+"is defined in the package <literal>javax.inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:283
+#, no-c-format
+msgid ""
+"You can guess what \"singleton\" means here. It means a bean that is "
+"instantiated once. Unfortunately, there's a little problem with this pseudo-"
+"scope. Beans with scope <literal>@Singleton</literal> don't have a proxy "
+"object. Clients hold a direct reference to the singleton instance. So we "
+"need to consider the case of a client that can be serialized, for example, "
+"any bean with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal>, any dependent object of a bean with "
+"scope <literal>@SessionScoped</literal> or <literal>@ConversationScoped</"
+"literal>, or any stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:292
+#, no-c-format
+msgid ""
+"Now, if the singleton instance is a simple, immutable, serializable object "
+"like a string, a number or a date, we probably don't mind too much if it "
+"gets duplicated via serialization. However, that makes it no stop being a "
+"true singleton, and we may as well have just declared it with the default "
+"scope."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:298
+#, no-c-format
+msgid ""
+"There are several ways to ensure that the singleton bean remains a singleton "
+"when its client gets serialized:"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:302
+#, no-c-format
+msgid ""
+"have the singleton bean implement <literal>writeResolve()</literal> and "
+"<literal>readReplace()</literal> (as defined by the Java serialization "
+"specification),"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:308
+#, no-c-format
+msgid ""
+"make sure the client keeps only a transient reference to the singleton bean, "
+"or"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:313
+#, no-c-format
+msgid ""
+"give the client a reference of type <literal>Instance<X></literal> "
+"where <literal>X</literal> is the bean type of the singleton bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:320
+#, no-c-format
+msgid ""
+"A fourth, better solution is to instead use <literal>@ApplicationScoped</"
+"literal>, allowing the container to proxy the bean, and take care of "
+"serialization problems automatically."
+msgstr ""
+
+#. Tag: title
+#: scopescontexts.xml:326
+#, no-c-format
msgid "The dependent pseudo-scope"
msgstr "dependent pseudo-scope "
#. Tag: para
-#: scopescontexts.xml:256
+#: scopescontexts.xml:328
#, fuzzy, no-c-format
msgid ""
-"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 "
-"bean which does not explicitly declare a scope type."
+"Finally, CDI features the so-called <emphasis>dependent pseudo-scope</"
+"emphasis>. This is the default scope for a bean which does not explicitly "
+"declare a scope type."
msgstr ""
"네 가지 내장된 범위에 더하여, Web Beans는 <emphasis>dependent pseudo-scope</"
"emphasis>라는 기능을 특징으로 합니다. 이는 범위 유형을 명시하지 않는 Web Bean"
"에 대한 기본값 범위입니다. "
#. Tag: para
-#: scopescontexts.xml:261
+#: scopescontexts.xml:333
#, fuzzy, no-c-format
msgid ""
"For example, this bean has the scope type <literal>@Dependent</literal>:"
@@ -606,24 +728,56 @@
"예를 들어, Web Bean에는 <literal>@Dependent</literal> 범위 유형이 있습니다: "
#. Tag: programlisting
-#: scopescontexts.xml:265
+#: scopescontexts.xml:337
#, no-c-format
msgid "<![CDATA[public class Calculator { ... }]]>"
msgstr "<![CDATA[public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:267
+#: scopescontexts.xml:339
#, no-c-format
msgid ""
-"An instances of a dependent bean is never shared between different clients "
-"or different injection points. It is strictly a <emphasis>dependent object</"
+"An instance 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:273
+#: scopescontexts.xml:345
+#, no-c-format
+msgid ""
+"If a Unified EL expression refers to a dependent bean by EL name, an "
+"instance of the bean is instantiated every time the expression is evaluated. "
+"The instance is not reused during any other expression evaluation."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:351
+#, no-c-format
+msgid ""
+"If you need to access a bean directly by EL name in a JSF page, you probably "
+"need to give it a scope other than <literal>@Dependent</literal>. Otherwise, "
+"any value that gets set to the bean by a JSF input will be lost immediately. "
+"That's why CDI features the <literal>@Model</literal> stereotype; it lets "
+"you give a bean a name, and set its scope to <literal>@RequestScoped</"
+"literal> in one stroke. If you need to access a bean that really "
+"<emphasis>has</emphasis> to have the scope <literal>@Dependent</literal> "
+"from a JSF page, inject it into a different bean, and expose it to EL via a "
+"getter method."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:361
+#, no-c-format
+msgid ""
+"Beans with scope <literal>@Dependent</literal> don't need a proxy object. "
+"The client holds a direct reference to its instance."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:366
#, fuzzy, no-c-format
msgid ""
"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
@@ -634,13 +788,13 @@
"있게 합니다. "
#. Tag: title
-#: scopescontexts.xml:281
+#: scopescontexts.xml:374
#, fuzzy, no-c-format
msgid "The <literal>@New</literal> qualifier"
msgstr "<literal>@New</literal> 어노테이션 "
#. Tag: para
-#: scopescontexts.xml:283
+#: scopescontexts.xml:376
#, no-c-format
msgid ""
"The built-in qualifier <literal>@New</literal> allows us to obtain a "
@@ -648,13 +802,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:287
+#: scopescontexts.xml:380
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
msgstr "<![CDATA[@New Calculator calculator;]]>"
#. Tag: para
-#: scopescontexts.xml:289
+#: scopescontexts.xml:382
#, no-c-format
msgid ""
"The class must be a valid managed bean or session bean, but need not be an "
@@ -662,7 +816,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:291
+#: scopescontexts.xml:384
#, fuzzy, no-c-format
msgid ""
"This works even if <literal>Calculator</literal> is <emphasis>already</"
@@ -672,7 +826,7 @@
"emphasis> 명시되어 있어도 이는 사실입니다, 예: "
#. Tag: programlisting
-#: scopescontexts.xml:296
+#: scopescontexts.xml:389
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped\n"
@@ -682,7 +836,7 @@
"public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:298
+#: scopescontexts.xml:391
#, no-c-format
msgid ""
"So the following injected attributes each get a different instance of "
@@ -691,7 +845,7 @@
"다음의 삽입 속성은 다른 <literal>Calculator</literal> 인스턴스를 갖습니다: "
#. Tag: programlisting
-#: scopescontexts.xml:302
+#: scopescontexts.xml:395
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class PaymentCalc {\n"
@@ -707,7 +861,7 @@
"}]]>"
#. Tag: para
-#: scopescontexts.xml:304
+#: scopescontexts.xml:397
#, no-c-format
msgid ""
"The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -721,7 +875,7 @@
"<literal>Calculator</literal>의 새로운 인스턴스가 삽입되어 있습니다. "
#. Tag: para
-#: scopescontexts.xml:310
+#: scopescontexts.xml:403
#, no-c-format
msgid ""
"This feature is particularly useful with producer methods, as we'll see in "
Modified: doc/trunk/reference/ko-KR/weldexamples.po
===================================================================
--- doc/trunk/reference/ko-KR/weldexamples.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/ko-KR/weldexamples.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -144,7 +144,7 @@
"<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"
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"XML"
"\"><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN"
"\"\n"
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
@@ -524,7 +524,7 @@
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."
+"can open the example natively using the <ulink url=\"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.."
@@ -620,8 +620,9 @@
"<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."
+"<ulink url=\"http://localhost:9090\">http://localhost:9090</ulink> to view "
+"the app. To debug choose <emphasis>Debug as Java Application</emphasis> "
+"instead."
msgstr ""
#. Tag: title
@@ -663,8 +664,9 @@
#: 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>."
+"to deploy the example to Tomcat. You can then access application at <ulink "
+"url=\"http://localhost:8080/weld-numberguess-wicket\">http://localhost:8080/"
+"weld-numberguess-wicket</ulink>."
msgstr ""
#. Tag: para
@@ -976,7 +978,7 @@
"\"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"
+"public class Game\n"
"{\n"
"\n"
" public static final int MAX_NUM_GUESSES = 10;\n"
@@ -1078,19 +1080,18 @@
"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"
+"to get the random number at the start of each game. Note that it can't use "
+"<literal>Instance.get()</literal> like the JSF example does because there "
+"will not be any active contexts like there are 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"
@@ -1545,7 +1546,6 @@
#, 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>."
+"information on Weld, please visit <ulink url=\"http://www.seamframework.org/"
+"Weld\">http://www.seamframework.org/Weld</ulink>."
msgstr ""
Modified: doc/trunk/reference/pot/Author_Group.pot
===================================================================
--- doc/trunk/reference/pot/Author_Group.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/Author_Group.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/Book_Info.pot
===================================================================
--- doc/trunk/reference/pot/Book_Info.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/Book_Info.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/beans.pot
===================================================================
--- doc/trunk/reference/pot/beans.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/beans.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -485,14 +485,14 @@
#, 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."
+"context until the context is destroyed. There is no way to manually remove a "
+"bean from a context. If you don't want the bean to sit in the session "
+"indefinitely, consider using another scope with a shorted lifespan, such as "
+"the request or conversation scope."
msgstr ""
#. Tag: para
-#: beans.xml:272
+#: beans.xml:273
#, no-c-format
msgid ""
"If a scope is not explicitly specified, then the bean belongs to a special "
@@ -502,19 +502,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:278
+#: beans.xml:279
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:283
+#: beans.xml:284
#, no-c-format
msgid "EL name"
msgstr ""
#. Tag: para
-#: beans.xml:285
+#: beans.xml:286
#, no-c-format
msgid ""
"If you want to reference a bean in non-Java code that supports Unified EL "
@@ -523,7 +523,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:290
+#: beans.xml:291
#, no-c-format
msgid ""
"The EL name is specified using the <literal>@Named</literal> annotation, as "
@@ -531,7 +531,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:294
+#: beans.xml:295
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
@@ -539,13 +539,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:296
+#: beans.xml:297
#, no-c-format
msgid "Now we can easily use the bean in any JSF or JSP page:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:298
+#: beans.xml:299
#, no-c-format
msgid ""
"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
@@ -554,7 +554,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:301
+#: beans.xml:302
#, no-c-format
msgid ""
"The <literal>@Named</literal> annotation is not what makes the class a bean. "
@@ -564,7 +564,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:308
+#: beans.xml:309
#, no-c-format
msgid ""
"We can let CDI choose a name for us by leaving off the value of the "
@@ -572,7 +572,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:312
+#: beans.xml:313
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named\n"
@@ -580,7 +580,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:314
+#: beans.xml:315
#, no-c-format
msgid ""
"The name defaults to the unqualified class name, decapitalized; in this "
@@ -588,13 +588,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:324
+#: beans.xml:325
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: beans.xml:326
+#: beans.xml:327
#, no-c-format
msgid ""
"We've already seen how qualifiers let us choose between multiple "
@@ -607,7 +607,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:334
+#: beans.xml:335
#, no-c-format
msgid ""
"<![CDATA[public @Alternative\n"
@@ -615,33 +615,33 @@
msgstr ""
#. Tag: para
-#: beans.xml:336
+#: beans.xml:337
#, 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 "
+"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
+#: beans.xml:345
#, no-c-format
msgid ""
"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:351
+#: beans.xml:352
#, no-c-format
msgid "Interceptor binding types"
msgstr ""
#. Tag: para
-#: beans.xml:353
+#: beans.xml:354
#, no-c-format
msgid ""
"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
@@ -652,7 +652,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:360
+#: beans.xml:361
#, no-c-format
msgid ""
"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
@@ -669,7 +669,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:371
+#: beans.xml:372
#, no-c-format
msgid ""
"CDI provides a new approach to binding interceptors to beans that introduces "
@@ -679,7 +679,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:377
+#: beans.xml:378
#, no-c-format
msgid ""
"An interceptor binding type is a user-defined annotation that is itself "
@@ -689,7 +689,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:382
+#: beans.xml:383
#, no-c-format
msgid ""
"<![CDATA[@InterceptorBinding\n"
@@ -700,7 +700,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:384
+#: beans.xml:385
#, no-c-format
msgid ""
"The interceptor that implements transaction management declares this "
@@ -708,7 +708,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:388
+#: beans.xml:389
#, no-c-format
msgid ""
"<![CDATA[public @Transactional @Interceptor\n"
@@ -716,7 +716,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:390
+#: beans.xml:391
#, no-c-format
msgid ""
"We can apply the interceptor to a bean by annotating the bean class with the "
@@ -724,7 +724,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:394
+#: beans.xml:395
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Transactional\n"
@@ -732,7 +732,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:396
+#: beans.xml:397
#, no-c-format
msgid ""
"Notice that <literal>ShoppingCart</literal> and "
@@ -741,18 +741,18 @@
msgstr ""
#. Tag: para
-#: beans.xml:401
+#: beans.xml:402
#, 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 "
+"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
+#: beans.xml:409
#, no-c-format
msgid ""
"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
@@ -760,13 +760,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:418
+#: beans.xml:419
#, no-c-format
msgid "What kinds of classes are beans?"
msgstr ""
#. Tag: para
-#: beans.xml:420
+#: beans.xml:421
#, no-c-format
msgid ""
"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
@@ -775,13 +775,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:427
+#: beans.xml:428
#, no-c-format
msgid "Managed beans"
msgstr ""
#. Tag: para
-#: beans.xml:429
+#: beans.xml:430
#, no-c-format
msgid ""
"A managed bean is a Java class. The basic lifecycle and semantics of a "
@@ -793,19 +793,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:440
+#: beans.xml:441
#, no-c-format
msgid "It is not a non-static inner class."
msgstr ""
#. Tag: para
-#: beans.xml:443
+#: beans.xml:444
#, no-c-format
msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:446
+#: beans.xml:447
#, no-c-format
msgid ""
"It is not annotated with an EJB component-defining annotation or declared as "
@@ -813,7 +813,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:452
+#: beans.xml:453
#, no-c-format
msgid ""
"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
@@ -821,25 +821,25 @@
msgstr ""
#. Tag: para
-#: beans.xml:455
+#: beans.xml:456
#, no-c-format
msgid "It has an appropriate constructor—either:"
msgstr ""
#. Tag: para
-#: beans.xml:460
+#: beans.xml:461
#, no-c-format
msgid "the class has a constructor with no parameters, or"
msgstr ""
#. Tag: para
-#: beans.xml:463
+#: beans.xml:464
#, no-c-format
msgid "the class declares a constructor annotated <literal>@Inject</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:471
+#: beans.xml:472
#, no-c-format
msgid ""
"The unrestricted set of bean types for a managed bean contains the bean "
@@ -848,7 +848,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:474
+#: beans.xml:475
#, no-c-format
msgid ""
"If a managed bean has a public field, it must have the default scope "
@@ -856,7 +856,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:476
+#: beans.xml:477
#, no-c-format
msgid ""
"Managed beans support the <literal>@PostConstruct</literal> and "
@@ -864,7 +864,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:479
+#: beans.xml:480
#, no-c-format
msgid ""
"Session beans are also, technically, managed beans. However, since they have "
@@ -874,13 +874,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:488
+#: beans.xml:489
#, no-c-format
msgid "Session beans"
msgstr ""
#. Tag: para
-#: beans.xml:490
+#: beans.xml:491
#, no-c-format
msgid ""
"Session beans belong to the EJB specification. They have a special "
@@ -893,7 +893,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:499
+#: beans.xml:500
#, no-c-format
msgid ""
"Message-driven and entity beans are by nature non-contextual objects and may "
@@ -905,7 +905,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:507
+#: beans.xml:508
#, no-c-format
msgid ""
"The unrestricted set of bean types for a session bean contains all local "
@@ -917,7 +917,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:515
+#: beans.xml:516
#, no-c-format
msgid ""
"There's no reason to explicitly declare the scope of a stateless session "
@@ -928,7 +928,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:519
+#: beans.xml:520
#, no-c-format
msgid ""
"Stateful session beans may define a <emphasis>remove method</emphasis>, "
@@ -941,7 +941,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:527
+#: beans.xml:528
#, no-c-format
msgid ""
"So, when should we use a session bean instead of a plain managed bean? "
@@ -949,19 +949,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:534
+#: beans.xml:535
#, no-c-format
msgid "method-level transaction management and security,"
msgstr ""
#. Tag: para
-#: beans.xml:537
+#: beans.xml:538
#, no-c-format
msgid "concurrency management,"
msgstr ""
#. Tag: para
-#: beans.xml:540
+#: beans.xml:541
#, no-c-format
msgid ""
"instance-level passivation for stateful session beans and instance-pooling "
@@ -969,19 +969,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:544
+#: beans.xml:545
#, no-c-format
msgid "remote or web service invocation, or"
msgstr ""
#. Tag: para
-#: beans.xml:547
+#: beans.xml:548
#, no-c-format
msgid "timers and asynchronous methods,"
msgstr ""
#. Tag: para
-#: beans.xml:551
+#: beans.xml:552
#, no-c-format
msgid ""
"When we don't need any of these things, an ordinary managed bean will serve "
@@ -989,7 +989,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:553
+#: beans.xml:554
#, no-c-format
msgid ""
"Many beans (including any <literal>@SessionScoped</literal> or "
@@ -999,7 +999,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:559
+#: beans.xml:560
#, no-c-format
msgid ""
"Beans which hold references to heavy-weight resources, or hold a lot of "
@@ -1009,7 +1009,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:565
+#: beans.xml:566
#, no-c-format
msgid ""
"Finally, it's usually obvious when method-level transaction management, "
@@ -1018,7 +1018,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:570
+#: beans.xml:571
#, no-c-format
msgid ""
"The point we're trying to make is: use a session bean when you need the "
@@ -1031,7 +1031,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:578
+#: beans.xml:579
#, no-c-format
msgid ""
"On the other hand, don't be scared to use session beans just because you've "
@@ -1044,13 +1044,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:589
+#: beans.xml:590
#, no-c-format
msgid "Producer methods"
msgstr ""
#. Tag: para
-#: beans.xml:591
+#: beans.xml:592
#, no-c-format
msgid ""
"Not everything that needs to be injected can be boiled down to a bean class "
@@ -1062,7 +1062,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:599
+#: beans.xml:600
#, no-c-format
msgid ""
"A <emphasis>producer method</emphasis> is a method that acts as a source of "
@@ -1073,7 +1073,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:606
+#: beans.xml:607
#, no-c-format
msgid ""
"A producer method is declared by annotating a method of a bean class with "
@@ -1081,7 +1081,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:611
+#: beans.xml:612
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
@@ -1097,7 +1097,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:613
+#: beans.xml:614
#, no-c-format
msgid ""
"We can't write a bean class that is itself a random number. But we can "
@@ -1112,25 +1112,25 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:622
+#: beans.xml:623
#, no-c-format
msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
msgstr ""
#. Tag: para
-#: beans.xml:624
+#: beans.xml:625
#, no-c-format
msgid "Even in a Unified EL expression:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:628
+#: beans.xml:629
#, no-c-format
msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
msgstr ""
#. Tag: para
-#: beans.xml:630
+#: beans.xml:631
#, no-c-format
msgid ""
"A producer method must be a non-abstract method of a managed bean class or "
@@ -1140,13 +1140,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:636
+#: beans.xml:637
#, no-c-format
msgid "The bean types of a producer method depend upon the method return type:"
msgstr ""
#. Tag: para
-#: beans.xml:642
+#: beans.xml:643
#, no-c-format
msgid ""
"If the return type is an interface, the unrestricted set of bean types "
@@ -1155,7 +1155,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:648
+#: beans.xml:649
#, no-c-format
msgid ""
"If a return type is primitive or is a Java array type, the unrestricted set "
@@ -1164,7 +1164,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:654
+#: beans.xml:655
#, no-c-format
msgid ""
"If the return type is a class, the unrestricted set of bean types contains "
@@ -1173,7 +1173,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:661
+#: beans.xml:662
#, no-c-format
msgid ""
"If the producer method has method parameters, the container will look for a "
@@ -1182,7 +1182,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:667
+#: beans.xml:668
#, no-c-format
msgid ""
"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
@@ -1191,7 +1191,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:669
+#: beans.xml:670
#, no-c-format
msgid ""
"We'll talk much more about producer methods in <xref linkend="
@@ -1199,13 +1199,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:674
+#: beans.xml:675
#, no-c-format
msgid "Producer fields"
msgstr ""
#. Tag: para
-#: beans.xml:676
+#: beans.xml:677
#, no-c-format
msgid ""
"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
@@ -1215,7 +1215,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:682
+#: beans.xml:683
#, no-c-format
msgid ""
"<![CDATA[public class Shop {\n"
@@ -1225,7 +1225,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:684
+#: beans.xml:685
#, no-c-format
msgid ""
"The rules for determining the bean types of a producer field parallel the "
@@ -1233,7 +1233,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:688
+#: beans.xml:689
#, no-c-format
msgid ""
"A producer field is really just a shortcut that lets us avoid writing a "
@@ -1243,3 +1243,405 @@
"linkend=\"resources\"/>. Because we can't wait to get to work on some "
"examples."
msgstr ""
+
+#. Tag: title
+#: beans.xml:701
+#, no-c-format
+msgid "The (minimal) bean descriptor"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:703
+#, no-c-format
+msgid ""
+"First, it's important to understand that the XML bean descriptor in CDI "
+"(beans.xml) is not there to define beans in XML, like in other popular bean "
+"containers. Rather, you use this file to enable CDI services for the current "
+"bean archive that is difficult to define consistently in Java or which you "
+"don't want to define in Java (e.g., to accomodate testing)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:710
+#, no-c-format
+msgid ""
+"For example, the XML is used to enable interceptors (which are disabled by "
+"default) and define interceptor ordering. So the bean descriptor "
+"<emphasis>complements</emphasis> the metadata that is provided in the Java "
+"language syntax. (You may still want to define beans in XML for other "
+"reasons, but that is the concern of an extension)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:717
+#, no-c-format
+msgid ""
+"Let's first ask why the beans.xml is required, then look at what services it "
+"is used used to enable."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:722
+#, no-c-format
+msgid "Why is beans.xml required?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:724
+#, no-c-format
+msgid ""
+"You may be wondering, if beans are not described using XML, why do we need "
+"beans.xml at all, particularly if you don't have anything that you would "
+"need the bean descriptor to enable (alternatives, interceptors or "
+"decorators)?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:730
+#, no-c-format
+msgid "There are two things about CDI that we need to keep in mind:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:736
+#, no-c-format
+msgid ""
+"CDI does not require any special declaration for a Java class to be injected "
+"- that's right, no annotation or XML declaration at all!"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:742
+#, no-c-format
+msgid ""
+"CDI does not define any special kind of module - CDI beans can be deployed "
+"in a library JAR, EJB JAR, WAR, RAR, or JVM classpath directory."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:749
+#, no-c-format
+msgid ""
+"The CDI specification calls the process of identifying beans in modules "
+"<emphasis>bean discovery</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:753
+#, no-c-format
+msgid ""
+"So there are potentially a lot of classes in the classpath which might be "
+"beans! We don't want to force the container to scan every one of those "
+"classes at startup and build its internal metamodel for each of them. This "
+"really could make bean discovery very slow."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:759
+#, no-c-format
+msgid ""
+"But there's another reason we need to give the user some control over which "
+"classes are available for injection. We don't want every class in the "
+"classpath to potentially match an injection point, including classes that "
+"were never intended to be injected into things. This would force the "
+"developer to have to use qualifiers much more often to disambiguate "
+"injection points."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:766
+#, no-c-format
+msgid "So we have two choices. We could have the developer:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:772
+#, no-c-format
+msgid "explicitly exclude modules which do not contain beans, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:775
+#, no-c-format
+msgid "explicitly declare modules which do contain beans."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:779
+#, no-c-format
+msgid ""
+"It should be clear that the second option is a much better way to go. Thus, "
+"CDI has the notion of a bean archive. A bean archive is just a module that "
+"has a file named beans.xml in the META-INF directory. The container looks "
+"for beans in bean archives. It ignores other modules."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:785
+#, no-c-format
+msgid ""
+"Now, you might be wondering if we've got the granularity wrong here. Why "
+"should module be the right criteria to use for including/excluding a class. "
+"Why not consider:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:792
+#, no-c-format
+msgid "a class-level annotation,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:795
+#, no-c-format
+msgid "the package,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:798
+#, no-c-format
+msgid "some type it implements or extends, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:801
+#, no-c-format
+msgid "some naming convention."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:805
+#, no-c-format
+msgid ""
+"We've got the first option covered. Annotate a bean <literal>@Alternative</"
+"literal>, or with an alternative stereotype, and it will be considered "
+"disabled by CDI, as long as you don't explicitly enable it in beans.xml. "
+"That's not quite the same thing as excluding the class from scanning "
+"altogether, but it's close. (One difference is that a portable extension "
+"with still get a <literal>ProcessAnnotatedType</literal> event for that "
+"class)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:813
+#, no-c-format
+msgid ""
+"A future version of CDI might allow you to declare excluded packages in "
+"beans.xml. Excluding a bean by type or naming convention isn't really that "
+"appealing. In the world of CDI, we use stereotypes for identifying "
+"architectural roles. We don't use marker interfaces or naming conventions. "
+"Names really shouldn't affect functionality as it is too fragile."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:820
+#, no-c-format
+msgid "Enough theory, what elements are available in beans.xml?"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:826
+#, no-c-format
+msgid "Bean descriptor schema"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:828
+#, no-c-format
+msgid ""
+"If you don't need to activate any interceptors, decorators or alternatives "
+"(you just have plain beans that you need to use in an archive), the beans."
+"xml file can be <emphasis>empty</emphasis>. If you do have one of these "
+"requirements, then you need to start popularing the descriptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:834
+#, no-c-format
+msgid ""
+"The root element of a beans.xml file is <literal>beans</literal>, with the "
+"following <ulink url=\"http://anonsvn.jboss.org/repos/weld/api/trunk/cdi/src/"
+"main/resources/beans.xsd\">schema</ulink>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:839
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<beans 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"
+"</beans>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:841
+#, no-c-format
+msgid ""
+"The <literal>beans</literal> element can have one or more of each of the "
+"following children:"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:847
+#, no-c-format
+msgid "interceptors"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:850
+#, no-c-format
+msgid "decorators"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:853
+#, no-c-format
+msgid "alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:857
+#, no-c-format
+msgid "Let's look at each element in detail."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:862
+#, no-c-format
+msgid "<interceptors>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:864
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled interceptors bound via interceptor "
+"bindings. An interceptor must be explicitly enabled by listing the fully "
+"qualified class name in a child <class> element of <"
+"interceptors>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:870
+#, no-c-format
+msgid ""
+"There may be zero or more interceptor class elements. The order of the class "
+"declarations determines the interceptor ordering. Interceptors which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an interceptor "
+"class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:877
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.intercept.SecurityInterceptor</class>\n"
+" <class>com.acme.intercept.TransactionInterceptor</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:883
+#, no-c-format
+msgid "<decorators>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:885
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled decorators. A decorator must be "
+"explicitly enabled by listing the fully qualified class name in a child <"
+"class> element of <decorators>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:891
+#, no-c-format
+msgid ""
+"There may be zero or more decorator class elements. The order of the class "
+"declarations determines the decorator ordering. Decorators which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an decorator class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.decorate.BigAccountDecorator</class>\n"
+" <class>com.acme.decorate.SpecialGiftDecorator</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:903
+#, no-c-format
+msgid "<alternatives>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:905
+#, no-c-format
+msgid ""
+"An alternative is a bean that must be explicitly declared in the beans.xml "
+"file if it should be available for lookup, injection or EL resolution. By "
+"default, a bean archive has no active alternatives. An alternative must be "
+"explicitly declared using the fully qualified bean class name or stereotype "
+"class name in either a child <class> or <stereotype> element of "
+"<alternatives>, respectively."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:913
+#, no-c-format
+msgid ""
+"An alternative is selected for the bean archive if either: the alternative "
+"is a managed bean or session bean and the bean class of the bean is listed, "
+"or the alternative is a producer method, field or resource, and the bean "
+"class that declares the method or field is listed, or any "
+"<literal>@Alternative</literal> stereotype of the alternative is listed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:920
+#, no-c-format
+msgid ""
+"There may be zero or more alternative bean class elements. The same class "
+"may not be listed twice. And of course, the class must exist and it must be "
+"an alternative bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:925
+#, no-c-format
+msgid ""
+"There may also be zero or more <literal>@Alternative</literal> stereotype "
+"elements. The same stereotype may not be listed twice. And of course, the "
+"stereotype class must exist and it must be an stereotype annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:931
+#, no-c-format
+msgid ""
+"<![CDATA[<stereotypes>\n"
+" <class>com.acme.business.MockPaymentProcessor</class>\n"
+" <stereotype>com.acme.stereotype.Mock</stereotype>\n"
+"</stereotypes>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:935
+#, no-c-format
+msgid ""
+"And that's it! A very simple schema, used only to activate and order CDI "
+"services."
+msgstr ""
Modified: doc/trunk/reference/pot/decorators.pot
===================================================================
--- doc/trunk/reference/pot/decorators.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/decorators.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/dependencies.pot
===================================================================
--- doc/trunk/reference/pot/dependencies.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/dependencies.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -25,7 +25,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/"
+"is currently maintained in the <ulink url=\"https://jira.jboss.org/jira/"
"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
"appendix."
msgstr ""
Modified: doc/trunk/reference/pot/ee.pot
===================================================================
--- doc/trunk/reference/pot/ee.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/ee.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -62,7 +62,7 @@
#: ee.xml:32
#, no-c-format
msgid ""
-"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"the default <ulink url=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
"Validation</ulink> <literal>ValidationFactory</literal>, and"
msgstr ""
@@ -74,14 +74,49 @@
"literal>."
msgstr ""
+#. Tag: para
+#: ee.xml:45
+#, no-c-format
+msgid ""
+"The CDI specification does not require the servlet context objects, "
+"<literal>HttpServletRequest</literal>, <literal>HttpSession</literal> and "
+"<literal>ServletContext</literal> to be exposed as injectable beans. If you "
+"really want to be able to inject these objects, it's easy to create a "
+"portable extension to expose them as beans. However, we recommend that "
+"direct access to these objects be limited to servlets, servlet filters and "
+"servlet event listeners, where they may be obtained in the usual way as "
+"defined by the Java Servlets spec. The <literal>FacesContext</literal> is "
+"also not injectable. You can get at it by calling <literal>FacesContext."
+"getCurrentInstance()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ee.xml:57
+#, no-c-format
+msgid ""
+"Oh, you <emphasis>really</emphasis> want to inject the "
+"<literal>FacesContext</literal>? Alright then, try this producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: ee.xml:61
+#, no-c-format
+msgid ""
+"<![CDATA[class FacesContextProducer {\n"
+" @Produces @RequestScoped FacesContext getFacesContext() {\n"
+" return FacesContext.getCurrentInstance();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
#. Tag: title
-#: ee.xml:47
+#: ee.xml:67
#, no-c-format
msgid "Injecting Java EE resources into a bean"
msgstr ""
#. Tag: para
-#: ee.xml:49
+#: ee.xml:69
#, no-c-format
msgid ""
"All managed beans may take advantage of Java EE component environment "
@@ -92,7 +127,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:56
+#: ee.xml:76
#, no-c-format
msgid ""
"<![CDATA[@Transactional @Interceptor\n"
@@ -105,7 +140,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:58
+#: ee.xml:78
#, no-c-format
msgid ""
"<![CDATA[@SessionScoped\n"
@@ -117,7 +152,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:60
+#: ee.xml:80
#, no-c-format
msgid ""
"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
@@ -127,7 +162,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:66
+#: ee.xml:86
#, no-c-format
msgid ""
"Of course, we advise that component environment injection be used to define "
@@ -135,13 +170,13 @@
msgstr ""
#. Tag: title
-#: ee.xml:74
+#: ee.xml:94
#, no-c-format
msgid "Calling a bean from a servlet"
msgstr ""
#. Tag: para
-#: ee.xml:76
+#: ee.xml:96
#, no-c-format
msgid ""
"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
@@ -149,7 +184,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:81
+#: ee.xml:101
#, no-c-format
msgid ""
"<![CDATA[public class Login extends HttpServlet {\n"
@@ -175,7 +210,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:83
+#: ee.xml:103
#, no-c-format
msgid ""
"Since instances of servlets are shared across all incoming threads, the bean "
@@ -185,13 +220,13 @@
msgstr ""
#. Tag: title
-#: ee.xml:92
+#: ee.xml:112
#, no-c-format
msgid "Calling a bean from a message-driven bean"
msgstr ""
#. Tag: para
-#: ee.xml:94
+#: ee.xml:114
#, no-c-format
msgid ""
"CDI injection applies to all EJBs, even when they aren't managed beans. In "
@@ -200,13 +235,13 @@
msgstr ""
#. Tag: para
-#: ee.xml:99
+#: ee.xml:119
#, no-c-format
msgid "You can even use CDI interceptor bindings for message-driven Beans."
msgstr ""
#. Tag: programlisting
-#: ee.xml:101
+#: ee.xml:121
#, no-c-format
msgid ""
"<![CDATA[@Transactional @MessageDriven\n"
@@ -221,7 +256,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:103
+#: ee.xml:123
#, no-c-format
msgid ""
"Please note that there is no session or conversation context available when "
@@ -231,19 +266,19 @@
msgstr ""
#. Tag: para
-#: ee.xml:109
+#: ee.xml:129
#, no-c-format
msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
msgstr ""
#. Tag: title
-#: ee.xml:116
+#: ee.xml:136
#, no-c-format
msgid "JMS endpoints"
msgstr ""
#. Tag: para
-#: ee.xml:118
+#: ee.xml:138
#, no-c-format
msgid ""
"Sending messages using JMS can be quite complex, because of the number of "
@@ -258,7 +293,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:127
+#: ee.xml:147
#, no-c-format
msgid ""
"You can use producer fields and methods to prepare all of these resources "
@@ -266,7 +301,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:131
+#: ee.xml:151
#, no-c-format
msgid ""
"<![CDATA[public class OrderResources {\n"
@@ -315,7 +350,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:133
+#: ee.xml:153
#, no-c-format
msgid ""
"In this example, we can just inject the prepared <literal>MessageProducer</"
@@ -323,7 +358,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:138
+#: ee.xml:158
#, no-c-format
msgid ""
"<![CDATA[@Inject Order order;\n"
@@ -339,7 +374,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:144
+#: ee.xml:164
#, no-c-format
msgid ""
"The lifecycle of the injected JMS objects is completely controlled by the "
@@ -347,13 +382,13 @@
msgstr ""
#. Tag: title
-#: ee.xml:151
+#: ee.xml:171
#, no-c-format
msgid "Packaging and deployment"
msgstr ""
#. Tag: para
-#: ee.xml:153
+#: ee.xml:173
#, no-c-format
msgid ""
"CDI doesn't define any special deployment archive. You can package beans in "
@@ -368,7 +403,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:162
+#: ee.xml:182
#, no-c-format
msgid ""
"In an embeddable EJB container, beans may be deployed in any location in "
Modified: doc/trunk/reference/pot/environments.pot
===================================================================
--- doc/trunk/reference/pot/environments.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/environments.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -383,133 +383,270 @@
"available:"
msgstr ""
-#. Tag: literal
-#: environments.xml:215
+#. Tag: para
+#: environments.xml:214
#, no-c-format
-msgid "POJOs (no EJBs)"
+msgid ""
+"Managed beans with <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:220
#, no-c-format
-msgid "Typesafe Dependency Injection"
+msgid "Dependency injection with qualifiers and alternatives"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:225
#, no-c-format
-msgid "Application and Dependent Contexts"
+msgid ""
+"<literal>@Application</literal>, <literal>@Dependent</literal> and "
+"<literal>@Singleton</literal> scopes"
msgstr ""
-#. Tag: literal
-#: environments.xml:230
+#. Tag: para
+#: environments.xml:231
#, no-c-format
-msgid "Qualifiers"
+msgid "Interceptors and decorators"
msgstr ""
-#. Tag: literal
-#: environments.xml:235
+#. Tag: para
+#: environments.xml:236
#, no-c-format
msgid "Stereotypes"
msgstr ""
-#. Tag: literal
-#: environments.xml:240
+#. Tag: para
+#: environments.xml:241
#, no-c-format
-msgid "Typesafe Event Model"
+msgid "Events"
msgstr ""
-#. Tag: title
+#. Tag: para
#: environments.xml:246
#, no-c-format
+msgid "Portable extension support"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:252
+#, no-c-format
+msgid "EJB beans are not supported."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:257
+#, no-c-format
msgid "CDI SE Module"
msgstr ""
#. Tag: para
-#: environments.xml:248
+#: environments.xml:259
#, 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:"
+"automatically registering all simple beans found on the classpath. The "
+"command line parameters can be injected using either of the following:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:255
+#: environments.xml:264
#, no-c-format
+msgid "<![CDATA[@Inject @Parameters List<String> params;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:266
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters String[] paramsArray;]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:268
+#, no-c-format
+msgid "The second form is useful for compatibility with existing classes."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:273
+#, no-c-format
msgid ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with "
-"existing classes]]>"
+"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 ""
#. Tag: para
-#: environments.xml:257
+#: environments.xml:282
#, no-c-format
msgid "Here's an example of a simple CDI SE application:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:261
+#: environments.xml:286
#, no-c-format
msgid ""
-"<![CDATA[@ApplicationScoped\n"
+"<![CDATA[@Singleton\n"
"public class HelloWorld\n"
"{\n"
-" @Inject @Parameters List<String> parameters;\n"
-"\n"
-" public void printHello(@Observes ContainerInitialized event) {\n"
+" public void printHello(@Observes ContainerInitialized event, @Parameters "
+"List<String> parameters) {\n"
" System.out.println(\"Hello \" + parameters.get(0));\n"
" }\n"
"}]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:292
+#, no-c-format
+msgid "Bootstrapping CDI SE"
+msgstr ""
+
#. Tag: para
-#: environments.xml:263
+#: environments.xml:294
#, no-c-format
+msgid "CDI SE applications can be bootstrapped in the following ways."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:300
+#, no-c-format
+msgid "The ContainerInitialized Event"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:302
+#, no-c-format
msgid ""
-"CDI SE applications can be bootstrapped by running the StartMain class like "
-"so:"
+"Thanks to the power of CDI's typesafe event model, application developers "
+"need not write any bootstrapping code. The Weld SE module comes with a built-"
+"in main method which will bootstrap CDI for you and then fire a "
+"<literal>ContainerInitialized</literal> event. The entry point for your "
+"application code would therefore be a simple bean which observes the "
+"<literal>ContainerInitialized</literal> event, as in the previous example."
msgstr ""
+#. Tag: para
+#: environments.xml:310
+#, no-c-format
+msgid ""
+"In this case your application can be started by calling the provided main "
+"method like so:"
+msgstr ""
+
#. Tag: programlisting
-#: environments.xml:267
+#: environments.xml:313
#, no-c-format
msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:319
+#, no-c-format
+msgid "Programatic Bootstrap API"
+msgstr ""
+
#. Tag: para
-#: environments.xml:269
+#: environments.xml:321
#, 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:"
+"For added flexibility, CDI SE also comes with a bootstrap API which can be "
+"called from within your application in order to initialize CDI and obtain "
+"references to your application's beans and events. The API consists of two "
+"classes: <literal>Weld</literal> and <literal>WeldContainer</literal>."
msgstr ""
#. Tag: programlisting
-#: environments.xml:276
+#: environments.xml:327
#, no-c-format
msgid ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+"<![CDATA[public class Weld\n"
+"{\n"
+"\n"
+" /** Boots Weld and creates and returns a WeldContainer instance, through "
+"which\n"
+" * beans and events can be accesed. */\n"
+" public WeldContainer initialize() {...}\n"
+"\n"
+" /** Convenience method for shutting down the container. */\n"
+" public void shutdown() {...}\n"
+"\n"
"}]]>"
msgstr ""
+#. Tag: programlisting
+#: environments.xml:329
+#, no-c-format
+msgid ""
+"<![CDATA[public class WeldContainer\n"
+"{\n"
+"\n"
+" /** Provides access to all beans within the application. */\n"
+" public Instance<Object> instance() {...}\n"
+"\n"
+" /** Provides access to all events within the application. */\n"
+" public Event<Object> event() {...}\n"
+"\n"
+" /** Provides direct access to the BeanManager. */\n"
+" public BeanManager getBeanManager() {...}\n"
+"\n"
+"}]]>"
+msgstr ""
+
#. Tag: para
-#: environments.xml:279
+#: environments.xml:331
#, 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>."
+"Here's an example application main method which uses this API to initialize "
+"a bean of type <literal>MyApplicationBean</literal>."
msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.instance().select(MyApplicationBean.class).get();\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:336
+#, no-c-format
+msgid ""
+"Alternatively the application could be started by firing a custom event "
+"which would then be observed by another simple bean. The following example "
+"fires <literal>MyEvent</literal> on startup."
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.event().select(MyEvent.class).fire( new MyEvent() );\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: environments.xml:348
+#, no-c-format
+msgid "Setting the Classpath"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:350
+#, no-c-format
+msgid ""
+"Weld SE comes packaged as a 'shaded' jar which includes the CDI API, Weld "
+"Core and all dependant classes bundled into a single jar. Therefore the only "
+"Weld jar you need on the classpath, in addition to your application's "
+"classes and dependant jars, is the Weld SE jar."
+msgstr ""
Modified: doc/trunk/reference/pot/events.pot
===================================================================
--- doc/trunk/reference/pot/events.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/events.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/example.pot
===================================================================
--- doc/trunk/reference/pot/example.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/example.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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,11 +26,13 @@
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:"
+"request-scoped bean to hold the username and password entered during login, "
+"with constraints defined using annotations from the Bean Validation "
+"specification:"
msgstr ""
#. Tag: programlisting
-#: example.xml:11
+#: example.xml:12
#, no-c-format
msgid ""
"<![CDATA[@Named @RequestScoped\n"
@@ -38,30 +40,34 @@
" private String username;\n"
" private String password;\n"
" \n"
+" @NotNull @Length(min=3, max=25)\n"
" public String getUsername() { return username; }\n"
" public void setUsername(String username) { this.username = username; }\n"
" \n"
+" @NotNull @Length(min=6, max=20)\n"
" public String getPassword() { return password; }\n"
" public void setPassword(String password) { this.password = password; }\n"
"}]]>"
msgstr ""
#. Tag: para
-#: example.xml:13
+#: example.xml:14
#, no-c-format
msgid "This bean is bound to the login prompt in the following JSF form:"
msgstr ""
#. Tag: programlisting
-#: example.xml:15
+#: example.xml:16
#, 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"
+" <f:validateBean>\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"
+" </f:validateBean>\n"
" </h:panelGrid>\n"
" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
"login.loggedIn}\"/>\n"
@@ -71,16 +77,46 @@
msgstr ""
#. Tag: para
-#: example.xml:17
+#: example.xml:18
#, no-c-format
+msgid "Users are represented by a JPA entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:22
+#, no-c-format
msgid ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+" private @NotNull @Length(min=3, max=25) @Id String username;\n"
+" private @NotNull @Length(min=6, max=20) String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" public String setPassword(String password) { this.password = password; }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: example.xml:24
+#, no-c-format
+msgid ""
+"(Note that we're also going to need a <literal>persistence.xml</literal> "
+"file to configure the JPA persistence unit containing <literal>User</"
+"literal>.)"
+msgstr ""
+
+#. Tag: para
+#: example.xml:29
+#, 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 ""
#. Tag: programlisting
-#: example.xml:22
+#: example.xml:34
#, no-c-format
msgid ""
"<![CDATA[@SessionScoped @Named\n"
@@ -123,7 +159,7 @@
msgstr ""
#. Tag: para
-#: example.xml:24
+#: example.xml:36
#, no-c-format
msgid ""
"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
@@ -131,7 +167,7 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:26
+#: example.xml:38
#, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -141,7 +177,7 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:28
+#: example.xml:40
#, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -151,7 +187,7 @@
msgstr ""
#. Tag: para
-#: example.xml:30
+#: example.xml:42
#, no-c-format
msgid ""
"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
@@ -159,16 +195,17 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:34
+#: example.xml:46
#, no-c-format
msgid ""
-"<![CDATA[public class UserDatabaseProducer {\n"
-" @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"<![CDATA[class UserDatabaseProducer {\n"
+" @Produces @UserDatabase @PersistenceContext \n"
+" static EntityManager userDatabase;\n"
"}]]>"
msgstr ""
#. Tag: para
-#: example.xml:36
+#: example.xml:48
#, no-c-format
msgid ""
"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
@@ -176,7 +213,7 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:38
+#: example.xml:50
#, no-c-format
msgid ""
"<![CDATA[public class DocumentEditor {\n"
@@ -192,13 +229,13 @@
msgstr ""
#. Tag: para
-#: example.xml:40
+#: example.xml:52
#, no-c-format
msgid "Or we can reference the current user in a JSF view:"
msgstr ""
#. Tag: programlisting
-#: example.xml:42
+#: example.xml:54
#, no-c-format
msgid ""
"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
@@ -207,7 +244,7 @@
msgstr ""
#. Tag: para
-#: example.xml:44
+#: example.xml:56
#, no-c-format
msgid ""
"Hopefully, this example gave you a taste of the CDI programming model. In "
Modified: doc/trunk/reference/pot/extend.pot
===================================================================
--- doc/trunk/reference/pot/extend.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/extend.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -90,50 +90,226 @@
"some other source"
msgstr ""
+#. Tag: title
+#: extend.xml:58
+#, no-c-format
+msgid "Creating an <literal>Extension</literal>"
+msgstr ""
+
#. Tag: para
-#: extend.xml:57
+#: extend.xml:60
#, no-c-format
msgid ""
-"The nerve center for extending CDI is the <literal>BeanManager</literal> "
-"object."
+"The first step in creating a portable extension is to write a class that "
+"implements <literal>Extension</literal>. This marker interface does not "
+"define any methods, but it's needed to satisfy the requirements of Java SE's "
+"service provider architecture."
msgstr ""
+#. Tag: programlisting
+#: extend.xml:66
+#, no-c-format
+msgid "class MyExtension implements Extension { ... }"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:68
+#, no-c-format
+msgid ""
+"Next, we need to register our extension as a service provider by creating a "
+"file named <literal>META-INF/services/javax.enterprise.inject.spi.Extension</"
+"literal>, which contains the name of our extension class:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:74
+#, no-c-format
+msgid "org.mydomain.extension.MyExtension"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:76
+#, no-c-format
+msgid ""
+"An extension is not a bean, exactly, since it is instantiated by the "
+"container during the initialization process, before any beans or contexts "
+"exist. However, it can be injected into other beans once the initialization "
+"process is complete."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:82
+#, no-c-format
+msgid ""
+"@Inject \n"
+"MyBean(MyExtension myExtension) {\n"
+" myExtension.doSomething();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:84
+#, no-c-format
+msgid ""
+"And, like beans, extensions can have observer methods. Usually, the observer "
+"methods observe <emphasis>container lifecycle events</emphasis>."
+msgstr ""
+
#. Tag: title
-#: extend.xml:62
+#: extend.xml:92
#, no-c-format
+msgid "Container lifecycle events"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:94
+#, no-c-format
+msgid ""
+"During the initialization process, the container fires a series of events, "
+"including:"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:101
+#, no-c-format
+msgid "BeforeBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:106
+#, no-c-format
+msgid "ProcessAnnotatedType"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:110
+#, no-c-format
+msgid ""
+"<literal>ProcessInjectionTarget</literal> and <literal>ProcessProducer</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:115
+#, no-c-format
+msgid ""
+"<literal>ProcessBean</literal> and <literal>ProcessObserverMethod</literal>"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:121
+#, no-c-format
+msgid "AfterBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:126
+#, no-c-format
+msgid "AfterDeploymentValidation"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:131
+#, no-c-format
+msgid "Extensions may observe these events:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {\n"
+" Logger.global.debug(\"beginning the scanning process\");\n"
+" }\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" Logger.global.debug(\"scanning type: \" + pat.getAnnotatedType()."
+"getJavaClass().getName());\n"
+" } \n"
+"\n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {\n"
+" Logger.global.debug(\"finished the scanning process\");\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:137
+#, no-c-format
+msgid ""
+"In fact, the extension can do a lot more than just observe. The extension is "
+"permitted to modify the container's metamodel and more. Here's a very simple "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" //tell the container to ignore the type if it is annotated @Ignore\n"
+" if ( pat.getAnnotatedType().isAnnotionPresent(Ignore.class) ) pat.veto"
+"(); \n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:144
+#, no-c-format
+msgid "The observer method may inject a <literal>BeanManager</literal>"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> "
+"pat, BeanManager beanManager) { ... }]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:153
+#, no-c-format
msgid "The <literal>BeanManager</literal> object"
msgstr ""
#. Tag: para
-#: extend.xml:64
+#: extend.xml:155
#, no-c-format
msgid ""
-"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object. The <literal>BeanManager</literal> interface lets us obtain beans, "
"interceptors, decorators, observers and contexts programmatically."
msgstr ""
#. Tag: programlisting
-#: extend.xml:69
+#: extend.xml:161
#, no-c-format
msgid ""
-"<![CDATA[public interface Manager {\n"
+"<![CDATA[public interface BeanManager {\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(Type beanType, Annotation... qualifiers);\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"
-" public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
-"Annotation... bindings);\n"
+" public void fireEvent(Object event, Annotation... qualifiers);\n"
+" public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, "
+"Annotation... qualifiers);\n"
" public List<Decorator<?>> resolveDecorators(Set<Type> types, "
-"Annotation... bindings);\n"
+"Annotation... qualifiers);\n"
" public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
"Annotation... interceptorBindings);\n"
" public boolean isScope(Class<? extends Annotation> annotationType);\n"
@@ -142,11 +318,11 @@
" public boolean isPassivatingScope(Class<? extends Annotation> "
"annotationType);\n"
" public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
-" public boolean isInterceptorBindingType(Class<? extends Annotation> "
+" public boolean isInterceptorBinding(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> getInterceptorBindingDefinition(Class<? extends "
+"Annotation> bindingType);\n"
" public Set<Annotation> getStereotypeDefinition(Class<? extends "
"Annotation> stereotype);\n"
" public Context getContext(Class<? extends Annotation> scopeType);\n"
@@ -160,20 +336,21 @@
msgstr ""
#. Tag: para
-#: extend.xml:71
+#: extend.xml:163
#, no-c-format
msgid ""
-"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+"Any bean or other Java EE component which supports injection can obtain an "
+"instance of <literal>BeanManager</literal> via injection:"
msgstr ""
#. Tag: programlisting
-#: extend.xml:73
+#: extend.xml:166
#, no-c-format
-msgid "@Inject BeanManager beanManager"
+msgid "@Inject BeanManager beanManager;"
msgstr ""
#. Tag: para
-#: extend.xml:75
+#: extend.xml:168
#, no-c-format
msgid ""
"Java EE components may obtain an instance of <literal>BeanManager</literal> "
@@ -183,7 +360,7 @@
msgstr ""
#. Tag: para
-#: extend.xml:81
+#: extend.xml:174
#, no-c-format
msgid ""
"Let's study some of the interfaces exposed by the <literal>BeanManager</"
@@ -191,22 +368,96 @@
msgstr ""
#. Tag: title
-#: extend.xml:86
+#: extend.xml:179
#, no-c-format
+msgid "The <literal>InjectionTarget</literal> interface"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:181
+#, no-c-format
+msgid ""
+"The first thing that a framework developer is going to look for in the "
+"portable extension SPI is a way to inject CDI beans into objects which are "
+"not under the control of CDI. The <literal>InjectionTarget</literal> "
+"interface makes this very easy."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:188
+#, no-c-format
+msgid ""
+"We recommend that frameworks let CDI take over the job of actually "
+"instantiating the framework-controlled objects. That way, the framework-"
+"controlled objects can take advantage of constructor injection. However, if "
+"the framework requires use of a constructor with a special signature, the "
+"framework will need to instatiate the object itself, and so only method and "
+"field injection will be supported."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[//get the BeanManager from JNDI\n"
+"BeanManager beanManager = (BeanManager) new InitialContext().lookup(\"java:"
+"comp/BeanManager\");\n"
+"\n"
+"//CDI uses an AnnotatedType object to read the annotations of a class\n"
+"AnnotatedType<SomeFrameworkComponent> type = beanManager.createAnnotatedType"
+"(SomeFrameworkComponent.class);\n"
+"\n"
+"//The extension uses an InjectionTarget to delegate instantiation, "
+"dependency injection \n"
+"//and lifecycle callbacks to the CDI container\n"
+"InjectionTarget<SomeFrameworkComponent> it = beanManager."
+"createInjectionTarget(type);\n"
+"\n"
+"//each instance needs its own CDI CreationalContext\n"
+"CreationalContext ctx = beanManager.createCreationalContext(null);\n"
+"\n"
+"//instantiate the framework component and inject its dependencies\n"
+"SomeFrameworkComponent instance = it.produce(ctx); //call the constructor\n"
+"it.inject(instance, ctx); //call initializer methods and perform field "
+"injection\n"
+"it.postConstruct(instance); //call the @PostConstruct method\n"
+"\n"
+"...\n"
+"\n"
+"//destroy the framework component instance and clean up dependent objects\n"
+"it.preDestroy(instance); //call the @PreDestroy method\n"
+"it.dispose(instance); //it is now safe to discard the instance\n"
+"ctx.release(); //clean up dependent objects\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:201
+#, no-c-format
msgid "The <literal>Bean</literal> interface"
msgstr ""
#. Tag: para
-#: extend.xml:88
+#: extend.xml:203
#, 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."
+"<literal>BeanManager</literal> object for every bean in the application. "
+"There are even <literal>Bean</literal> objects representing interceptors, "
+"decorators and producer methods."
msgstr ""
+#. Tag: para
+#: extend.xml:210
+#, no-c-format
+msgid ""
+"The <literal>Bean</literal> interface exposes all the interesting things we "
+"dicussed in <xref linkend=\"bean-anatomy\"/>."
+msgstr ""
+
#. Tag: programlisting
-#: extend.xml:94
+#: extend.xml:215
#, no-c-format
msgid ""
"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
@@ -223,35 +474,504 @@
msgstr ""
#. Tag: para
-#: extend.xml:96
+#: extend.xml:217
#, no-c-format
+msgid "There's an easy way to find out what beans exist in the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:221
+#, 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."
+"<![CDATA[Set<Bean<?>> allBeans = beanManager.getBeans(Obect.class, new "
+"AnnotationLiteral<Any>() {});]]>"
msgstr ""
#. Tag: para
-#: extend.xml:104
+#: extend.xml:223
#, no-c-format
msgid ""
-"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
-"specification: <literal>Interceptor</literal> and <literal>Decorator</"
-"literal>."
+"The <literal>Bean</literal> interface makes it possible for a portable "
+"extension 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: title
-#: extend.xml:112
+#: extend.xml:233
#, no-c-format
+msgid "Registering a <literal>Bean</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:235
+#, no-c-format
+msgid ""
+"The most common kind of CDI portable extension registers a bean (or beans) "
+"with the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:239
+#, no-c-format
+msgid ""
+"In this example, we make a framework class, <literal>SecurityManager</"
+"literal> available for injection. To make things a bit more interesting, "
+"we're going to delegate back to the container's <literal>InjectionTarget</"
+"literal> to perform instantiation and injection upon the "
+"<literal>SecurityManager</literal> instance."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:246
+#, no-c-format
+msgid ""
+"<![CDATA[public class SecurityManagerExtension implements Extension {\n"
+" \n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager "
+"bm) {\n"
+" \n"
+" //use this to read annotations of the class\n"
+" AnnotatedType<SecurityManager> at = bm.createAnnotatedType"
+"(SecurityManager.class); \n"
+"\n"
+" //use this to instantiate the class and inject dependencies\n"
+" final InjectionTarget<SecurityManager> it = bm.createInjectionTarget"
+"(at); \n"
+"\n"
+" abd.addBean( new Bean<SecurityManager>() {\n"
+"\n"
+" @Override\n"
+" public Class<?> getBeanClass() {\n"
+" return SecurityManager.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public String getName() {\n"
+" return \"securityManager\";\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getQualifiers() {\n"
+" Set<Annotation> qualifiers = new HashSet<Annotation>();\n"
+" qualifiers.add( new AnnotationLiteral<Default>() {} );\n"
+" qualifiers.add( new AnnotationLiteral<Any>() {} );\n"
+" return qualifiers;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<? extends Annotation> getScope() {\n"
+" return SessionScoped.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Class<? extends Annotation>> getStereotypes() {\n"
+" return Collections.emptySet();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypes() {\n"
+" Set<Type> types = new HashSet<Type>();\n"
+" types.add(SecurityManager.class);\n"
+" types.add(Object.class);\n"
+" return types;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAlternative() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isNullable() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public SecurityManager create(CreationalContext<SecurityManager> "
+"ctx) {\n"
+" SecurityManager instance = it.produce(ctx);\n"
+" it.inject(instance, ctx);\n"
+" it.postConstruct(instance);\n"
+" return instance;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void destroy(SecurityManager instance, \n"
+" CreationalContext<SecurityManager> ctx) {\n"
+" it.preDestroy(instance);\n"
+" it.dispose(instance);\n"
+" ctx.release();\n"
+" }\n"
+" \n"
+" } );\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:248
+#, no-c-format
+msgid ""
+"But a portable extension can also mess with beans that are discovered "
+"automatically by the container."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:255
+#, no-c-format
+msgid "Wrapping an <literal>AnnotatedType</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:257
+#, no-c-format
+msgid ""
+"One of the most interesting things that an extension class can do is process "
+"the annotations of a bean class <emphasis>before</emphasis> the container "
+"builds its metamodel."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:262
+#, no-c-format
+msgid ""
+"Let's start with an example of an extension that provides support for the "
+"use of <literal>@Named</literal> at the package level. The package-level "
+"name is used to qualify the EL names of all beans defined in that package. "
+"The portable extension uses the <literal>ProcessAnnotatedType</literal> "
+"event to wrap the <literal>AnnotatedType</literal> object and override the "
+"<literal>value()</literal> of the <literal>@Named</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[public class QualifiedNameExtension implements Extension {\n"
+"\n"
+" <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) {\n"
+"\n"
+" //wrap this to override the annotations of the class\n"
+" final AnnotatedType<X> at = pat.getAnnotatedType();\n"
+" \n"
+" AnnotatedType<X> wrapped = new AnnotatedType<X>() {\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedConstructor<X>> getConstructors() {\n"
+" return at.getConstructors();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedField<? super X>> getFields() {\n"
+" return at.getFields();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<X> getJavaClass() {\n"
+" return at.getJavaClass();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedMethod<? super X>> getMethods() {\n"
+" return at.getMethods();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public <T extends Annotation> T getAnnotation(final Class<T> "
+"annType) {\n"
+" if ( Named.class.equals(annType) ) {\n"
+" class NamedLiteral \n"
+" extends AnnotationLiteral<Named> \n"
+" implements Named {\n"
+" @Override\n"
+" public String value() {\n"
+" Package pkg = at.getClass().getPackage();\n"
+" String unqualifiedName = at.getAnnotation(Named."
+"class).value();\n"
+" final String qualifiedName;\n"
+" if ( pkg.isAnnotationPresent(Named.class) ) {\n"
+" qualifiedName = pkg.getAnnotation(Named."
+"class).value() \n"
+" + '.' + unqualifiedName;\n"
+" }\n"
+" else {\n"
+" qualifiedName = unqualifiedName;\n"
+" }\n"
+" return qualifiedName;\n"
+" }\n"
+" }\n"
+" return (T) new NamedLiteral();\n"
+" }\n"
+" else {\n"
+" return at.getAnnotation(annType);\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getAnnotations() {\n"
+" return at.getAnnotations();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Type getBaseType() {\n"
+" return at.getBaseType();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypeClosure() {\n"
+" return at.getTypeClosure();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annType) {\n"
+" return at.isAnnotationPresent(annType);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:272
+#, no-c-format
+msgid ""
+"Here's a second example, which adds the <literal>@Alternative</literal> "
+"annotation to any class which implements a certain <literal>Service</"
+"literal> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[class ServiceAlternativeExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" \n"
+" final AnnotatedType<T> type = pat.getAnnotatedType();\n"
+" \n"
+" if ( Service.class.isAssignableFrom( type.getJavaClass() ) ) {\n"
+" \n"
+" //if the class implements Service, make it an @Alternative\n"
+" AnnotatedType<T> wrapped = new AnnotatedType<T>() {\n"
+" \n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annotationType) {\n"
+" return annotationType.equals(Alternative.class) ? \n"
+" true : type.isAnnotationPresent(annotationType);\n"
+" }\n"
+" \n"
+" //remaining methods of AnnotatedType\n"
+" ...\n"
+" }\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:283
+#, no-c-format
+msgid ""
+"The <literal>AnnotatedType</literal> is not the only thing that can be "
+"wrapped by an extension."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:288
+#, no-c-format
+msgid "Wrapping an <literal>InjectionTarget</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:290
+#, no-c-format
+msgid ""
+"The <literal>InjectionTarget</literal> interface exposes operations for "
+"producing and disposing an instance of a component, injecting its "
+"dependencies and invoking its lifecycle callbacks. A portable extension may "
+"wrap the <literal>InjectionTarget</literal> for any Java EE component that "
+"supports injection, allowing it to intercept any of these operations when "
+"they are invoked by the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:297
+#, no-c-format
+msgid ""
+"Here's a CDI portable extension that reads values from properties files and "
+"configures fields of Java EE components, including servlets, EJBs, managed "
+"beans, interceptors and more. In this example, properties for a class such "
+"as <literal>org.mydomain.blog.Blogger</literal> go in a resource named "
+"<literal>org/mydomain/blog/Blogger.properties</literal>, and the name of a "
+"property must match the name of the field to be configured. So "
+"<literal>Blogger.properties</literal> could contain:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:305
+#, no-c-format
+msgid ""
+"firstName=Gavin\n"
+"lastName=King"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:307
+#, no-c-format
+msgid ""
+"The portable extension works by wrapping the containers "
+"<literal>InjectionTarget</literal> and setting field values from the "
+"<literal>inject()</literal> method."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:310
+#, no-c-format
+msgid ""
+"<![CDATA[public class ConfigExtension implements Extension {\n"
+"\n"
+" <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> "
+"pit) {\n"
+" \n"
+" //wrap this to intercept the component lifecycle\n"
+" final InjectionTarget<X> it = pit.getInjectionTarget();\n"
+" \n"
+" final Map<Field, Object> configuredValues = new HashMap<Field, "
+"Object>();\n"
+" \n"
+" //use this to read annotations of the class and its members\n"
+" AnnotatedType<X> at = pit.getAnnotatedType();\n"
+" \n"
+" //read the properties file\n"
+" String propsFileName = at.getClass().getSimpleName() + \".properties"
+"\";\n"
+" InputStream stream = at.getJavaClass().getResourceAsStream"
+"(propsFileName);\n"
+" if (stream!=null) {\n"
+" \n"
+" try {\n"
+" Properties props = new Properties();\n"
+" props.load(stream);\n"
+" for (Map.Entry<Object, Object> property : props.entrySet()) "
+"{\n"
+" String fieldName = property.getKey().toString();\n"
+" Object value = property.getValue();\n"
+" try {\n"
+" Field field = at.getJavaClass().getField"
+"(fieldName);\n"
+" field.setAccessible(true);\n"
+" if ( field.getType().isAssignableFrom( value.getClass"
+"() ) ) {\n"
+" configuredValues.put(field, value);\n"
+" }\n"
+" else {\n"
+" //TODO: do type conversion automatically\n"
+" pit.addDefinitionError( new InjectionException(\n"
+" \"field is not of type String: \" + "
+"field ) );\n"
+" }\n"
+" }\n"
+" catch (NoSuchFieldException nsfe) {\n"
+" pit.addDefinitionError(nsfe);\n"
+" }\n"
+" finally {\n"
+" stream.close();\n"
+" }\n"
+" }\n"
+" }\n"
+" catch (IOException ioe) {\n"
+" pit.addDefinitionError(ioe);\n"
+" }\n"
+" }\n"
+" \n"
+" InjectionTarget<X> wrapped = new InjectionTarget<X>() {\n"
+"\n"
+" @Override\n"
+" public void inject(X instance, CreationalContext<X> ctx) {\n"
+" it.inject(instance, ctx);\n"
+" \n"
+" //set the values onto the new instance of the component\n"
+" for (Map.Entry<Field, Object> configuredValue: "
+"configuredValues.entrySet()) {\n"
+" try {\n"
+" configuredValue.getKey().set(instance, "
+"configuredValue.getValue());\n"
+" }\n"
+" catch (Exception e) {\n"
+" throw new InjectionException(e);\n"
+" }\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void postConstruct(X instance) {\n"
+" it.postConstruct(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void preDestroy(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void dispose(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public X produce(CreationalContext<X> ctx) {\n"
+" return it.produce(ctx);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pit.setInjectionTarget(wrapped);\n"
+" \n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:312
+#, no-c-format
+msgid ""
+"There's a lot more to the portable extension SPI than what we've discussed "
+"here. Check out the CDI spec or Javadoc for more information. For now, we'll "
+"just mention one more extension point."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:320
+#, no-c-format
msgid "The <literal>Context</literal> interface"
msgstr ""
#. Tag: para
-#: extend.xml:114
+#: extend.xml:322
#, no-c-format
msgid ""
"The <literal>Context</literal> interface supports addition of new scopes to "
@@ -259,7 +979,7 @@
msgstr ""
#. Tag: programlisting
-#: extend.xml:119
+#: extend.xml:327
#, no-c-format
msgid ""
"<![CDATA[public interface Context {\n"
@@ -272,7 +992,7 @@
msgstr ""
#. Tag: para
-#: extend.xml:121
+#: extend.xml:329
#, no-c-format
msgid ""
"For example, we might implement <literal>Context</literal> to add a business "
Modified: doc/trunk/reference/pot/extensions.pot
===================================================================
--- doc/trunk/reference/pot/extensions.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/extensions.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -37,61 +37,51 @@
#, 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."
+"of a logger object into any CDI bean. Simply create an injection point of "
+"type <literal>org.slf4j.Logger</literal> and an appropriate logger object "
+"will be injected into any instance of the bean."
msgstr ""
#. Tag: programlisting
-#: extensions.xml:26
+#: extensions.xml:25
#, no-c-format
msgid ""
-"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
-"import org.jboss.weld.log.Log;\n"
+"<![CDATA[import org.slf4j.Logger;\n"
+"import javax.inject.Inject;\n"
"\n"
"public class Checkout {\n"
-" private @Inject @Logger Log log;\n"
+" private @Inject Logger log;\n"
"\n"
" public void invoiceItems() {\n"
" ShoppingCart cart;\n"
" ...\n"
-" log.debug(\"Items invoiced for {0}\", cart);\n"
+" log.debug(\"Items invoiced for {}\", cart);\n"
" }\n"
"}]]>"
msgstr ""
#. Tag: para
-#: extensions.xml:28
+#: 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 "
-"<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."
+"The example shows how objects can be interpolated into a message. If you use "
+"this approach, you do not need to surround a call to the logger with a "
+"condition like <literal>if ( log.isDebugEnabled() )</literal> to avoid "
+"string concatenation."
msgstr ""
#. Tag: para
-#: extensions.xml:41
+#: extensions.xml:34
#, 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 "
+"You can add Weld logging 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:46
+#: extensions.xml:39
#, no-c-format
msgid ""
"If you are using Weld as your JSR-299 implementation, there's no need to "
Modified: doc/trunk/reference/pot/gettingstarted.pot
===================================================================
--- doc/trunk/reference/pot/gettingstarted.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/gettingstarted.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -154,9 +154,9 @@
#: gettingstarted.xml:83
#, no-c-format
msgid ""
-"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"To deploy the examples to JBoss AS, you'll need <ulink url=\"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="
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink url="
"\"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 "
@@ -190,7 +190,7 @@
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."
+"<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:"
@@ -265,7 +265,7 @@
#, no-c-format
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 "
+"<ulink url=\"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 ""
@@ -276,7 +276,7 @@
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>."
msgstr ""
@@ -358,7 +358,7 @@
#, 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/"
+"bored, read the log messages), and visit <ulink url=\"http://localhost:8080/"
"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
"pseudo-translating."
msgstr ""
@@ -391,10 +391,10 @@
#: gettingstarted.xml:221
#, no-c-format
msgid ""
-"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"To deploy the examples to GlassFish, you'll need the final <ulink url="
"\"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/"
+"download a <ulink url=\"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, "
@@ -455,7 +455,7 @@
#: gettingstarted.xml:255
#, no-c-format
msgid ""
-"You deploy applications to GlassFish using the <ulink src=\"http://"
+"You deploy applications to GlassFish using the <ulink url=\"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 "
@@ -473,14 +473,14 @@
#, no-c-format
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 "
+"URL <ulink url=\"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://"
+"start it. You can see the examples running at either <ulink url=\"http://"
"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
-"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"ulink> or <ulink url=\"http://localhost:7070/weld-translator\">http://"
"localhost:7070/weld-translator</ulink>, depending on which example you "
"deployed."
msgstr ""
@@ -525,7 +525,7 @@
#, 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."
+"need to download Tomcat 6.0.18 or later from <ulink url=\"http://tomcat."
"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
msgstr ""
@@ -661,7 +661,7 @@
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>!"
msgstr ""
@@ -848,7 +848,7 @@
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://"
+"URL: <ulink url=\"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 ""
@@ -928,7 +928,7 @@
"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"
+"application at the following local URL: <ulink url=\"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 ""
Modified: doc/trunk/reference/pot/injection.pot
===================================================================
--- doc/trunk/reference/pot/injection.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/injection.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -454,13 +454,54 @@
#. Tag: title
#: injection.xml:216
#, no-c-format
-msgid "Qualifiers with members"
+msgid ""
+"The built-in qualifiers <literal>@Default</literal> and <literal>@Any</"
+"literal>"
msgstr ""
#. Tag: para
#: injection.xml:218
#, no-c-format
msgid ""
+"Whenever a bean or injection point does not explicitly declare a qualifier, "
+"the container assumes the qualifier <literal>@Default</literal>. From time "
+"to time, you'll need to decare an injection point without specifying a "
+"qualifier. There's a qualifier for that too. All beans have the qualifier "
+"<literal>@Any</literal>. Therefore, by explicitly specifying <literal>@Any</"
+"literal> at an injection point, you suppress the default qualifier, without "
+"otherwise restricting the beans that are eligible for injection."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:225
+#, no-c-format
+msgid ""
+"This is especially useful if you want to iterate over all beans with a "
+"certain bean type. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:226
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject \n"
+"void initServices(@Any Instance<Service> services) { \n"
+" for (Service service: services) {\n"
+" service.init();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: injection.xml:232
+#, no-c-format
+msgid "Qualifiers with members"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:234
+#, no-c-format
+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 "
@@ -469,7 +510,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:224
+#: injection.xml:240
#, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -481,29 +522,29 @@
msgstr ""
#. Tag: para
-#: injection.xml:226
+#: injection.xml:242
#, no-c-format
msgid ""
"Then we select one of the possible member values when appling the qualifier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:230
+#: injection.xml:246
#, no-c-format
msgid ""
"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
msgstr ""
#. Tag: para
-#: injection.xml:232
+#: injection.xml:248
#, no-c-format
msgid ""
"We can force the container to ignore a member of a qualifier type by "
-"annotating the member <literal>@NonBinding</literal>."
+"annotating the member <literal>@Nonbinding</literal>."
msgstr ""
#. Tag: programlisting
-#: injection.xml:237
+#: injection.xml:253
#, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -511,24 +552,24 @@
"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
"public @interface PayBy {\n"
" PaymentMethod value();\n"
-" @NonBinding String comment() default \"\";\n"
+" @Nonbinding String comment() default \"\";\n"
"}]]>"
msgstr ""
#. Tag: title
-#: injection.xml:242
+#: injection.xml:258
#, no-c-format
msgid "Multiple qualifiers"
msgstr ""
#. Tag: para
-#: injection.xml:244
+#: injection.xml:260
#, no-c-format
msgid "An injection point may specify multiple qualifiers:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:248
+#: injection.xml:264
#, no-c-format
msgid ""
"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
@@ -536,7 +577,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:250
+#: injection.xml:266
#, no-c-format
msgid ""
"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
@@ -544,7 +585,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:255
+#: injection.xml:271
#, no-c-format
msgid ""
"<![CDATA[@Synchronous @Reliable\n"
@@ -555,13 +596,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:260
+#: injection.xml:276
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: injection.xml:262
+#: injection.xml:278
#, no-c-format
msgid ""
"Alternatives are beans whose implementation is specific to a particular "
@@ -571,7 +612,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:266
+#: injection.xml:282
#, no-c-format
msgid ""
"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
@@ -581,7 +622,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:268
+#: injection.xml:284
#, no-c-format
msgid ""
"By default, <literal>@Alternative</literal> beans are disabled. We need to "
@@ -591,7 +632,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:274
+#: injection.xml:290
#, no-c-format
msgid ""
"<![CDATA[<beans\n"
@@ -607,7 +648,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:276
+#: injection.xml:292
#, no-c-format
msgid ""
"When an ambiguous dependency exists at an injection point, the container "
@@ -617,13 +658,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:285
+#: injection.xml:301
#, no-c-format
msgid "Fixing unsatisfied and ambiguous dependencies"
msgstr ""
#. Tag: para
-#: injection.xml:287
+#: injection.xml:303
#, no-c-format
msgid ""
"The typesafe resolution algorithm fails when, after considering the "
@@ -635,7 +676,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:294
+#: injection.xml:310
#, no-c-format
msgid ""
"During the course of your development, you're going to encounter this "
@@ -643,13 +684,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:298
+#: injection.xml:314
#, no-c-format
msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:304
+#: injection.xml:320
#, no-c-format
msgid ""
"create a bean which implements the bean type and has all the qualifier types "
@@ -657,7 +698,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:309
+#: injection.xml:325
#, no-c-format
msgid ""
"make sure that the bean you already have is in the classpath of the module "
@@ -665,7 +706,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:314
+#: injection.xml:330
#, no-c-format
msgid ""
"explicitly enable an <literal>@Alternative</literal> bean that implements "
@@ -674,13 +715,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:321
+#: injection.xml:337
#, no-c-format
msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:327
+#: injection.xml:343
#, no-c-format
msgid ""
"introduce a qualifier to distinguish between the two implementations of the "
@@ -688,14 +729,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:332
+#: injection.xml:348
#, no-c-format
msgid ""
"disable one of the beans by annotating it <literal>@Alternative</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:337
+#: injection.xml:353
#, no-c-format
msgid ""
"move one of the implementations to a module that is not in the classpath of "
@@ -703,7 +744,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:343
+#: injection.xml:359
#, no-c-format
msgid ""
"disable one of two <literal>@Alternative</literal> beans that are trying to "
@@ -711,10 +752,10 @@
msgstr ""
#. Tag: para
-#: injection.xml:350
+#: injection.xml:366
#, no-c-format
msgid ""
-"See <ulink src=\"http://sfwk.org/Documentation/"
+"See <ulink url=\"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 "
@@ -722,13 +763,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:358
+#: injection.xml:374
#, no-c-format
msgid "Just remember: \"There can be only one.\""
msgstr ""
#. Tag: para
-#: injection.xml:361
+#: injection.xml:377
#, no-c-format
msgid ""
"On the other hand, if you really do have an optional or multivalued "
@@ -737,7 +778,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:366
+#: injection.xml:382
#, no-c-format
msgid ""
"Now there's one more issue you need to be aware of when using the dependency "
@@ -745,13 +786,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:373
+#: injection.xml:389
#, no-c-format
msgid "Client proxies"
msgstr ""
#. Tag: para
-#: injection.xml:375
+#: injection.xml:391
#, no-c-format
msgid ""
"Clients of an injected bean do not usually hold a direct reference to a bean "
@@ -760,7 +801,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:380
+#: injection.xml:396
#, no-c-format
msgid ""
"Imagine that a bean bound to the application scope held a direct reference "
@@ -770,7 +811,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:386
+#: injection.xml:402
#, no-c-format
msgid ""
"Now imagine that a bean bound to the session scope holds a direct reference "
@@ -782,7 +823,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:393
+#: injection.xml:409
#, no-c-format
msgid ""
"Therefore, unless a bean has the default scope <literal>@Dependent</"
@@ -796,7 +837,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:401
+#: injection.xml:417
#, no-c-format
msgid ""
"Unfortunately, due to limitations of the Java language, some Java types "
@@ -807,20 +848,20 @@
msgstr ""
#. Tag: para
-#: injection.xml:407
+#: injection.xml:423
#, no-c-format
msgid "The following Java types cannot be proxied by the container:"
msgstr ""
#. Tag: para
-#: injection.xml:411
+#: injection.xml:427
#, no-c-format
msgid ""
"classes which don't have a non-private constructor with no parameters, and"
msgstr ""
#. Tag: para
-#: injection.xml:414
+#: injection.xml:430
#, no-c-format
msgid ""
"classes which are declared <literal>final</literal> or have a "
@@ -828,23 +869,52 @@
msgstr ""
#. Tag: para
-#: injection.xml:419
+#: injection.xml:435
#, no-c-format
msgid "arrays and primitive types."
msgstr ""
#. Tag: para
-#: injection.xml:423
+#: injection.xml:439
#, 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 "
+"It's usually very easy to fix an unproxyable dependency problem. If an "
+"injection point of type <literal>X</literal> results in an unproxyable "
+"dependency, simply:"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:446
+#, no-c-format
+msgid "add a constructor with no parameters to <literal>X</literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:451
+#, no-c-format
+msgid ""
+"change the type of the injection point to <literal>Instance<X></"
+"literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:456
+#, no-c-format
+msgid ""
+"introduce an interface <literal>Y</literal>, implemented by the injected "
+"bean, and change the type of the injection point to <literal>Y</literal>, or"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:462
+#, no-c-format
+msgid ""
+"if all else fails, change the scope of the injected bean to "
"<literal>@Dependent</literal>."
msgstr ""
#. Tag: para
-#: injection.xml:430
+#: injection.xml:469
#, no-c-format
msgid ""
"A future release of Weld will likely support a non-standard workaround for "
@@ -852,7 +922,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:437
+#: injection.xml:476
#, no-c-format
msgid ""
"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
@@ -860,7 +930,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:442
+#: injection.xml:481
#, no-c-format
msgid ""
"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
@@ -868,19 +938,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:448
+#: injection.xml:487
#, no-c-format
msgid "But we didn't get around to implementing this yet."
msgstr ""
#. Tag: title
-#: injection.xml:457
+#: injection.xml:496
#, no-c-format
msgid "Obtaining a contextual instance by programmatic lookup"
msgstr ""
#. Tag: para
-#: injection.xml:459
+#: injection.xml:498
#, no-c-format
msgid ""
"In certain situations, injection is not the most convenient way to obtain a "
@@ -888,13 +958,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:466
+#: injection.xml:505
#, no-c-format
msgid "the bean type or qualifiers vary dynamically at runtime, or"
msgstr ""
#. Tag: para
-#: injection.xml:471
+#: injection.xml:510
#, no-c-format
msgid ""
"depending upon the deployment, there may be no bean which satisfies the type "
@@ -902,13 +972,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:476
+#: injection.xml:515
#, no-c-format
msgid "we would like to iterate over all beans of a certain type."
msgstr ""
#. Tag: para
-#: injection.xml:482
+#: injection.xml:521
#, no-c-format
msgid ""
"In these situations, the application may obtain an instance of the interface "
@@ -916,13 +986,13 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:487
+#: injection.xml:526
#, no-c-format
msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr ""
#. Tag: para
-#: injection.xml:489
+#: injection.xml:528
#, no-c-format
msgid ""
"The <literal>get()</literal> method of <literal>Instance</literal> produces "
@@ -930,25 +1000,25 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:493
+#: injection.xml:532
#, no-c-format
msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
msgstr ""
#. Tag: para
-#: injection.xml:495
+#: injection.xml:534
#, no-c-format
msgid "Qualifiers can be specified in one of two ways:"
msgstr ""
#. Tag: para
-#: injection.xml:501
+#: injection.xml:540
#, no-c-format
msgid "by annotating the <literal>Instance</literal> injection point, or"
msgstr ""
#. Tag: para
-#: injection.xml:504
+#: injection.xml:543
#, no-c-format
msgid ""
"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
@@ -956,13 +1026,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:508
+#: injection.xml:547
#, no-c-format
msgid "Specifying the qualifiers at the injection point is much, much easier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:512
+#: injection.xml:551
#, no-c-format
msgid ""
"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
@@ -970,7 +1040,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:514
+#: injection.xml:553
#, no-c-format
msgid ""
"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
@@ -978,7 +1048,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:519
+#: injection.xml:558
#, no-c-format
msgid ""
"Alternatively, we can specify the qualifier dynamically. First, we add the "
@@ -987,14 +1057,14 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:524
+#: injection.xml:563
#, no-c-format
msgid ""
"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr ""
#. Tag: para
-#: injection.xml:526
+#: injection.xml:565
#, no-c-format
msgid ""
"Next, we need to obtain an instance of our qualifier type. Since annotatons "
@@ -1005,7 +1075,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:533
+#: injection.xml:572
#, no-c-format
msgid ""
"<![CDATA[abstract class AsynchronousQualifier\n"
@@ -1013,13 +1083,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:535
+#: injection.xml:574
#, no-c-format
msgid "In some cases, we can use an anonymous class:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:539
+#: injection.xml:578
#, no-c-format
msgid ""
"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
@@ -1027,14 +1097,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:542
+#: injection.xml:581
#, no-c-format
msgid ""
"We can't use an anonymous class to implement a qualifier type with members."
msgstr ""
#. Tag: para
-#: injection.xml:547
+#: injection.xml:586
#, no-c-format
msgid ""
"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
@@ -1042,7 +1112,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:551
+#: injection.xml:590
#, no-c-format
msgid ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
@@ -1052,13 +1122,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:556
+#: injection.xml:595
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
msgstr ""
#. Tag: para
-#: injection.xml:558
+#: injection.xml:597
#, no-c-format
msgid ""
"There are certain kinds of dependent objects (beans with scope "
@@ -1068,7 +1138,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:564
+#: injection.xml:603
#, no-c-format
msgid ""
"The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1076,7 +1146,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:568
+#: injection.xml:607
#, no-c-format
msgid ""
"Injection of a HTTP parameter or header value depends upon what parameter or "
@@ -1084,7 +1154,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:572
+#: injection.xml:611
#, no-c-format
msgid ""
"Injection of the result of an EL expression evaluation depends upon the "
@@ -1092,7 +1162,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:577
+#: injection.xml:616
#, no-c-format
msgid ""
"A bean with scope <literal>@Dependent</literal> may inject an instance of "
@@ -1101,7 +1171,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:581
+#: injection.xml:620
#, no-c-format
msgid ""
"Let's look at an example. The following code is verbose, and vulnerable to "
@@ -1109,13 +1179,13 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:584
+#: injection.xml:623
#, no-c-format
msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
msgstr ""
#. Tag: para
-#: injection.xml:586
+#: injection.xml:625
#, no-c-format
msgid ""
"This clever little producer method lets you inject a JDK <literal>Logger</"
@@ -1123,7 +1193,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:589
+#: injection.xml:628
#, no-c-format
msgid ""
"<![CDATA[class LogFactory {\n"
@@ -1137,19 +1207,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:591
+#: injection.xml:630
#, no-c-format
msgid "We can now write:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:593
+#: injection.xml:632
#, no-c-format
msgid "<![CDATA[@Inject Logger log;]]>"
msgstr ""
#. Tag: para
-#: injection.xml:595
+#: injection.xml:634
#, no-c-format
msgid ""
"Not convinced? Then here's a second example. To inject HTTP parameters, we "
@@ -1157,25 +1227,25 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:598
+#: injection.xml:637
#, no-c-format
msgid ""
"<![CDATA[@BindingType\n"
"@Retention(RUNTIME)\n"
"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
"public @interface HttpParam {\n"
-" @NonBinding public String value();\n"
+" @Nonbinding public String value();\n"
"}]]>"
msgstr ""
#. Tag: para
-#: injection.xml:600
+#: injection.xml:639
#, no-c-format
msgid "We would use this qualifier type at injection points as follows:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:602
+#: injection.xml:641
#, no-c-format
msgid ""
"<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1183,37 +1253,37 @@
msgstr ""
#. Tag: para
-#: injection.xml:604
+#: injection.xml:643
#, no-c-format
msgid "The following producer method does the work:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:606
+#: injection.xml:645
#, 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.getAnnotated().getAnnotation(HttpParam."
+"class).value());\n"
" }\n"
"\n"
"}]]>"
msgstr ""
#. Tag: para
-#: injection.xml:608
+#: injection.xml:647
#, 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>)"
+"<literal>@Nonbinding.</literal>)"
msgstr ""
#. Tag: para
-#: injection.xml:611
+#: injection.xml:650
#, no-c-format
msgid ""
"The container provides a built-in bean that implements the "
@@ -1221,14 +1291,16 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:614
+#: injection.xml:653
#, no-c-format
msgid ""
"<![CDATA[public interface InjectionPoint { \n"
-" public Object getInstance(); \n"
-" public Bean<?> getBean(); \n"
-" public Member getMember(): \n"
-" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
-" public Set<T extends Annotation> getAnnotations(); \n"
+" public Type getType();\n"
+" public Set<Annotation> getQualifiers();\n"
+" public Bean<?> getBean();\n"
+" public Member getMember();\n"
+" public Annotated getAnnotated();\n"
+" public boolean isDelegate();\n"
+" public boolean isTransient();\n"
"}]]>"
msgstr ""
Modified: doc/trunk/reference/pot/interceptors.pot
===================================================================
--- doc/trunk/reference/pot/interceptors.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/interceptors.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -392,7 +392,7 @@
"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:"
+"We can use the <literal>@Nonbinding</literal> annotation:"
msgstr ""
#. Tag: programlisting
@@ -403,7 +403,7 @@
"@Target({METHOD, TYPE})\n"
"@Retention(RUNTIME)\n"
"public @interface Secure {\n"
-" @NonBinding String[] rolesAllowed() default {};\n"
+" @Nonbinding String[] rolesAllowed() default {};\n"
"}]]>"
msgstr ""
Modified: doc/trunk/reference/pot/intro.pot
===================================================================
--- doc/trunk/reference/pot/intro.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/intro.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/master.pot
===================================================================
--- doc/trunk/reference/pot/master.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/master.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/next.pot
===================================================================
--- doc/trunk/reference/pot/next.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/next.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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,10 +26,10 @@
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 "
+"remains the authority for information on CDI. The spec is 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-"
+"is available on the <ulink url=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
"299 page</ulink> at the JCP website."
msgstr ""
@@ -37,9 +37,9 @@
#: next.xml:14
#, no-c-format
msgid ""
-"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"The CDI reference implementation, Weld, is being developed at the <ulink url="
"\"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."
+"team and the CDI spec lead blog at <ulink url=\"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 "
@@ -50,9 +50,9 @@
#: next.xml:22
#, no-c-format
msgid ""
-"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"We encourage you to follow the <ulink url=\"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 url=\"http://seamframework.org/Weld/Development\">development</"
"ulink>. If you are reading this guide, you likely have something to offer."
msgstr ""
@@ -69,7 +69,7 @@
#: next.xml:35
#, no-c-format
msgid ""
-"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"Checkout source from <ulink url=\"http://anonsvn.jboss.org/repos/weld/doc/"
"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
"ulink> using SVN"
msgstr ""
@@ -86,8 +86,9 @@
#: 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)."
+"Edit the <literal>pom.xml</literal> file in the root of the checkout and "
+"remove the \"<literal>-SNAPSHOT</literal>\" from the version element (so you "
+"don't have to build other Weld modules)."
msgstr ""
#. Tag: para
@@ -115,7 +116,8 @@
#, 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"
+"You can find the HTML version in <literal>target/docbook/publish/en-US/html</"
+"literal>."
msgstr ""
#. Tag: para
Modified: doc/trunk/reference/pot/part1.pot
===================================================================
--- doc/trunk/reference/pot/part1.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/part1.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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,7 +18,7 @@
#: part1.xml:14
#, no-c-format
msgid ""
-"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"The <ulink url=\"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 "
@@ -303,7 +303,7 @@
#: part1.xml:197
#, no-c-format
msgid ""
-"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"Finally, CDI is a <ulink url=\"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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/part2.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/part3.pot
===================================================================
--- doc/trunk/reference/pot/part3.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/part3.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/part4.pot
===================================================================
--- doc/trunk/reference/pot/part4.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/part4.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/part5.pot
===================================================================
--- doc/trunk/reference/pot/part5.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/part5.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/producermethods.pot
===================================================================
--- doc/trunk/reference/pot/producermethods.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/producermethods.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -190,14 +190,27 @@
"producer method won't be called again in the same session."
msgstr ""
+#. Tag: para
+#: producermethods.xml:95
+#, no-c-format
+msgid ""
+"A producer method does <emphasis>not</emphasis> inherit the scope of the "
+"bean that declares the method. There are two different beans here: the "
+"producer method, and the bean which declares it. The scope of the producer "
+"method determines how often the method will be called, and the lifecycle of "
+"the objects returned by the method. The scope of the bean that declares the "
+"producer method determines the lifecycle of the object upon which the "
+"producer method is invoked."
+msgstr ""
+
#. Tag: title
-#: producermethods.xml:97
+#: producermethods.xml:107
#, no-c-format
msgid "Injection into producer methods"
msgstr ""
#. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:109
#, no-c-format
msgid ""
"There's one potential problem with the code above. The implementations of "
@@ -208,7 +221,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:106
+#: producermethods.xml:116
#, no-c-format
msgid ""
"If this isn't what we want, we can use dependency injection into the "
@@ -216,7 +229,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:111
+#: producermethods.xml:121
#, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -233,7 +246,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:123
#, no-c-format
msgid ""
"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
@@ -247,7 +260,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:122
+#: producermethods.xml:132
#, no-c-format
msgid ""
"There's at least three ways we could go about fixing this bug. We could "
@@ -258,7 +271,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:129
+#: producermethods.xml:139
#, no-c-format
msgid ""
"But a more common solution is to use the special <literal>@New</literal> "
@@ -266,19 +279,19 @@
msgstr ""
#. Tag: title
-#: producermethods.xml:134
+#: producermethods.xml:144
#, no-c-format
msgid "Use of <literal>@New</literal> with producer methods"
msgstr ""
#. Tag: para
-#: producermethods.xml:136
+#: producermethods.xml:146
#, no-c-format
msgid "Consider the following producer method:"
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:138
+#: producermethods.xml:148
#, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -297,7 +310,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:140
+#: producermethods.xml:150
#, no-c-format
msgid ""
"Then a new <emphasis>dependent</emphasis> instance of "
@@ -309,13 +322,13 @@
msgstr ""
#. Tag: title
-#: producermethods.xml:150
+#: producermethods.xml:160
#, no-c-format
msgid "Disposer methods"
msgstr ""
#. Tag: para
-#: producermethods.xml:152
+#: producermethods.xml:162
#, no-c-format
msgid ""
"Some producer methods return objects that require explicit destruction. For "
@@ -323,7 +336,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:157
+#: producermethods.xml:167
#, no-c-format
msgid ""
"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
@@ -332,7 +345,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:159
+#: producermethods.xml:169
#, no-c-format
msgid ""
"Destruction can be performed by a matching <emphasis>disposer method</"
@@ -340,7 +353,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:162
+#: producermethods.xml:172
#, no-c-format
msgid ""
"<![CDATA[void close(@Disposes Connection connection) {\n"
@@ -349,7 +362,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:164
+#: producermethods.xml:174
#, no-c-format
msgid ""
"The disposer method must have at least one parameter, annotated "
Modified: doc/trunk/reference/pot/resources.pot
===================================================================
--- doc/trunk/reference/pot/resources.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/resources.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -67,6 +67,45 @@
#: resources.xml:33
#, no-c-format
msgid ""
+"The CDI specification uses the term <emphasis>resource</emphasis> to refer, "
+"generically, to any of the following kinds of object which might be "
+"available in the Java EE component environment:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:38
+#, no-c-format
+msgid ""
+"JDBC <literal>Datasource</literal>s, JMS <literal>Queue</literal>s, "
+"<literal>Topic</literal>s and <literal>ConnectionFactory</literal>s, "
+"JavaMail <literal>Session</literal>s and other transactional resources "
+"including JCA connectors,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"JPA <literal>EntityManager</literal>s and <literal>EntityManagerFactory</"
+"literal>s,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:46
+#, no-c-format
+msgid "remote EJBs, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid "web services"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:53
+#, 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>, "
@@ -74,7 +113,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:37
+#: resources.xml:57
#, no-c-format
msgid ""
"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
@@ -82,7 +121,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:39
+#: resources.xml:59
#, no-c-format
msgid ""
"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
@@ -91,7 +130,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:41
+#: resources.xml:61
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
@@ -99,7 +138,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:43
+#: resources.xml:63
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
@@ -107,7 +146,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:45
+#: resources.xml:65
#, no-c-format
msgid ""
"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
@@ -115,47 +154,69 @@
msgstr ""
#. Tag: para
-#: resources.xml:47
+#: resources.xml:67
#, no-c-format
msgid "The field may be static (but not final)."
msgstr ""
#. Tag: para
-#: resources.xml:49
+#: resources.xml:69
#, no-c-format
+msgid "A resource declaration really contains two pieces of information:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:73
+#, no-c-format
msgid ""
+"the JNDI name, EJB link, persistence unit name, or other metadata needed to "
+"obtain a reference to the resource from the component environment, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:77
+#, no-c-format
+msgid ""
+"the type and qualifiers that we will use to inject the reference into our "
+"beans."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:82
+#, 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</"
+"sense to declare your resources in a class annotated <literal>@Alternative</"
"literal>."
msgstr ""
#. Tag: title
-#: resources.xml:56
+#: resources.xml:90
#, no-c-format
msgid "Typesafe resource injection"
msgstr ""
#. Tag: para
-#: resources.xml:58
+#: resources.xml:92
#, no-c-format
msgid "These resources can now be injected in the usual way."
msgstr ""
#. Tag: programlisting
-#: resources.xml:62
+#: resources.xml:96
#, no-c-format
msgid "<![CDATA[@Inject Catalog catalog;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:63
+#: resources.xml:97
#, no-c-format
msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:64
+#: resources.xml:98
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManager "
@@ -163,7 +224,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:65
+#: resources.xml:99
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
@@ -171,13 +232,13 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:66
+#: resources.xml:100
#, no-c-format
msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
msgstr ""
#. Tag: para
-#: resources.xml:68
+#: resources.xml:102
#, no-c-format
msgid ""
"The bean type and qualifiers of the resource are determined by the producer "
@@ -185,7 +246,7 @@
msgstr ""
#. Tag: para
-#: resources.xml:72
+#: resources.xml:106
#, no-c-format
msgid ""
"It might seem like a pain to have to write these extra producer field "
@@ -197,25 +258,25 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:79
+#: resources.xml:113
#, no-c-format
msgid "@Inject @CustomerDatabase EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:81
+#: resources.xml:115
#, no-c-format
msgid "instead of"
msgstr ""
#. Tag: programlisting
-#: resources.xml:83
+#: resources.xml:117
#, no-c-format
msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:85
+#: resources.xml:119
#, no-c-format
msgid "all over the place?"
msgstr ""
Modified: doc/trunk/reference/pot/ri-spi.pot
===================================================================
--- doc/trunk/reference/pot/ri-spi.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/ri-spi.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -785,6 +785,15 @@
#: ri-spi.xml:497
#, no-c-format
msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.ConversationAwareViewHandler</literal> as a "
+"delegating view handler."
+msgstr ""
+
+#. Tag: para
+#: ri-spi.xml:502
+#, 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."
"wrapExpressionFactory()</literal>, passing <literal>Application."
@@ -794,7 +803,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:504
+#: ri-spi.xml:509
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -804,7 +813,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:511 ri-spi.xml:557
+#: ri-spi.xml:516 ri-spi.xml:562
#, no-c-format
msgid ""
"There are a number of ways you can obtain the bean manager for the module. "
@@ -814,7 +823,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:518
+#: ri-spi.xml:523
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must register "
@@ -825,19 +834,19 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:526
+#: ri-spi.xml:531
#, no-c-format
msgid "Weld only supports JSF 1.2 and above."
msgstr ""
#. Tag: term
-#: ri-spi.xml:533
+#: ri-spi.xml:538
#, no-c-format
msgid "<term>JSP</term>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:538
+#: ri-spi.xml:543
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must register "
@@ -846,7 +855,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:543
+#: ri-spi.xml:548
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -857,7 +866,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:550
+#: ri-spi.xml:555
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -867,13 +876,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:567
+#: ri-spi.xml:572
#, no-c-format
msgid "Session Bean Interceptor"
msgstr ""
#. Tag: para
-#: ri-spi.xml:571
+#: ri-spi.xml:576
#, no-c-format
msgid ""
"If you are integrating Weld into an EJB environment you must register "
@@ -884,7 +893,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:578
+#: ri-spi.xml:583
#, no-c-format
msgid ""
"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -892,13 +901,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:586
+#: ri-spi.xml:591
#, no-c-format
msgid "The <literal>weld-core.jar</literal>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:590
+#: ri-spi.xml:595
#, no-c-format
msgid ""
"Weld can reside on an isolated classloader, or on a shared classloader. If "
@@ -910,7 +919,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:596
+#: ri-spi.xml:601
#, no-c-format
msgid ""
"You can provide your own implementation of <literal>Singleton</literal> and "
@@ -919,7 +928,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:601
+#: ri-spi.xml:606
#, no-c-format
msgid ""
"Weld also provides an implementation of Thread Context Classloader per "
@@ -927,13 +936,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:608
+#: ri-spi.xml:613
#, no-c-format
msgid "Binding the manager in JNDI"
msgstr ""
#. Tag: para
-#: ri-spi.xml:612
+#: ri-spi.xml:617
#, no-c-format
msgid ""
"You should bind the bean manager for the bean deployment archive into JNDI "
@@ -944,13 +953,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:622
+#: ri-spi.xml:627
#, no-c-format
msgid "Performing CDI injection on Java EE component classes"
msgstr ""
#. Tag: para
-#: ri-spi.xml:626
+#: ri-spi.xml:631
#, no-c-format
msgid ""
"The CDI specification requires the container to provide injection into non-"
@@ -962,7 +971,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:634
+#: ri-spi.xml:639
#, no-c-format
msgid ""
"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
@@ -973,7 +982,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:641
+#: ri-spi.xml:646
#, no-c-format
msgid ""
"To help the integrator, Weld provides <literal>WeldManager."
@@ -982,7 +991,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:646
+#: ri-spi.xml:651
#, no-c-format
msgid ""
"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
@@ -1010,7 +1019,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:647
+#: ri-spi.xml:652
#, no-c-format
msgid ""
"The container may intersperse other operations between these calls. Further, "
@@ -1019,7 +1028,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:651
+#: ri-spi.xml:656
#, no-c-format
msgid ""
"When performing injections on EJBs you must use the Weld-defined SPI, "
@@ -1029,7 +1038,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:656
+#: ri-spi.xml:661
#, no-c-format
msgid ""
"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
Modified: doc/trunk/reference/pot/scopescontexts.pot
===================================================================
--- doc/trunk/reference/pot/scopescontexts.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/scopescontexts.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -65,18 +65,23 @@
#: 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."
+"JPA entities aren't a great fit for this model. Entities have their whole "
+"own lifecycle and identity model which just doesn't map naturally to the "
+"model used in CDI. Therefore, we recommend against treating entities as CDI "
+"beans. You're certainly going to run into problems if you try to give an "
+"entity a scope other than the default scope <literal>@Dependent</literal>. "
+"The client proxy will get in the way if you try to pass an injected instance "
+"to the JPA <literal>EntityManager</literal>."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:41
+#: scopescontexts.xml:45
#, no-c-format
msgid "Scope types"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:43
+#: scopescontexts.xml:47
#, no-c-format
msgid ""
"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
@@ -84,7 +89,7 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:48
+#: scopescontexts.xml:52
#, no-c-format
msgid ""
"<![CDATA[@ScopeType\n"
@@ -94,7 +99,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:50
+#: scopescontexts.xml:54
#, no-c-format
msgid ""
"Of course, that's the easy part of the job. For this scope type to be "
@@ -106,7 +111,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:57
+#: scopescontexts.xml:61
#, no-c-format
msgid ""
"We can apply a scope type annotation to a bean implementation class to "
@@ -114,7 +119,7 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:61
+#: scopescontexts.xml:65
#, no-c-format
msgid ""
"<![CDATA[@ClusterScoped\n"
@@ -122,55 +127,55 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:63
+#: scopescontexts.xml:67
#, no-c-format
msgid "Usually, you'll use one of CDI's built-in scopes."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:68
+#: scopescontexts.xml:72
#, no-c-format
msgid "Built-in scopes"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:70
+#: scopescontexts.xml:74
#, no-c-format
msgid "CDI defines four built-in scopes:"
msgstr ""
#. Tag: literal
-#: scopescontexts.xml:74
+#: scopescontexts.xml:78
#, no-c-format
msgid "@RequestScoped"
msgstr ""
#. Tag: literal
-#: scopescontexts.xml:77
+#: scopescontexts.xml:81
#, no-c-format
msgid "@SessionScoped"
msgstr ""
#. Tag: literal
-#: scopescontexts.xml:80
+#: scopescontexts.xml:84
#, no-c-format
msgid "@ApplicationScoped"
msgstr ""
#. Tag: literal
-#: scopescontexts.xml:83
+#: scopescontexts.xml:87
#, no-c-format
msgid "@ConversationScoped"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:87
+#: scopescontexts.xml:91
#, no-c-format
msgid "For a web application that uses CDI:"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:91
+#: scopescontexts.xml:95
#, no-c-format
msgid ""
"any servlet request has access to active request, session and application "
@@ -178,51 +183,63 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:96
+#: scopescontexts.xml:100
#, no-c-format
msgid "any JSF request has access to an active conversation scope."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:105
#, no-c-format
msgid ""
-"A CDI extension can support the conversation scope for other frameworks as "
-"well."
+"A CDI extension can implement support for the conversation scope in other "
+"web frameworks."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:108
#, no-c-format
msgid "The request and application scopes are also active:"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:108
+#: scopescontexts.xml:112
#, no-c-format
msgid "during invocations of EJB remote methods,"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:115
#, no-c-format
+msgid "during invocations of EJB asynchronous methods,"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:118
+#, no-c-format
msgid "during EJB timeouts,"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:114
+#: scopescontexts.xml:121
#, no-c-format
-msgid "during message delivery to a message-driven bean, and"
+msgid "during message delivery to a message-driven bean,"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:117
+#: scopescontexts.xml:124
#, no-c-format
+msgid "during message delivery to a <literal>MessageListener</literal>, and"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:127
+#, no-c-format
msgid "during web service invocations."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:121
+#: scopescontexts.xml:131
#, no-c-format
msgid ""
"If the application tries to invoke a bean with a scope that does not have an "
@@ -231,22 +248,31 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:126
+#: scopescontexts.xml:136
#, no-c-format
msgid ""
+"Managed beans with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal> must be serializable, since the "
+"container passivates the HTTP session from time to time."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:141
+#, no-c-format
+msgid ""
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:134
+#: scopescontexts.xml:149
#, no-c-format
msgid "The conversation scope"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:136
+#: scopescontexts.xml:151
#, no-c-format
msgid ""
"The conversation scope is a bit like the traditional session scope in that "
@@ -256,13 +282,13 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:144
+#: scopescontexts.xml:159
#, no-c-format
msgid "is demarcated explicitly by the application, and"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:147
+#: scopescontexts.xml:162
#, no-c-format
msgid ""
"holds state associated with a particular web browser tab in a JSF "
@@ -271,7 +297,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:154
+#: scopescontexts.xml:169
#, no-c-format
msgid ""
"A conversation represents a task—a unit of work from the point of view "
@@ -281,7 +307,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:160
+#: scopescontexts.xml:175
#, no-c-format
msgid ""
"The conversation context is active during any JSF request. Most "
@@ -291,13 +317,13 @@
msgstr ""
#. Tag: title
-#: scopescontexts.xml:167
+#: scopescontexts.xml:182
#, no-c-format
msgid "Conversation demarcation"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:169
+#: scopescontexts.xml:184
#, no-c-format
msgid ""
"CDI provides a built-in bean for controlling the lifecycle of conversations "
@@ -305,13 +331,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:174
+#: scopescontexts.xml:189
#, no-c-format
msgid "@Inject Conversation conversation;"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:176
+#: scopescontexts.xml:191
#, no-c-format
msgid ""
"To promote the conversation associated with the current request to a long-"
@@ -322,7 +348,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:182
+#: scopescontexts.xml:197
#, no-c-format
msgid ""
"In the following example, a conversation-scoped bean controls the "
@@ -330,7 +356,7 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:186
+#: scopescontexts.xml:201
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped @Stateful\n"
@@ -364,7 +390,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:188
+#: scopescontexts.xml:203
#, no-c-format
msgid ""
"This bean is able to control its own lifecycle through use of the "
@@ -373,13 +399,13 @@
msgstr ""
#. Tag: title
-#: scopescontexts.xml:196
+#: scopescontexts.xml:211
#, no-c-format
msgid "Conversation propagation"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:198
+#: scopescontexts.xml:213
#, no-c-format
msgid ""
"The conversation context automatically propagates with any JSF faces request "
@@ -388,7 +414,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:203
+#: scopescontexts.xml:218
#, no-c-format
msgid ""
"We can force the conversation to propagate with a non-faces request by "
@@ -400,13 +426,13 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:210
+#: scopescontexts.xml:225
#, no-c-format
msgid "Therefore, the following link propagates the conversation:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:214
+#: scopescontexts.xml:229
#, no-c-format
msgid ""
"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -414,13 +440,13 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:216
+#: scopescontexts.xml:231
#, no-c-format
msgid "It's probably better to use one of the link components in JSF 2:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:220
+#: scopescontexts.xml:235
#, no-c-format
msgid ""
"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
@@ -429,7 +455,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:223
+#: scopescontexts.xml:238
#, no-c-format
msgid ""
"The conversation context propagates across redirects, making it very easy to "
@@ -439,13 +465,13 @@
msgstr ""
#. Tag: title
-#: scopescontexts.xml:233
+#: scopescontexts.xml:248
#, no-c-format
msgid "Conversation timeout"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:235
+#: scopescontexts.xml:250
#, no-c-format
msgid ""
"The container is permitted to destroy a conversation and all state held in "
@@ -457,7 +483,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:242
+#: scopescontexts.xml:257
#, no-c-format
msgid ""
"The <literal>Conversation</literal> object provides a method to set the "
@@ -466,66 +492,191 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:247
+#: scopescontexts.xml:262
#, no-c-format
msgid "conversation.setTimeout(timeoutInMillis);"
msgstr ""
#. Tag: title
-#: scopescontexts.xml:254
+#: scopescontexts.xml:269
#, no-c-format
+msgid "The singleton pseudo-scope"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:271
+#, no-c-format
+msgid ""
+"In addition to the four built-in scopes, CDI also supports two "
+"<emphasis>pseudo-scopes</emphasis>. The first is the <emphasis>singleton "
+"pseudo-scope</emphasis>, which we specify using the annotation "
+"<literal>@Singleton</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:277
+#, no-c-format
+msgid ""
+"Unlike the other scopes, which belong to the package <literal>javax."
+"enterprise.context</literal>, the <literal>@Singleton</literal> annotation "
+"is defined in the package <literal>javax.inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:283
+#, no-c-format
+msgid ""
+"You can guess what \"singleton\" means here. It means a bean that is "
+"instantiated once. Unfortunately, there's a little problem with this pseudo-"
+"scope. Beans with scope <literal>@Singleton</literal> don't have a proxy "
+"object. Clients hold a direct reference to the singleton instance. So we "
+"need to consider the case of a client that can be serialized, for example, "
+"any bean with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal>, any dependent object of a bean with "
+"scope <literal>@SessionScoped</literal> or <literal>@ConversationScoped</"
+"literal>, or any stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:292
+#, no-c-format
+msgid ""
+"Now, if the singleton instance is a simple, immutable, serializable object "
+"like a string, a number or a date, we probably don't mind too much if it "
+"gets duplicated via serialization. However, that makes it no stop being a "
+"true singleton, and we may as well have just declared it with the default "
+"scope."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:298
+#, no-c-format
+msgid ""
+"There are several ways to ensure that the singleton bean remains a singleton "
+"when its client gets serialized:"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:302
+#, no-c-format
+msgid ""
+"have the singleton bean implement <literal>writeResolve()</literal> and "
+"<literal>readReplace()</literal> (as defined by the Java serialization "
+"specification),"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:308
+#, no-c-format
+msgid ""
+"make sure the client keeps only a transient reference to the singleton bean, "
+"or"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:313
+#, no-c-format
+msgid ""
+"give the client a reference of type <literal>Instance<X></literal> "
+"where <literal>X</literal> is the bean type of the singleton bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:320
+#, no-c-format
+msgid ""
+"A fourth, better solution is to instead use <literal>@ApplicationScoped</"
+"literal>, allowing the container to proxy the bean, and take care of "
+"serialization problems automatically."
+msgstr ""
+
+#. Tag: title
+#: scopescontexts.xml:326
+#, no-c-format
msgid "The dependent pseudo-scope"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:256
+#: scopescontexts.xml:328
#, no-c-format
msgid ""
-"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 "
-"bean which does not explicitly declare a scope type."
+"Finally, CDI features the so-called <emphasis>dependent pseudo-scope</"
+"emphasis>. This is the default scope for a bean which does not explicitly "
+"declare a scope type."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:261
+#: scopescontexts.xml:333
#, no-c-format
msgid ""
"For example, this bean has the scope type <literal>@Dependent</literal>:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:265
+#: scopescontexts.xml:337
#, no-c-format
msgid "<![CDATA[public class Calculator { ... }]]>"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:267
+#: scopescontexts.xml:339
#, no-c-format
msgid ""
-"An instances of a dependent bean is never shared between different clients "
-"or different injection points. It is strictly a <emphasis>dependent object</"
+"An instance 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:273
+#: scopescontexts.xml:345
#, no-c-format
msgid ""
+"If a Unified EL expression refers to a dependent bean by EL name, an "
+"instance of the bean is instantiated every time the expression is evaluated. "
+"The instance is not reused during any other expression evaluation."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:351
+#, no-c-format
+msgid ""
+"If you need to access a bean directly by EL name in a JSF page, you probably "
+"need to give it a scope other than <literal>@Dependent</literal>. Otherwise, "
+"any value that gets set to the bean by a JSF input will be lost immediately. "
+"That's why CDI features the <literal>@Model</literal> stereotype; it lets "
+"you give a bean a name, and set its scope to <literal>@RequestScoped</"
+"literal> in one stroke. If you need to access a bean that really "
+"<emphasis>has</emphasis> to have the scope <literal>@Dependent</literal> "
+"from a JSF page, inject it into a different bean, and expose it to EL via a "
+"getter method."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:361
+#, no-c-format
+msgid ""
+"Beans with scope <literal>@Dependent</literal> don't need a proxy object. "
+"The client holds a direct reference to its instance."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:366
+#, no-c-format
+msgid ""
"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: title
-#: scopescontexts.xml:281
+#: scopescontexts.xml:374
#, no-c-format
msgid "The <literal>@New</literal> qualifier"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:283
+#: scopescontexts.xml:376
#, no-c-format
msgid ""
"The built-in qualifier <literal>@New</literal> allows us to obtain a "
@@ -533,13 +684,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:287
+#: scopescontexts.xml:380
#, no-c-format
msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
msgstr ""
#. Tag: para
-#: scopescontexts.xml:289
+#: scopescontexts.xml:382
#, no-c-format
msgid ""
"The class must be a valid managed bean or session bean, but need not be an "
@@ -547,7 +698,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:291
+#: scopescontexts.xml:384
#, no-c-format
msgid ""
"This works even if <literal>Calculator</literal> is <emphasis>already</"
@@ -555,7 +706,7 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:296
+#: scopescontexts.xml:389
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped\n"
@@ -563,7 +714,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:298
+#: scopescontexts.xml:391
#, no-c-format
msgid ""
"So the following injected attributes each get a different instance of "
@@ -571,7 +722,7 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:302
+#: scopescontexts.xml:395
#, no-c-format
msgid ""
"<![CDATA[public class PaymentCalc {\n"
@@ -581,7 +732,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:304
+#: scopescontexts.xml:397
#, no-c-format
msgid ""
"The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -591,7 +742,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:310
+#: scopescontexts.xml:403
#, 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/specialization.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/stereotypes.pot
===================================================================
--- doc/trunk/reference/pot/stereotypes.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/stereotypes.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/viewlayers.pot
===================================================================
--- doc/trunk/reference/pot/viewlayers.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/viewlayers.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pot/weldexamples.pot
===================================================================
--- doc/trunk/reference/pot/weldexamples.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/weldexamples.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -145,7 +145,7 @@
"<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"
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"XML"
"\"><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN"
"\"\n"
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
@@ -525,7 +525,7 @@
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."
+"can open the example natively using the <ulink url=\"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.."
@@ -621,8 +621,9 @@
"<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."
+"<ulink url=\"http://localhost:9090\">http://localhost:9090</ulink> to view "
+"the app. To debug choose <emphasis>Debug as Java Application</emphasis> "
+"instead."
msgstr ""
#. Tag: title
@@ -664,8 +665,9 @@
#: 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>."
+"to deploy the example to Tomcat. You can then access application at <ulink "
+"url=\"http://localhost:8080/weld-numberguess-wicket\">http://localhost:8080/"
+"weld-numberguess-wicket</ulink>."
msgstr ""
#. Tag: para
@@ -977,7 +979,7 @@
"\"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"
+"public class Game\n"
"{\n"
"\n"
" public static final int MAX_NUM_GUESSES = 10;\n"
@@ -1079,19 +1081,18 @@
"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"
+"to get the random number at the start of each game. Note that it can't use "
+"<literal>Instance.get()</literal> like the JSF example does because there "
+"will not be any active contexts like there are 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"
@@ -1546,7 +1547,6 @@
#, 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>."
+"information on Weld, please visit <ulink url=\"http://www.seamframework.org/"
+"Weld\">http://www.seamframework.org/Weld</ulink>."
msgstr ""
Modified: doc/trunk/reference/pot/xml.pot
===================================================================
--- doc/trunk/reference/pot/xml.pot 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pot/xml.pot 2010-01-06 12:21:25 UTC (rev 5381)
@@ -6,7 +6,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+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"
Modified: doc/trunk/reference/pt-BR/beans.po
===================================================================
--- doc/trunk/reference/pt-BR/beans.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/beans.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:06-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,19 +22,36 @@
#. 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."
+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."
+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:"
+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
@@ -52,19 +69,33 @@
#. 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)."
+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)."
+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:"
+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
@@ -82,13 +113,22 @@
#. 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\"/>."
+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."
+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
@@ -100,7 +140,9 @@
#. Tag: para
#: beans.xml:80
#, no-c-format
-msgid "Enough hand-waving. More formally, the anatomy of a bean, according to the spec:"
+msgid ""
+"Enough hand-waving. More formally, the anatomy of a bean, according to the "
+"spec:"
msgstr ""
#. Tag: para
@@ -166,7 +208,10 @@
#. 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:"
+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
@@ -184,7 +229,12 @@
#. 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:"
+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
@@ -206,13 +256,21 @@
#. 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)."
+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."
+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
@@ -236,13 +294,21 @@
#. 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>."
+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>:"
+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
@@ -266,13 +332,26 @@
#. 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."
+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:"
+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
@@ -292,19 +371,31 @@
#. 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."
+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."
+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>:"
+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
@@ -316,19 +407,29 @@
#. 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>."
+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."
+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:"
+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
@@ -346,13 +447,19 @@
#. 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>."
+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\"/>."
+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
@@ -364,13 +471,20 @@
#. 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."
+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:"
+msgid ""
+"For example, any web application may have <emphasis>session scoped</"
+"emphasis> bean:"
msgstr ""
#. Tag: programlisting
@@ -386,47 +500,63 @@
#. 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."
+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."
+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 manually remove a "
+"bean from a context. If you don't want the bean to sit in the session "
+"indefinitely, consider using another scope with a shorted lifespan, such as "
+"the request or conversation scope."
msgstr ""
#. Tag: para
-#: beans.xml:272
+#: beans.xml:273
#, 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."
+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
+#: beans.xml:279
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:283
+#: beans.xml:284
#, no-c-format
msgid "EL name"
msgstr ""
#. Tag: para
-#: beans.xml:285
+#: beans.xml:286
#, 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>."
+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
+#: beans.xml:291
#, no-c-format
-msgid "The EL name is specified using the <literal>@Named</literal> annotation, as shown here:"
+msgid ""
+"The EL name is specified using the <literal>@Named</literal> annotation, as "
+"shown here:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:294
+#: beans.xml:295
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
@@ -436,13 +566,13 @@
"class ShoppingCart implements Serializable { ... }]]>"
#. Tag: para
-#: beans.xml:296
+#: beans.xml:297
#, no-c-format
msgid "Now we can easily use the bean in any JSF or JSP page:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:298
+#: beans.xml:299
#, no-c-format
msgid ""
"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
@@ -451,19 +581,25 @@
msgstr ""
#. Tag: para
-#: beans.xml:301
+#: beans.xml:302
#, 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."
+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
+#: beans.xml:309
#, no-c-format
-msgid "We can let CDI choose a name for us by leaving off the value of the <literal>@Named</literal> annotation:"
+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
+#: beans.xml:313
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named\n"
@@ -473,25 +609,34 @@
"class ShoppingCart implements Serializable { ... }]]>"
#. Tag: para
-#: beans.xml:314
+#: beans.xml:315
#, no-c-format
-msgid "The name defaults to the unqualified class name, decapitalized; in this case, <literal>shoppingCart</literal>."
+msgid ""
+"The name defaults to the unqualified class name, decapitalized; in this "
+"case, <literal>shoppingCart</literal>."
msgstr ""
#. Tag: title
-#: beans.xml:324
+#: beans.xml:325
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: beans.xml:326
+#: beans.xml:327
#, 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."
+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
+#: beans.xml:335
#, no-c-format
msgid ""
"<![CDATA[public @Alternative\n"
@@ -501,49 +646,81 @@
"class MockPaymentProcessor extends PaymentProcessorImpl { ... }]]>"
#. Tag: para
-#: beans.xml:336
+#: beans.xml:337
#, 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."
+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
+#: beans.xml:345
#, no-c-format
-msgid "We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
+msgid ""
+"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:351
+#: beans.xml:352
#, no-c-format
msgid "Interceptor binding types"
msgstr ""
#. Tag: para
-#: beans.xml:353
+#: beans.xml:354
#, 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."
+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
+#: beans.xml:361
#, 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."
+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
+#: beans.xml:372
#, 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."
+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
+#: beans.xml:378
#, 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."
+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
+#: beans.xml:383
#, no-c-format
msgid ""
"<![CDATA[@InterceptorBinding\n"
@@ -559,13 +736,15 @@
"public @interface Transactional {}]]>"
#. Tag: para
-#: beans.xml:384
+#: beans.xml:385
#, no-c-format
-msgid "The interceptor that implements transaction management declares this annotation:"
+msgid ""
+"The interceptor that implements transaction management declares this "
+"annotation:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:388
+#: beans.xml:389
#, no-c-format
msgid ""
"<![CDATA[public @Transactional @Interceptor\n"
@@ -575,13 +754,15 @@
"class TransactionInterceptor { ... }]]>"
#. Tag: para
-#: beans.xml:390
+#: beans.xml:391
#, no-c-format
-msgid "We can apply the interceptor to a bean by annotating the bean class with the same interceptor binding type:"
+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
+#: beans.xml:395
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Transactional\n"
@@ -589,247 +770,356 @@
msgstr ""
#. Tag: para
-#: beans.xml:396
+#: beans.xml:397
#, no-c-format
-msgid "Notice that <literal>ShoppingCart</literal> and <literal>TransactionInterceptor</literal> don't know anything about each other."
+msgid ""
+"Notice that <literal>ShoppingCart</literal> and "
+"<literal>TransactionInterceptor</literal> don't know anything about each "
+"other."
msgstr ""
#. Tag: para
-#: beans.xml:401
+#: beans.xml:402
#, 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."
+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
+#: beans.xml:409
#, no-c-format
-msgid "We'll discuss interceptors, and their cousins, decorators, in <xref linkend=\"interceptors\"/> and <xref linkend=\"decorators\"/>."
+msgid ""
+"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
+"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:418
+#: beans.xml:419
#, no-c-format
msgid "What kinds of classes are beans?"
msgstr ""
#. Tag: para
-#: beans.xml:420
+#: beans.xml:421
#, 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."
+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
+#: beans.xml:428
#, no-c-format
msgid "Managed beans"
msgstr ""
#. Tag: para
-#: beans.xml:429
+#: beans.xml:430
#, 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:"
+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
+#: beans.xml:441
#, no-c-format
msgid "It is not a non-static inner class."
msgstr ""
#. Tag: para
-#: beans.xml:443
+#: beans.xml:444
#, no-c-format
msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:446
+#: beans.xml:447
#, 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>."
+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
+#: beans.xml:453
#, no-c-format
-msgid "It does not implement <literal>javax.enterprise.inject.spi.Extension</literal>."
+msgid ""
+"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
+"literal>."
msgstr ""
#. Tag: para
-#: beans.xml:455
+#: beans.xml:456
#, no-c-format
msgid "It has an appropriate constructor—either:"
msgstr ""
#. Tag: para
-#: beans.xml:460
+#: beans.xml:461
#, no-c-format
msgid "the class has a constructor with no parameters, or"
msgstr ""
#. Tag: para
-#: beans.xml:463
+#: beans.xml:464
#, no-c-format
msgid "the class declares a constructor annotated <literal>@Inject</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:471
+#: beans.xml:472
#, 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."
+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
+#: beans.xml:475
#, no-c-format
-msgid "If a managed bean has a public field, it must have the default scope <literal>@Dependent</literal>."
+msgid ""
+"If a managed bean has a public field, it must have the default scope "
+"<literal>@Dependent</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:476
+#: beans.xml:477
#, no-c-format
-msgid "Managed beans support the <literal>@PostConstruct</literal> and <literal>@PreDestroy</literal> lifecycle callbacks."
+msgid ""
+"Managed beans support the <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks."
msgstr ""
#. Tag: para
-#: beans.xml:479
+#: beans.xml:480
#, 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."
+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
+#: beans.xml:489
#, no-c-format
msgid "Session beans"
msgstr ""
#. Tag: para
-#: beans.xml:490
+#: beans.xml:491
#, 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."
+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
+#: beans.xml:500
#, 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."
+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
+#: beans.xml:508
#, 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."
+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
+#: beans.xml:516
#, 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."
+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
+#: beans.xml:520
#, 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."
+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
+#: beans.xml:528
#, 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:"
+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
+#: beans.xml:535
#, no-c-format
msgid "method-level transaction management and security,"
msgstr ""
#. Tag: para
-#: beans.xml:537
+#: beans.xml:538
#, no-c-format
msgid "concurrency management,"
msgstr ""
#. Tag: para
-#: beans.xml:540
+#: beans.xml:541
#, no-c-format
-msgid "instance-level passivation for stateful session beans and instance-pooling for stateless session beans,"
+msgid ""
+"instance-level passivation for stateful session beans and instance-pooling "
+"for stateless session beans,"
msgstr ""
#. Tag: para
-#: beans.xml:544
+#: beans.xml:545
#, no-c-format
msgid "remote or web service invocation, or"
msgstr ""
#. Tag: para
-#: beans.xml:547
+#: beans.xml:548
#, no-c-format
msgid "timers and asynchronous methods,"
msgstr ""
#. Tag: para
-#: beans.xml:551
+#: beans.xml:552
#, no-c-format
-msgid "When we don't need any of these things, an ordinary managed bean will serve just fine."
+msgid ""
+"When we don't need any of these things, an ordinary managed bean will serve "
+"just fine."
msgstr ""
#. Tag: para
-#: beans.xml:553
+#: beans.xml:554
#, 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."
+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
+#: beans.xml:560
#, 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."
+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
+#: beans.xml:566
#, 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."
+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
+#: beans.xml:571
#, 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>."
+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
+#: beans.xml:579
#, 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\"."
+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
+#: beans.xml:590
#, no-c-format
msgid "Producer methods"
msgstr ""
#. Tag: para
-#: beans.xml:591
+#: beans.xml:592
#, 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?"
+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
+#: beans.xml:600
#, 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."
+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
+#: beans.xml:607
#, no-c-format
-msgid "A producer method is declared by annotating a method of a bean class with the <literal>@Produces</literal> annotation."
+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
+#: beans.xml:612
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
@@ -855,67 +1145,92 @@
"}]]>"
#. Tag: para
-#: beans.xml:613
+#: beans.xml:614
#, 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:"
+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
+#: beans.xml:623
#, no-c-format
msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
msgstr "<![CDATA[@Inject @Random int randomNumber;]]>"
#. Tag: para
-#: beans.xml:624
+#: beans.xml:625
#, no-c-format
msgid "Even in a Unified EL expression:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:628
+#: beans.xml:629
#, no-c-format
msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
msgstr "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
#. Tag: para
-#: beans.xml:630
+#: beans.xml:631
#, 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."
+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
+#: beans.xml:637
#, no-c-format
msgid "The bean types of a producer method depend upon the method return type:"
msgstr ""
#. Tag: para
-#: beans.xml:642
+#: beans.xml:643
#, 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>."
+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
+#: beans.xml:649
#, 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>."
+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
+#: beans.xml:655
#, 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."
+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
+#: beans.xml:662
#, 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."
+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
+#: beans.xml:668
#, no-c-format
msgid ""
"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
@@ -927,25 +1242,31 @@
"}]]>"
#. Tag: para
-#: beans.xml:669
+#: beans.xml:670
#, no-c-format
-msgid "We'll talk much more about producer methods in <xref linkend=\"producermethods\"/>."
+msgid ""
+"We'll talk much more about producer methods in <xref linkend="
+"\"producermethods\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:674
+#: beans.xml:675
#, no-c-format
msgid "Producer fields"
msgstr ""
#. Tag: para
-#: beans.xml:676
+#: beans.xml:677
#, 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."
+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
+#: beans.xml:683
#, no-c-format
msgid ""
"<![CDATA[public class Shop {\n"
@@ -959,14 +1280,423 @@
"}]]>"
#. Tag: para
-#: beans.xml:684
+#: beans.xml:685
#, no-c-format
-msgid "The rules for determining the bean types of a producer field parallel the rules for producer methods."
+msgid ""
+"The rules for determining the bean types of a producer field parallel the "
+"rules for producer methods."
msgstr ""
#. Tag: para
-#: beans.xml:688
+#: beans.xml:689
#, 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."
+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 ""
+#. Tag: title
+#: beans.xml:701
+#, no-c-format
+msgid "The (minimal) bean descriptor"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:703
+#, no-c-format
+msgid ""
+"First, it's important to understand that the XML bean descriptor in CDI "
+"(beans.xml) is not there to define beans in XML, like in other popular bean "
+"containers. Rather, you use this file to enable CDI services for the current "
+"bean archive that is difficult to define consistently in Java or which you "
+"don't want to define in Java (e.g., to accomodate testing)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:710
+#, no-c-format
+msgid ""
+"For example, the XML is used to enable interceptors (which are disabled by "
+"default) and define interceptor ordering. So the bean descriptor "
+"<emphasis>complements</emphasis> the metadata that is provided in the Java "
+"language syntax. (You may still want to define beans in XML for other "
+"reasons, but that is the concern of an extension)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:717
+#, no-c-format
+msgid ""
+"Let's first ask why the beans.xml is required, then look at what services it "
+"is used used to enable."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:722
+#, no-c-format
+msgid "Why is beans.xml required?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:724
+#, no-c-format
+msgid ""
+"You may be wondering, if beans are not described using XML, why do we need "
+"beans.xml at all, particularly if you don't have anything that you would "
+"need the bean descriptor to enable (alternatives, interceptors or "
+"decorators)?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:730
+#, no-c-format
+msgid "There are two things about CDI that we need to keep in mind:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:736
+#, no-c-format
+msgid ""
+"CDI does not require any special declaration for a Java class to be injected "
+"- that's right, no annotation or XML declaration at all!"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:742
+#, no-c-format
+msgid ""
+"CDI does not define any special kind of module - CDI beans can be deployed "
+"in a library JAR, EJB JAR, WAR, RAR, or JVM classpath directory."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:749
+#, no-c-format
+msgid ""
+"The CDI specification calls the process of identifying beans in modules "
+"<emphasis>bean discovery</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:753
+#, no-c-format
+msgid ""
+"So there are potentially a lot of classes in the classpath which might be "
+"beans! We don't want to force the container to scan every one of those "
+"classes at startup and build its internal metamodel for each of them. This "
+"really could make bean discovery very slow."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:759
+#, no-c-format
+msgid ""
+"But there's another reason we need to give the user some control over which "
+"classes are available for injection. We don't want every class in the "
+"classpath to potentially match an injection point, including classes that "
+"were never intended to be injected into things. This would force the "
+"developer to have to use qualifiers much more often to disambiguate "
+"injection points."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:766
+#, no-c-format
+msgid "So we have two choices. We could have the developer:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:772
+#, no-c-format
+msgid "explicitly exclude modules which do not contain beans, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:775
+#, no-c-format
+msgid "explicitly declare modules which do contain beans."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:779
+#, no-c-format
+msgid ""
+"It should be clear that the second option is a much better way to go. Thus, "
+"CDI has the notion of a bean archive. A bean archive is just a module that "
+"has a file named beans.xml in the META-INF directory. The container looks "
+"for beans in bean archives. It ignores other modules."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:785
+#, no-c-format
+msgid ""
+"Now, you might be wondering if we've got the granularity wrong here. Why "
+"should module be the right criteria to use for including/excluding a class. "
+"Why not consider:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:792
+#, no-c-format
+msgid "a class-level annotation,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:795
+#, no-c-format
+msgid "the package,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:798
+#, no-c-format
+msgid "some type it implements or extends, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:801
+#, no-c-format
+msgid "some naming convention."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:805
+#, no-c-format
+msgid ""
+"We've got the first option covered. Annotate a bean <literal>@Alternative</"
+"literal>, or with an alternative stereotype, and it will be considered "
+"disabled by CDI, as long as you don't explicitly enable it in beans.xml. "
+"That's not quite the same thing as excluding the class from scanning "
+"altogether, but it's close. (One difference is that a portable extension "
+"with still get a <literal>ProcessAnnotatedType</literal> event for that "
+"class)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:813
+#, no-c-format
+msgid ""
+"A future version of CDI might allow you to declare excluded packages in "
+"beans.xml. Excluding a bean by type or naming convention isn't really that "
+"appealing. In the world of CDI, we use stereotypes for identifying "
+"architectural roles. We don't use marker interfaces or naming conventions. "
+"Names really shouldn't affect functionality as it is too fragile."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:820
+#, no-c-format
+msgid "Enough theory, what elements are available in beans.xml?"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:826
+#, no-c-format
+msgid "Bean descriptor schema"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:828
+#, no-c-format
+msgid ""
+"If you don't need to activate any interceptors, decorators or alternatives "
+"(you just have plain beans that you need to use in an archive), the beans."
+"xml file can be <emphasis>empty</emphasis>. If you do have one of these "
+"requirements, then you need to start popularing the descriptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:834
+#, no-c-format
+msgid ""
+"The root element of a beans.xml file is <literal>beans</literal>, with the "
+"following <ulink url=\"http://anonsvn.jboss.org/repos/weld/api/trunk/cdi/src/"
+"main/resources/beans.xsd\">schema</ulink>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:839
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<beans 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"
+"</beans>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:841
+#, no-c-format
+msgid ""
+"The <literal>beans</literal> element can have one or more of each of the "
+"following children:"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:847
+#, no-c-format
+msgid "interceptors"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:850
+#, no-c-format
+msgid "decorators"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:853
+#, no-c-format
+msgid "alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:857
+#, no-c-format
+msgid "Let's look at each element in detail."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:862
+#, no-c-format
+msgid "<interceptors>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:864
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled interceptors bound via interceptor "
+"bindings. An interceptor must be explicitly enabled by listing the fully "
+"qualified class name in a child <class> element of <"
+"interceptors>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:870
+#, no-c-format
+msgid ""
+"There may be zero or more interceptor class elements. The order of the class "
+"declarations determines the interceptor ordering. Interceptors which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an interceptor "
+"class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:877
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.intercept.SecurityInterceptor</class>\n"
+" <class>com.acme.intercept.TransactionInterceptor</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:883
+#, no-c-format
+msgid "<decorators>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:885
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled decorators. A decorator must be "
+"explicitly enabled by listing the fully qualified class name in a child <"
+"class> element of <decorators>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:891
+#, no-c-format
+msgid ""
+"There may be zero or more decorator class elements. The order of the class "
+"declarations determines the decorator ordering. Decorators which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an decorator class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.decorate.BigAccountDecorator</class>\n"
+" <class>com.acme.decorate.SpecialGiftDecorator</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:903
+#, no-c-format
+msgid "<alternatives>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:905
+#, no-c-format
+msgid ""
+"An alternative is a bean that must be explicitly declared in the beans.xml "
+"file if it should be available for lookup, injection or EL resolution. By "
+"default, a bean archive has no active alternatives. An alternative must be "
+"explicitly declared using the fully qualified bean class name or stereotype "
+"class name in either a child <class> or <stereotype> element of "
+"<alternatives>, respectively."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:913
+#, no-c-format
+msgid ""
+"An alternative is selected for the bean archive if either: the alternative "
+"is a managed bean or session bean and the bean class of the bean is listed, "
+"or the alternative is a producer method, field or resource, and the bean "
+"class that declares the method or field is listed, or any "
+"<literal>@Alternative</literal> stereotype of the alternative is listed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:920
+#, no-c-format
+msgid ""
+"There may be zero or more alternative bean class elements. The same class "
+"may not be listed twice. And of course, the class must exist and it must be "
+"an alternative bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:925
+#, no-c-format
+msgid ""
+"There may also be zero or more <literal>@Alternative</literal> stereotype "
+"elements. The same stereotype may not be listed twice. And of course, the "
+"stereotype class must exist and it must be an stereotype annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:931
+#, no-c-format
+msgid ""
+"<![CDATA[<stereotypes>\n"
+" <class>com.acme.business.MockPaymentProcessor</class>\n"
+" <stereotype>com.acme.stereotype.Mock</stereotype>\n"
+"</stereotypes>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:935
+#, no-c-format
+msgid ""
+"And that's it! A very simple schema, used only to activate and order CDI "
+"services."
+msgstr ""
Modified: doc/trunk/reference/pt-BR/dependencies.po
===================================================================
--- doc/trunk/reference/pt-BR/dependencies.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/dependencies.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:07-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,7 +22,11 @@
#. 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."
+msgid ""
+"This section lists compile-time and runtime dependencies for Weld. This list "
+"is currently maintained in the <ulink url=\"https://jira.jboss.org/jira/"
+"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
+"appendix."
msgstr ""
#. Tag: title
@@ -32,15 +36,13 @@
msgstr ""
#. Tag: para
-#: dependencies.xml:21
-#: dependencies.xml:110
+#: dependencies.xml:21 dependencies.xml:110
#, no-c-format
msgid "Artifact"
msgstr ""
#. Tag: para
-#: dependencies.xml:24
-#: dependencies.xml:113
+#: dependencies.xml:24 dependencies.xml:113
#, no-c-format
msgid "Scope"
msgstr ""
@@ -52,12 +54,8 @@
msgstr "javax.ejb:ejb-api:3.1"
#. Tag: para
-#: dependencies.xml:36
-#: dependencies.xml:44
-#: dependencies.xml:52
-#: dependencies.xml:60
-#: dependencies.xml:68
-#: dependencies.xml:76
+#: 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"
@@ -100,8 +98,7 @@
msgstr "org.glasfish.web:el-impl:2.1.2"
#. Tag: para
-#: dependencies.xml:84
-#: dependencies.xml:92
+#: dependencies.xml:84 dependencies.xml:92
#, no-c-format
msgid "runtime"
msgstr ""
@@ -135,4 +132,3 @@
#, no-c-format
msgid "BVAL-193"
msgstr ""
-
Modified: doc/trunk/reference/pt-BR/ee.po
===================================================================
--- doc/trunk/reference/pt-BR/ee.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/ee.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:11-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,8 +22,18 @@
#. Tag: para
#: ee.xml:6
#, 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."
+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:13
@@ -34,7 +44,9 @@
#. Tag: para
#: ee.xml:15
#, no-c-format
-msgid "In the Java EE environment, the container provides the following built-in beans, all with the qualifier <literal>@Default</literal>:"
+msgid ""
+"In the Java EE environment, the container provides the following built-in "
+"beans, all with the qualifier <literal>@Default</literal>:"
msgstr ""
#. Tag: para
@@ -46,53 +58,105 @@
#. Tag: para
#: ee.xml:27
#, no-c-format
-msgid "a <literal>Principal</literal> representing the current caller identity,"
+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"
+msgid ""
+"the default <ulink url=\"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>."
+msgid ""
+"a <literal>Validator</literal> for the default <literal>ValidationFactory</"
+"literal>."
msgstr ""
+#. Tag: para
+#: ee.xml:45
+#, no-c-format
+msgid ""
+"The CDI specification does not require the servlet context objects, "
+"<literal>HttpServletRequest</literal>, <literal>HttpSession</literal> and "
+"<literal>ServletContext</literal> to be exposed as injectable beans. If you "
+"really want to be able to inject these objects, it's easy to create a "
+"portable extension to expose them as beans. However, we recommend that "
+"direct access to these objects be limited to servlets, servlet filters and "
+"servlet event listeners, where they may be obtained in the usual way as "
+"defined by the Java Servlets spec. The <literal>FacesContext</literal> is "
+"also not injectable. You can get at it by calling <literal>FacesContext."
+"getCurrentInstance()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ee.xml:57
+#, no-c-format
+msgid ""
+"Oh, you <emphasis>really</emphasis> want to inject the "
+"<literal>FacesContext</literal>? Alright then, try this producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: ee.xml:61
+#, no-c-format
+msgid ""
+"<![CDATA[class FacesContextProducer {\n"
+" @Produces @RequestScoped FacesContext getFacesContext() {\n"
+" return FacesContext.getCurrentInstance();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
#. Tag: title
-#: ee.xml:47
+#: ee.xml:67
#, no-c-format
msgid "Injecting Java EE resources into a bean"
msgstr "Injetando recursos Java EE em um bean"
#. Tag: para
-#: ee.xml:49
+#: ee.xml:69
#, 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:"
+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
+#: ee.xml:76
#, no-c-format
msgid ""
"<![CDATA[@Transactional @Interceptor\n"
"public class TransactionInterceptor {\n"
" @Resource UserTransaction transaction;\n"
"\n"
-" @AroundInvoke public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
"}]]>"
msgstr ""
"<![CDATA[@Transactional @Interceptor\n"
"public class TransactionInterceptor {\n"
" @Resource UserTransaction transaction;\n"
"\n"
-" @AroundInvoke public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"throws Exception { ... }\n"
"}]]>"
#. Tag: programlisting
-#: ee.xml:58
+#: ee.xml:78
#, no-c-format
msgid ""
"<![CDATA[@SessionScoped\n"
@@ -110,31 +174,47 @@
"}]]>"
#. Tag: para
-#: ee.xml:60
+#: ee.xml:80
#, 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."
+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:66
+#: ee.xml:86
#, no-c-format
-msgid "Of course, we advise that component environment injection be used to define CDI resources, and that typesafe injection be used in application code."
+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:74
+#: ee.xml:94
#, 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:76
+#: ee.xml:96
#, 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."
+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:81
+#: ee.xml:101
#, no-c-format
msgid ""
"<![CDATA[public class Login extends HttpServlet {\n"
@@ -142,7 +222,8 @@
" @Inject 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.getParameter(\"username\")):\n"
" credentials.setPassword(request.getParameter(\"password\")):\n"
@@ -162,7 +243,8 @@
" @Inject 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.getParameter(\"username\")):\n"
" credentials.setPassword(request.getParameter(\"password\")):\n"
@@ -178,31 +260,44 @@
"}]]>"
#. Tag: para
-#: ee.xml:83
+#: ee.xml:103
#, 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."
+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:92
+#: ee.xml:112
#, 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:94
+#: ee.xml:114
#, no-c-format
-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."
+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:99
+#: ee.xml:119
#, 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."
+msgstr ""
+"Você ainda pode usar bindings de interceptadores Web Beans em Message-Driven "
+"Beans."
#. Tag: programlisting
-#: ee.xml:101
+#: ee.xml:121
#, no-c-format
msgid ""
"<![CDATA[@Transactional @MessageDriven\n"
@@ -226,37 +321,66 @@
"}]]>"
#. Tag: para
-#: ee.xml:103
+#: ee.xml:123
#, 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."
+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:109
+#: ee.xml:129
#, no-c-format
msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
msgstr ""
#. Tag: title
-#: ee.xml:116
+#: ee.xml:136
#, no-c-format
msgid "JMS endpoints"
msgstr "Endpoints JMS"
#. Tag: para
-#: ee.xml:118
+#: ee.xml:138
#, 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:127
+#: ee.xml:147
#, no-c-format
-msgid "You can use producer fields and methods to prepare all of these resources for injection into a bean:"
+msgid ""
+"You can use producer fields and methods to prepare all of these resources "
+"for injection into a bean:"
msgstr ""
#. Tag: programlisting
-#: ee.xml:131
+#: ee.xml:151
#, no-c-format
msgid ""
"<![CDATA[public class OrderResources {\n"
@@ -271,13 +395,15 @@
" return connectionFactory.createConnection();\n"
" }\n"
" \n"
-" public void closeOrderConnection(@Disposes @OrderConnection Connection connection)\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"
+" public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
" throws JMSException {\n"
" return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
" }\n"
@@ -288,12 +414,14 @@
" }\n"
" \n"
" @Produces @OrderMessageProducer\n"
-" public MessageProducer createOrderMessageProducer(@OrderSession Session session)\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"
+" public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
" throws JMSException {\n"
" producer.close();\n"
" }\n"
@@ -311,13 +439,15 @@
" return connectionFactory.createConnection();\n"
" }\n"
" \n"
-" public void closeOrderConnection(@Disposes @OrderConnection Connection connection)\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"
+" public Session createOrderSession(@OrderConnection Connection "
+"connection)\n"
" throws JMSException {\n"
" return connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\n"
" }\n"
@@ -328,25 +458,29 @@
" }\n"
" \n"
" @Produces @OrderMessageProducer\n"
-" public MessageProducer createOrderMessageProducer(@OrderSession Session session)\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"
+" public void closeOrderMessageProducer(@Disposes @OrderMessageProducer "
+"MessageProducer producer)\n"
" throws JMSException {\n"
" producer.close();\n"
" }\n"
"}]]>"
#. Tag: para
-#: ee.xml:133
+#: ee.xml:153
#, no-c-format
-msgid "In this example, we can just inject the prepared <literal>MessageProducer</literal>, <literal>Connection</literal> or <literal>QueueSession</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:138
+#: ee.xml:158
#, no-c-format
msgid ""
"<![CDATA[@Inject Order order;\n"
@@ -372,28 +506,57 @@
"}]]>"
#. Tag: para
-#: ee.xml:144
+#: ee.xml:164
#, fuzzy, no-c-format
-msgid "The lifecycle of the injected JMS objects is completely controlled by the container."
-msgstr "O ciclo de vida do objeto JMS injetado é completamente controlado pelo gerenciador do Web Bean."
+msgid ""
+"The lifecycle of the injected JMS objects is completely controlled by the "
+"container."
+msgstr ""
+"O ciclo de vida do objeto JMS injetado é completamente controlado pelo "
+"gerenciador do Web Bean."
#. Tag: title
-#: ee.xml:151
+#: ee.xml:171
#, no-c-format
msgid "Packaging and deployment"
msgstr "Empacotamento e implantação"
#. Tag: para
-#: ee.xml:153
+#: ee.xml:173
#, 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."
+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:162
+#: ee.xml:182
#, 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 ""
+"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"
@@ -402,6 +565,7 @@
#~ "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 "
@@ -415,8 +579,10 @@
#~ "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 "
@@ -426,6 +592,7 @@
#~ "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"
@@ -440,6 +607,7 @@
#~ "connectionFactory>\n"
#~ " <myapp:OrderProcessor/> \n"
#~ "</Queue>]]>"
+
#~ msgid ""
#~ "<![CDATA[<Topic>\n"
#~ " <destination>java:comp/env/jms/StockPrices</destination>\n"
@@ -454,6 +622,7 @@
#~ "connectionFactory>\n"
#~ " <myapp:StockPrices/> \n"
#~ "</Topic>]]>"
+
#~ msgid ""
#~ "Now we can just inject the <literal>Queue</literal>, "
#~ "<literal>QueueConnection</literal>, <literal>QueueSession</literal> or "
@@ -466,6 +635,7 @@
#~ "<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"
@@ -480,4 +650,3 @@
#~ "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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/environments.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:10-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -28,19 +29,33 @@
#. Tag: para
#: environments.xml:9
#, no-c-format
-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!"
+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 "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."
+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:"
+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
@@ -52,7 +67,9 @@
#. Tag: para
#: environments.xml:29
#, no-c-format
-msgid "Now we can install the Weld deployer from the <literal>jboss-as</literal> directory of the Weld distribution:"
+msgid ""
+"Now we can install the Weld deployer from the <literal>jboss-as</literal> "
+"directory of the Weld distribution:"
msgstr ""
#. Tag: programlisting
@@ -68,8 +85,17 @@
#. Tag: para
#: 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."
+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: title
#: environments.xml:46
@@ -80,7 +106,12 @@
#. Tag: para
#: environments.xml:48
#, no-c-format
-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."
+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
@@ -92,20 +123,43 @@
#. Tag: para
#: 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."
+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: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 "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: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 "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:84
@@ -164,19 +218,27 @@
#. 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 "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:134
#, no-c-format
msgid ""
"<![CDATA[<listener>\n"
-" <listener-class>org.jboss.weld.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.weld.environment.servlet.Listener</listener-class>\n"
+" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
"</listener>]]>"
#. Tag: title
@@ -188,8 +250,15 @@
#. Tag: para
#: 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 "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:145
@@ -212,8 +281,12 @@
#. Tag: para
#: 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:151
@@ -236,20 +309,33 @@
#. Tag: para
#: 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 "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:158
#, 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>:"
+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:164
#, no-c-format
-msgid "<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat.WeldLifecycleListener\"/>]]>"
-msgstr "<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat.WeldLifecycleListener\"/>]]>"
+msgid ""
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
+msgstr ""
+"<![CDATA[<Listener className=\"org.jboss.weld.environment.tomcat."
+"WeldLifecycleListener\"/>]]>"
#. Tag: title
#: environments.xml:169
@@ -260,17 +346,26 @@
#. Tag: para
#: 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 "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:176
#, 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=\"BeanManager\" 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>BeanManager</Arg>\n"
" <Arg>\n"
@@ -283,10 +378,13 @@
" </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"
-" <New id=\"BeanManager\" 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>BeanManager</Arg>\n"
" <Arg>\n"
@@ -302,14 +400,24 @@
#. Tag: para
#: 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: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 "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:189
@@ -326,89 +434,137 @@
#. Tag: para
#: environments.xml:200
#, 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."
+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: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:"
+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:215
+#. Tag: para
+#: environments.xml:214
#, no-c-format
-msgid "POJOs (no EJBs)"
+msgid ""
+"Managed beans with <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:220
#, no-c-format
-msgid "Typesafe Dependency Injection"
+msgid "Dependency injection with qualifiers and alternatives"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:225
#, no-c-format
-msgid "Application and Dependent Contexts"
+msgid ""
+"<literal>@Application</literal>, <literal>@Dependent</literal> and "
+"<literal>@Singleton</literal> scopes"
msgstr ""
-#. Tag: literal
-#: environments.xml:230
+#. Tag: para
+#: environments.xml:231
#, no-c-format
-msgid "Qualifiers"
+msgid "Interceptors and decorators"
msgstr ""
-#. Tag: literal
-#: environments.xml:235
+#. Tag: para
+#: environments.xml:236
#, no-c-format
msgid "Stereotypes"
msgstr ""
-#. Tag: literal
-#: environments.xml:240
+#. Tag: para
+#: environments.xml:241
#, no-c-format
-msgid "Typesafe Event Model"
+msgid "Events"
msgstr ""
+#. Tag: para
+#: environments.xml:246
+#, no-c-format
+msgid "Portable extension support"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:252
+#, no-c-format
+msgid "EJB beans are not supported."
+msgstr ""
+
#. Tag: title
-#: environments.xml:246
+#: environments.xml:257
#, fuzzy, no-c-format
msgid "CDI SE Module"
msgstr "Módulo Web Beans SE"
#. Tag: para
-#: environments.xml:248
+#: environments.xml:259
#, 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:"
+msgid ""
+"Weld provides an extension which will boot a CDI bean manager in Java SE, "
+"automatically registering all simple beans found on the classpath. The "
+"command line parameters can be injected using either of the following:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:255
+#: environments.xml:264
#, no-c-format
+msgid "<![CDATA[@Inject @Parameters List<String> params;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:266
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters String[] paramsArray;]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:268
+#, no-c-format
+msgid "The second form is useful for compatibility with existing classes."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:273
+#, no-c-format
msgid ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with existing classes]]>"
+"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 ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with existing classes]]>"
#. Tag: para
-#: environments.xml:257
+#: environments.xml:282
#, 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:261
-#, no-c-format
+#: environments.xml:286
+#, fuzzy, no-c-format
msgid ""
-"<![CDATA[@ApplicationScoped\n"
+"<![CDATA[@Singleton\n"
"public class HelloWorld\n"
"{\n"
-" @Inject @Parameters List<String> parameters;\n"
-"\n"
-" public void printHello(@Observes ContainerInitialized event) {\n"
+" public void printHello(@Observes ContainerInitialized event, @Parameters "
+"List<String> parameters) {\n"
" System.out.println(\"Hello \" + parameters.get(0));\n"
" }\n"
"}]]>"
@@ -423,47 +579,183 @@
" }\n"
"}]]>"
+#. Tag: title
+#: environments.xml:292
+#, no-c-format
+msgid "Bootstrapping CDI SE"
+msgstr ""
+
#. Tag: para
-#: environments.xml:263
+#: environments.xml:294
#, 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."
+msgid "CDI SE applications can be bootstrapped in the following ways."
+msgstr ""
+"Aplicações Web Beans SE são iniciadas executando o seguinte método principal."
+#. Tag: title
+#: environments.xml:300
+#, no-c-format
+msgid "The ContainerInitialized Event"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:302
+#, no-c-format
+msgid ""
+"Thanks to the power of CDI's typesafe event model, application developers "
+"need not write any bootstrapping code. The Weld SE module comes with a built-"
+"in main method which will bootstrap CDI for you and then fire a "
+"<literal>ContainerInitialized</literal> event. The entry point for your "
+"application code would therefore be a simple bean which observes the "
+"<literal>ContainerInitialized</literal> event, as in the previous example."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:310
+#, fuzzy, no-c-format
+msgid ""
+"In this case your application can be started by calling the provided main "
+"method like so:"
+msgstr ""
+"Aplicações Web Beans SE são iniciadas executando o seguinte método principal."
+
#. Tag: programlisting
-#: environments.xml:267
+#: environments.xml:313
#, no-c-format
msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
msgstr "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
+#. Tag: title
+#: environments.xml:319
+#, no-c-format
+msgid "Programatic Bootstrap API"
+msgstr ""
+
#. Tag: para
-#: environments.xml:269
+#: environments.xml:321
#, 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:"
+msgid ""
+"For added flexibility, CDI SE also comes with a bootstrap API which can be "
+"called from within your application in order to initialize CDI and obtain "
+"references to your application's beans and events. The API consists of two "
+"classes: <literal>Weld</literal> and <literal>WeldContainer</literal>."
msgstr ""
#. Tag: programlisting
-#: environments.xml:276
+#: environments.xml:327
#, no-c-format
msgid ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+"<![CDATA[public class Weld\n"
+"{\n"
+"\n"
+" /** Boots Weld and creates and returns a WeldContainer instance, through "
+"which\n"
+" * beans and events can be accesed. */\n"
+" public WeldContainer initialize() {...}\n"
+"\n"
+" /** Convenience method for shutting down the container. */\n"
+" public void shutdown() {...}\n"
+"\n"
"}]]>"
msgstr ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+
+#. Tag: programlisting
+#: environments.xml:329
+#, no-c-format
+msgid ""
+"<![CDATA[public class WeldContainer\n"
+"{\n"
+"\n"
+" /** Provides access to all beans within the application. */\n"
+" public Instance<Object> instance() {...}\n"
+"\n"
+" /** Provides access to all events within the application. */\n"
+" public Event<Object> event() {...}\n"
+"\n"
+" /** Provides direct access to the BeanManager. */\n"
+" public BeanManager getBeanManager() {...}\n"
+"\n"
"}]]>"
+msgstr ""
#. Tag: para
-#: environments.xml:279
+#: environments.xml:331
#, 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>."
+msgid ""
+"Here's an example application main method which uses this API to initialize "
+"a bean of type <literal>MyApplicationBean</literal>."
msgstr ""
+#. Tag: programlisting
+#: environments.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.instance().select(MyApplicationBean.class).get();\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:336
+#, no-c-format
+msgid ""
+"Alternatively the application could be started by firing a custom event "
+"which would then be observed by another simple bean. The following example "
+"fires <literal>MyEvent</literal> on startup."
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.event().select(MyEvent.class).fire( new MyEvent() );\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: environments.xml:348
+#, no-c-format
+msgid "Setting the Classpath"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:350
+#, no-c-format
+msgid ""
+"Weld SE comes packaged as a 'shaded' jar which includes the CDI API, Weld "
+"Core and all dependant classes bundled into a single jar. Therefore the only "
+"Weld jar you need on the classpath, in addition to your application's "
+"classes and dependant jars, is the Weld SE jar."
+msgstr ""
+
#~ msgid ""
+#~ "<![CDATA[@Inject @Parameters List<String> params;\n"
+#~ "@Inject @Parameters String[] paramsArray; // useful for compatability "
+#~ "with existing classes]]>"
+#~ msgstr ""
+#~ "<![CDATA[@Inject @Parameters List<String> params;\n"
+#~ "@Inject @Parameters String[] paramsArray; // useful for compatability "
+#~ "with existing classes]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public class PerformSetup {\n"
+#~ " public void setup(@Observes AfterBeanDiscovery event) {\n"
+#~ " event.addContext( ThreadContext.INSTANCE );\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class PerformSetup {\n"
+#~ " public void setup(@Observes AfterBeanDiscovery event) {\n"
+#~ " event.addContext( ThreadContext.INSTANCE );\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ 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."
@@ -471,6 +763,7 @@
#~ "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 "
@@ -482,14 +775,17 @@
#~ "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/example.po
===================================================================
--- doc/trunk/reference/pt-BR/example.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/example.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:01-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,21 +22,32 @@
#. Tag: para
#: example.xml:6
#, 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:"
+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, "
+"with constraints defined using annotations from the Bean Validation "
+"specification:"
+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
+#: example.xml:12
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Named @RequestScoped\n"
"public class Credentials {\n"
" private String username;\n"
" private String password;\n"
" \n"
+" @NotNull @Length(min=3, max=25)\n"
" public String getUsername() { return username; }\n"
" public void setUsername(String username) { this.username = username; }\n"
" \n"
+" @NotNull @Length(min=6, max=20)\n"
" public String getPassword() { return password; }\n"
" public void setPassword(String password) { this.password = password; }\n"
"}]]>"
@@ -54,24 +65,29 @@
"}]]>"
#. Tag: para
-#: example.xml:13
+#: example.xml:14
#, 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:"
+msgstr ""
+"Esse Web Bean é vinculado ao prompt de login do seguinte formulário JSF:"
#. Tag: programlisting
-#: example.xml:15
-#, no-c-format
+#: example.xml:16
+#, 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"
+" <f:validateBean>\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"
+" </f:validateBean>\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: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"
@@ -81,20 +97,69 @@
" <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:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
+"login.loggedIn}\"/>\n"
+" <h:commandButton value=\"Logout\" action=\"#{login.logout}\" rendered=\"#"
+"{login.loggedIn}\"/>\n"
"</h:form>]]>"
#. Tag: para
-#: example.xml:17
-#, 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:"
+#: example.xml:18
+#, no-c-format
+msgid "Users are represented by a JPA entity:"
+msgstr ""
#. Tag: programlisting
#: example.xml:22
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+" private @NotNull @Length(min=3, max=25) @Id String username;\n"
+" private @NotNull @Length(min=6, max=20) String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" public String setPassword(String password) { this.password = password; }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class Credentials {\n"
+" private String username;\n"
+" private String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" \n"
+" public String getPassword() { return password; }\n"
+" public void setPassword(String password) { this.password = password; }\n"
+"}]]>"
+
+#. Tag: para
+#: example.xml:24
#, no-c-format
msgid ""
+"(Note that we're also going to need a <literal>persistence.xml</literal> "
+"file to configure the JPA persistence unit containing <literal>User</"
+"literal>.)"
+msgstr ""
+
+#. Tag: para
+#: example.xml:29
+#, 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:34
+#, no-c-format
+msgid ""
"<![CDATA[@SessionScoped @Named\n"
"public class Login implements Serializable {\n"
"\n"
@@ -105,7 +170,8 @@
" \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"
+" \"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"
@@ -142,7 +208,8 @@
" \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"
+" \"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"
@@ -170,13 +237,15 @@
"}]]>"
#. Tag: para
-#: example.xml:24
+#: example.xml:36
#, no-c-format
-msgid "<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom qualifier annotations:"
+msgid ""
+"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
+"qualifier annotations:"
msgstr ""
#. Tag: programlisting
-#: example.xml:26
+#: example.xml:38
#, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -190,7 +259,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: programlisting
-#: example.xml:28
+#: example.xml:40
#, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -204,17 +273,20 @@
"public @interface UserDatabase {}]]>"
#. Tag: para
-#: example.xml:30
+#: example.xml:42
#, no-c-format
-msgid "We need an adaptor bean to expose our typesafe <literal>EntityManager</literal>:"
+msgid ""
+"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
+"literal>:"
msgstr ""
#. Tag: programlisting
-#: example.xml:34
-#, no-c-format
+#: example.xml:46
+#, fuzzy, no-c-format
msgid ""
-"<![CDATA[public class UserDatabaseProducer {\n"
-" @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"<![CDATA[class UserDatabaseProducer {\n"
+" @Produces @UserDatabase @PersistenceContext \n"
+" static EntityManager userDatabase;\n"
"}]]>"
msgstr ""
"<![CDATA[public class UserDatabaseProducer {\n"
@@ -222,13 +294,16 @@
"}]]>"
#. Tag: para
-#: example.xml:36
+#: example.xml:48
#, 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:"
+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
+#: example.xml:50
#, no-c-format
msgid ""
"<![CDATA[public class DocumentEditor {\n"
@@ -254,13 +329,13 @@
"}]]>"
#. Tag: para
-#: example.xml:40
+#: example.xml:52
#, no-c-format
msgid "Or we can reference the current user in a JSF view:"
msgstr ""
#. Tag: programlisting
-#: example.xml:42
+#: example.xml:54
#, no-c-format
msgid ""
"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
@@ -272,13 +347,17 @@
"</h:panelGroup>]]>"
#. Tag: para
-#: example.xml:44
+#: example.xml:56
#, 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 ""
+"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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/extend.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:03-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,20 +22,35 @@
#. Tag: para
#: 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:"
+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: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: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:23
@@ -64,7 +79,9 @@
#. Tag: para
#: extend.xml:40
#, no-c-format
-msgid "Injecting dependencies into its own objects using the dependency injection service"
+msgid ""
+"Injecting dependencies into its own objects using the dependency injection "
+"service"
msgstr ""
#. Tag: para
@@ -76,64 +93,266 @@
#. Tag: para
#: extend.xml:50
#, no-c-format
-msgid "Augmenting or overriding the annotation-based metadata with metadata from some other source"
+msgid ""
+"Augmenting or overriding the annotation-based metadata with metadata from "
+"some other source"
msgstr ""
+#. Tag: title
+#: extend.xml:58
+#, fuzzy, no-c-format
+msgid "Creating an <literal>Extension</literal>"
+msgstr "A classe <literal>Bean</literal> "
+
#. Tag: para
-#: extend.xml:57
+#: extend.xml:60
+#, no-c-format
+msgid ""
+"The first step in creating a portable extension is to write a class that "
+"implements <literal>Extension</literal>. This marker interface does not "
+"define any methods, but it's needed to satisfy the requirements of Java SE's "
+"service provider architecture."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:66
+#, no-c-format
+msgid "class MyExtension implements Extension { ... }"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:68
+#, no-c-format
+msgid ""
+"Next, we need to register our extension as a service provider by creating a "
+"file named <literal>META-INF/services/javax.enterprise.inject.spi.Extension</"
+"literal>, which contains the name of our extension class:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:74
+#, no-c-format
+msgid "org.mydomain.extension.MyExtension"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:76
+#, no-c-format
+msgid ""
+"An extension is not a bean, exactly, since it is instantiated by the "
+"container during the initialization process, before any beans or contexts "
+"exist. However, it can be injected into other beans once the initialization "
+"process is complete."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:82
+#, no-c-format
+msgid ""
+"@Inject \n"
+"MyBean(MyExtension myExtension) {\n"
+" myExtension.doSomething();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:84
+#, no-c-format
+msgid ""
+"And, like beans, extensions can have observer methods. Usually, the observer "
+"methods observe <emphasis>container lifecycle events</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:92
+#, no-c-format
+msgid "Container lifecycle events"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:94
+#, no-c-format
+msgid ""
+"During the initialization process, the container fires a series of events, "
+"including:"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:101
+#, no-c-format
+msgid "BeforeBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:106
+#, no-c-format
+msgid "ProcessAnnotatedType"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:110
+#, no-c-format
+msgid ""
+"<literal>ProcessInjectionTarget</literal> and <literal>ProcessProducer</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:115
+#, no-c-format
+msgid ""
+"<literal>ProcessBean</literal> and <literal>ProcessObserverMethod</literal>"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:121
+#, no-c-format
+msgid "AfterBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:126
+#, no-c-format
+msgid "AfterDeploymentValidation"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:131
+#, no-c-format
+msgid "Extensions may observe these events:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {\n"
+" Logger.global.debug(\"beginning the scanning process\");\n"
+" }\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" Logger.global.debug(\"scanning type: \" + pat.getAnnotatedType()."
+"getJavaClass().getName());\n"
+" } \n"
+"\n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {\n"
+" Logger.global.debug(\"finished the scanning process\");\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:137
+#, no-c-format
+msgid ""
+"In fact, the extension can do a lot more than just observe. The extension is "
+"permitted to modify the container's metamodel and more. Here's a very simple "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" //tell the container to ignore the type if it is annotated @Ignore\n"
+" if ( pat.getAnnotatedType().isAnnotionPresent(Ignore.class) ) pat.veto"
+"(); \n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:144
#, 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>."
+msgid "The observer method may inject a <literal>BeanManager</literal>"
+msgstr ""
+"O nervo central para estender a Web Beans é o objeto <literal>Manager</"
+"literal>."
+#. Tag: programlisting
+#: extend.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> "
+"pat, BeanManager beanManager) { ... }]]>"
+msgstr ""
+
#. Tag: title
-#: extend.xml:62
+#: extend.xml:153
#, fuzzy, no-c-format
msgid "The <literal>BeanManager</literal> object"
msgstr "O objeto <literal>Manager</literal>"
#. Tag: para
-#: extend.xml:64
+#: extend.xml:155
#, 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."
+msgid ""
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object. 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:69
-#, no-c-format
+#: extend.xml:161
+#, fuzzy, no-c-format
msgid ""
-"<![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"
+"<![CDATA[public interface BeanManager {\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... qualifiers);\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"
-" 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 void fireEvent(Object event, Annotation... qualifiers);\n"
+" public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, "
+"Annotation... qualifiers);\n"
+" public List<Decorator<?>> resolveDecorators(Set<Type> types, "
+"Annotation... qualifiers);\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 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 isInterceptorBinding(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 Set<Annotation> getInterceptorBindingDefinition(Class<? extends "
+"Annotation> bindingType);\n"
+" public Set<Annotation> getStereotypeDefinition(Class<? extends "
+"Annotation> stereotype);\n"
" public Context getContext(Class<? extends Annotation> scopeType);\n"
" public ELResolver getELResolver();\n"
-" public ExpressionFactory wrapExpressionFactory(ExpressionFactory expressionFactory);\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"
+" public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
"}]]>"
msgstr ""
"<![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 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"
@@ -141,62 +360,163 @@
" 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"
-" 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 <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 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 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 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"
" public ELResolver getELResolver();\n"
-" public ExpressionFactory wrapExpressionFactory(ExpressionFactory expressionFactory);\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"
+" public <T> InjectionTarget<T> createInjectionTarget(AnnotatedType<T> "
+"type);\n"
"}]]>"
#. Tag: para
-#: extend.xml:71
+#: extend.xml:163
#, 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:"
+msgid ""
+"Any bean or other Java EE component which supports injection 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:73
+#: extend.xml:166
#, fuzzy, no-c-format
-msgid "@Inject BeanManager beanManager"
+msgid "@Inject BeanManager beanManager;"
msgstr "@Current Manager manager"
#. Tag: para
-#: extend.xml:75
+#: extend.xml:168
#, 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."
+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
+#: extend.xml:174
#, 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>."
+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
+#: extend.xml:179
#, fuzzy, no-c-format
+msgid "The <literal>InjectionTarget</literal> interface"
+msgstr "A interface <literal>Context</literal>"
+
+#. Tag: para
+#: extend.xml:181
+#, no-c-format
+msgid ""
+"The first thing that a framework developer is going to look for in the "
+"portable extension SPI is a way to inject CDI beans into objects which are "
+"not under the control of CDI. The <literal>InjectionTarget</literal> "
+"interface makes this very easy."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:188
+#, no-c-format
+msgid ""
+"We recommend that frameworks let CDI take over the job of actually "
+"instantiating the framework-controlled objects. That way, the framework-"
+"controlled objects can take advantage of constructor injection. However, if "
+"the framework requires use of a constructor with a special signature, the "
+"framework will need to instatiate the object itself, and so only method and "
+"field injection will be supported."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[//get the BeanManager from JNDI\n"
+"BeanManager beanManager = (BeanManager) new InitialContext().lookup(\"java:"
+"comp/BeanManager\");\n"
+"\n"
+"//CDI uses an AnnotatedType object to read the annotations of a class\n"
+"AnnotatedType<SomeFrameworkComponent> type = beanManager.createAnnotatedType"
+"(SomeFrameworkComponent.class);\n"
+"\n"
+"//The extension uses an InjectionTarget to delegate instantiation, "
+"dependency injection \n"
+"//and lifecycle callbacks to the CDI container\n"
+"InjectionTarget<SomeFrameworkComponent> it = beanManager."
+"createInjectionTarget(type);\n"
+"\n"
+"//each instance needs its own CDI CreationalContext\n"
+"CreationalContext ctx = beanManager.createCreationalContext(null);\n"
+"\n"
+"//instantiate the framework component and inject its dependencies\n"
+"SomeFrameworkComponent instance = it.produce(ctx); //call the constructor\n"
+"it.inject(instance, ctx); //call initializer methods and perform field "
+"injection\n"
+"it.postConstruct(instance); //call the @PostConstruct method\n"
+"\n"
+"...\n"
+"\n"
+"//destroy the framework component instance and clean up dependent objects\n"
+"it.preDestroy(instance); //call the @PreDestroy method\n"
+"it.dispose(instance); //it is now safe to discard the instance\n"
+"ctx.release(); //clean up dependent objects\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:201
+#, fuzzy, no-c-format
msgid "The <literal>Bean</literal> interface"
msgstr "A interface <literal>Context</literal>"
#. Tag: para
-#: extend.xml:88
+#: extend.xml:203
#, 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."
+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. "
+"There are even <literal>Bean</literal> objects representing interceptors, "
+"decorators and producer methods."
+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: para
+#: extend.xml:210
+#, no-c-format
+msgid ""
+"The <literal>Bean</literal> interface exposes all the interesting things we "
+"dicussed in <xref linkend=\"bean-anatomy\"/>."
+msgstr ""
+
#. Tag: programlisting
-#: extend.xml:94
+#: extend.xml:215
#, no-c-format
msgid ""
"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
@@ -224,55 +544,564 @@
"}]]>"
#. Tag: para
-#: 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."
+#: extend.xml:217
+#, no-c-format
+msgid "There's an easy way to find out what beans exist in the application:"
+msgstr ""
+#. Tag: programlisting
+#: extend.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[Set<Bean<?>> allBeans = beanManager.getBeans(Obect.class, new "
+"AnnotationLiteral<Any>() {});]]>"
+msgstr ""
+
#. Tag: para
-#: extend.xml:104
+#: extend.xml:223
#, 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>."
+msgid ""
+"The <literal>Bean</literal> interface makes it possible for a portable "
+"extension 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: title
-#: extend.xml:112
+#: extend.xml:233
+#, fuzzy, no-c-format
+msgid "Registering a <literal>Bean</literal>"
+msgstr "A classe <literal>Bean</literal> "
+
+#. Tag: para
+#: extend.xml:235
#, no-c-format
+msgid ""
+"The most common kind of CDI portable extension registers a bean (or beans) "
+"with the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:239
+#, no-c-format
+msgid ""
+"In this example, we make a framework class, <literal>SecurityManager</"
+"literal> available for injection. To make things a bit more interesting, "
+"we're going to delegate back to the container's <literal>InjectionTarget</"
+"literal> to perform instantiation and injection upon the "
+"<literal>SecurityManager</literal> instance."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:246
+#, no-c-format
+msgid ""
+"<![CDATA[public class SecurityManagerExtension implements Extension {\n"
+" \n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager "
+"bm) {\n"
+" \n"
+" //use this to read annotations of the class\n"
+" AnnotatedType<SecurityManager> at = bm.createAnnotatedType"
+"(SecurityManager.class); \n"
+"\n"
+" //use this to instantiate the class and inject dependencies\n"
+" final InjectionTarget<SecurityManager> it = bm.createInjectionTarget"
+"(at); \n"
+"\n"
+" abd.addBean( new Bean<SecurityManager>() {\n"
+"\n"
+" @Override\n"
+" public Class<?> getBeanClass() {\n"
+" return SecurityManager.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public String getName() {\n"
+" return \"securityManager\";\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getQualifiers() {\n"
+" Set<Annotation> qualifiers = new HashSet<Annotation>();\n"
+" qualifiers.add( new AnnotationLiteral<Default>() {} );\n"
+" qualifiers.add( new AnnotationLiteral<Any>() {} );\n"
+" return qualifiers;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<? extends Annotation> getScope() {\n"
+" return SessionScoped.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Class<? extends Annotation>> getStereotypes() {\n"
+" return Collections.emptySet();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypes() {\n"
+" Set<Type> types = new HashSet<Type>();\n"
+" types.add(SecurityManager.class);\n"
+" types.add(Object.class);\n"
+" return types;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAlternative() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isNullable() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public SecurityManager create(CreationalContext<SecurityManager> "
+"ctx) {\n"
+" SecurityManager instance = it.produce(ctx);\n"
+" it.inject(instance, ctx);\n"
+" it.postConstruct(instance);\n"
+" return instance;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void destroy(SecurityManager instance, \n"
+" CreationalContext<SecurityManager> ctx) {\n"
+" it.preDestroy(instance);\n"
+" it.dispose(instance);\n"
+" ctx.release();\n"
+" }\n"
+" \n"
+" } );\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:248
+#, no-c-format
+msgid ""
+"But a portable extension can also mess with beans that are discovered "
+"automatically by the container."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:255
+#, no-c-format
+msgid "Wrapping an <literal>AnnotatedType</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:257
+#, no-c-format
+msgid ""
+"One of the most interesting things that an extension class can do is process "
+"the annotations of a bean class <emphasis>before</emphasis> the container "
+"builds its metamodel."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:262
+#, no-c-format
+msgid ""
+"Let's start with an example of an extension that provides support for the "
+"use of <literal>@Named</literal> at the package level. The package-level "
+"name is used to qualify the EL names of all beans defined in that package. "
+"The portable extension uses the <literal>ProcessAnnotatedType</literal> "
+"event to wrap the <literal>AnnotatedType</literal> object and override the "
+"<literal>value()</literal> of the <literal>@Named</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[public class QualifiedNameExtension implements Extension {\n"
+"\n"
+" <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) {\n"
+"\n"
+" //wrap this to override the annotations of the class\n"
+" final AnnotatedType<X> at = pat.getAnnotatedType();\n"
+" \n"
+" AnnotatedType<X> wrapped = new AnnotatedType<X>() {\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedConstructor<X>> getConstructors() {\n"
+" return at.getConstructors();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedField<? super X>> getFields() {\n"
+" return at.getFields();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<X> getJavaClass() {\n"
+" return at.getJavaClass();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedMethod<? super X>> getMethods() {\n"
+" return at.getMethods();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public <T extends Annotation> T getAnnotation(final Class<T> "
+"annType) {\n"
+" if ( Named.class.equals(annType) ) {\n"
+" class NamedLiteral \n"
+" extends AnnotationLiteral<Named> \n"
+" implements Named {\n"
+" @Override\n"
+" public String value() {\n"
+" Package pkg = at.getClass().getPackage();\n"
+" String unqualifiedName = at.getAnnotation(Named."
+"class).value();\n"
+" final String qualifiedName;\n"
+" if ( pkg.isAnnotationPresent(Named.class) ) {\n"
+" qualifiedName = pkg.getAnnotation(Named."
+"class).value() \n"
+" + '.' + unqualifiedName;\n"
+" }\n"
+" else {\n"
+" qualifiedName = unqualifiedName;\n"
+" }\n"
+" return qualifiedName;\n"
+" }\n"
+" }\n"
+" return (T) new NamedLiteral();\n"
+" }\n"
+" else {\n"
+" return at.getAnnotation(annType);\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getAnnotations() {\n"
+" return at.getAnnotations();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Type getBaseType() {\n"
+" return at.getBaseType();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypeClosure() {\n"
+" return at.getTypeClosure();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annType) {\n"
+" return at.isAnnotationPresent(annType);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:272
+#, no-c-format
+msgid ""
+"Here's a second example, which adds the <literal>@Alternative</literal> "
+"annotation to any class which implements a certain <literal>Service</"
+"literal> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[class ServiceAlternativeExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" \n"
+" final AnnotatedType<T> type = pat.getAnnotatedType();\n"
+" \n"
+" if ( Service.class.isAssignableFrom( type.getJavaClass() ) ) {\n"
+" \n"
+" //if the class implements Service, make it an @Alternative\n"
+" AnnotatedType<T> wrapped = new AnnotatedType<T>() {\n"
+" \n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annotationType) {\n"
+" return annotationType.equals(Alternative.class) ? \n"
+" true : type.isAnnotationPresent(annotationType);\n"
+" }\n"
+" \n"
+" //remaining methods of AnnotatedType\n"
+" ...\n"
+" }\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:283
+#, no-c-format
+msgid ""
+"The <literal>AnnotatedType</literal> is not the only thing that can be "
+"wrapped by an extension."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:288
+#, no-c-format
+msgid "Wrapping an <literal>InjectionTarget</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:290
+#, no-c-format
+msgid ""
+"The <literal>InjectionTarget</literal> interface exposes operations for "
+"producing and disposing an instance of a component, injecting its "
+"dependencies and invoking its lifecycle callbacks. A portable extension may "
+"wrap the <literal>InjectionTarget</literal> for any Java EE component that "
+"supports injection, allowing it to intercept any of these operations when "
+"they are invoked by the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:297
+#, no-c-format
+msgid ""
+"Here's a CDI portable extension that reads values from properties files and "
+"configures fields of Java EE components, including servlets, EJBs, managed "
+"beans, interceptors and more. In this example, properties for a class such "
+"as <literal>org.mydomain.blog.Blogger</literal> go in a resource named "
+"<literal>org/mydomain/blog/Blogger.properties</literal>, and the name of a "
+"property must match the name of the field to be configured. So "
+"<literal>Blogger.properties</literal> could contain:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:305
+#, no-c-format
+msgid ""
+"firstName=Gavin\n"
+"lastName=King"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:307
+#, no-c-format
+msgid ""
+"The portable extension works by wrapping the containers "
+"<literal>InjectionTarget</literal> and setting field values from the "
+"<literal>inject()</literal> method."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:310
+#, no-c-format
+msgid ""
+"<![CDATA[public class ConfigExtension implements Extension {\n"
+"\n"
+" <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> "
+"pit) {\n"
+" \n"
+" //wrap this to intercept the component lifecycle\n"
+" final InjectionTarget<X> it = pit.getInjectionTarget();\n"
+" \n"
+" final Map<Field, Object> configuredValues = new HashMap<Field, "
+"Object>();\n"
+" \n"
+" //use this to read annotations of the class and its members\n"
+" AnnotatedType<X> at = pit.getAnnotatedType();\n"
+" \n"
+" //read the properties file\n"
+" String propsFileName = at.getClass().getSimpleName() + \".properties"
+"\";\n"
+" InputStream stream = at.getJavaClass().getResourceAsStream"
+"(propsFileName);\n"
+" if (stream!=null) {\n"
+" \n"
+" try {\n"
+" Properties props = new Properties();\n"
+" props.load(stream);\n"
+" for (Map.Entry<Object, Object> property : props.entrySet()) "
+"{\n"
+" String fieldName = property.getKey().toString();\n"
+" Object value = property.getValue();\n"
+" try {\n"
+" Field field = at.getJavaClass().getField"
+"(fieldName);\n"
+" field.setAccessible(true);\n"
+" if ( field.getType().isAssignableFrom( value.getClass"
+"() ) ) {\n"
+" configuredValues.put(field, value);\n"
+" }\n"
+" else {\n"
+" //TODO: do type conversion automatically\n"
+" pit.addDefinitionError( new InjectionException(\n"
+" \"field is not of type String: \" + "
+"field ) );\n"
+" }\n"
+" }\n"
+" catch (NoSuchFieldException nsfe) {\n"
+" pit.addDefinitionError(nsfe);\n"
+" }\n"
+" finally {\n"
+" stream.close();\n"
+" }\n"
+" }\n"
+" }\n"
+" catch (IOException ioe) {\n"
+" pit.addDefinitionError(ioe);\n"
+" }\n"
+" }\n"
+" \n"
+" InjectionTarget<X> wrapped = new InjectionTarget<X>() {\n"
+"\n"
+" @Override\n"
+" public void inject(X instance, CreationalContext<X> ctx) {\n"
+" it.inject(instance, ctx);\n"
+" \n"
+" //set the values onto the new instance of the component\n"
+" for (Map.Entry<Field, Object> configuredValue: "
+"configuredValues.entrySet()) {\n"
+" try {\n"
+" configuredValue.getKey().set(instance, "
+"configuredValue.getValue());\n"
+" }\n"
+" catch (Exception e) {\n"
+" throw new InjectionException(e);\n"
+" }\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void postConstruct(X instance) {\n"
+" it.postConstruct(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void preDestroy(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void dispose(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public X produce(CreationalContext<X> ctx) {\n"
+" return it.produce(ctx);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pit.setInjectionTarget(wrapped);\n"
+" \n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:312
+#, no-c-format
+msgid ""
+"There's a lot more to the portable extension SPI than what we've discussed "
+"here. Check out the CDI spec or Javadoc for more information. For now, we'll "
+"just mention one more extension point."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:320
+#, no-c-format
msgid "The <literal>Context</literal> interface"
msgstr "A interface <literal>Context</literal>"
#. Tag: para
-#: extend.xml:114
+#: extend.xml:322
#, 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."
+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:119
+#: extend.xml:327
#, no-c-format
msgid ""
"<![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, CreationalContext<T> "
+"creationalContext);\n"
" public <T> T get(Contextual<T> contextual);\n"
" boolean isActive();\n"
"}]]>"
msgstr ""
"<![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, CreationalContext<T> "
+"creationalContext);\n"
" public <T> T get(Contextual<T> contextual);\n"
" boolean isActive();\n"
"}]]>"
#. Tag: para
-#: extend.xml:121
+#: extend.xml:329
#, 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 ""
+"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."
+#, fuzzy
+#~ 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>."
+
#~ msgid "Extending Web Beans"
#~ msgstr "Estendendo a Web Beans"
+
#~ msgid ""
#~ "<![CDATA[public interface Manager\n"
#~ "{\n"
@@ -391,8 +1220,7 @@
#~ " Annotation... bindings);\n"
#~ "\n"
#~ "}]]>"
-#~ msgid "The <literal>Bean</literal> class"
-#~ msgstr "A classe <literal>Bean</literal> "
+
#~ msgid ""
#~ "public abstract class Bean<T> {\n"
#~ " \n"
@@ -447,4 +1275,3 @@
#~ " public abstract void destroy(T instance);\n"
#~ " \n"
#~ "}"
-
Modified: doc/trunk/reference/pt-BR/extensions.po
===================================================================
--- doc/trunk/reference/pt-BR/extensions.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/extensions.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:02-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -23,7 +24,9 @@
#: 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!"
+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:17
@@ -34,23 +37,31 @@
#. Tag: para
#: 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."
+msgid ""
+"Adding logging to your application is now even easier with simple injection "
+"of a logger object into any CDI bean. Simply create an injection point of "
+"type <literal>org.slf4j.Logger</literal> 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:26
-#, no-c-format
+#: extensions.xml:25
+#, fuzzy, no-c-format
msgid ""
-"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
-"import org.jboss.weld.log.Log;\n"
+"<![CDATA[import org.slf4j.Logger;\n"
+"import javax.inject.Inject;\n"
"\n"
"public class Checkout {\n"
-" private @Inject @Logger Log log;\n"
+" private @Inject Logger log;\n"
"\n"
" public void invoiceItems() {\n"
" ShoppingCart cart;\n"
" ...\n"
-" log.debug(\"Items invoiced for {0}\", cart);\n"
+" log.debug(\"Items invoiced for {}\", cart);\n"
" }\n"
"}]]>"
msgstr ""
@@ -68,25 +79,42 @@
"}]]>"
#. Tag: para
-#: extensions.xml:28
+#: 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 <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."
+msgid ""
+"The example shows how objects can be interpolated into a message. If you use "
+"this approach, you do not need to surround a call to the logger with a "
+"condition like <literal>if ( log.isDebugEnabled() )</literal> to avoid "
+"string concatenation."
msgstr ""
#. Tag: para
-#: extensions.xml:41
+#: extensions.xml:34
#, 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> ."
+msgid ""
+"You can add Weld logging 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:46
+#: extensions.xml:39
#, 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 ""
+"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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/gettingstarted.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:01-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,13 +22,23 @@
#. Tag: para
#: gettingstarted.xml:7
#, no-c-format
-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."
+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:16
#, 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."
+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: title
@@ -40,7 +50,9 @@
#. Tag: para
#: gettingstarted.xml:24
#, no-c-format
-msgid "To run the examples with the provided build scripts, you'll need the following:"
+msgid ""
+"To run the examples with the provided build scripts, you'll need the "
+"following:"
msgstr ""
#. Tag: para
@@ -64,7 +76,9 @@
#. Tag: para
#: gettingstarted.xml:39
#, no-c-format
-msgid "JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are available),"
+msgid ""
+"JBoss AS 5.2.0 (currently only nightly builds of JBoss AS 5.2.0.Beta1 are "
+"available),"
msgstr ""
#. Tag: para
@@ -88,31 +102,45 @@
#. Tag: para
#: gettingstarted.xml:53
#, no-c-format
-msgid "(optionally) Maven 2.x, to run the examples in an embedded servlet container"
+msgid ""
+"(optionally) Maven 2.x, to run the examples in an embedded servlet container"
msgstr ""
#. Tag: para
#: gettingstarted.xml:58
#, no-c-format
-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."
+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: para
#: gettingstarted.xml:64
#, no-c-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."
+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:71
#, no-c-format
-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."
+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:76
#, no-c-format
-msgid "The sections below cover the steps for deploying with both Ant and Maven in detail. Let's start with JBoss AS."
+msgid ""
+"The sections below cover the steps for deploying with both Ant and Maven in "
+"detail. Let's start with JBoss AS."
msgstr ""
#. Tag: title
@@ -124,13 +152,27 @@
#. Tag: para
#: gettingstarted.xml:83
#, no-c-format
-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!"
+msgid ""
+"To deploy the examples to JBoss AS, you'll need <ulink url=\"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 url="
+"\"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:92
#, no-c-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>."
+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
@@ -144,7 +186,13 @@
#. Tag: para
#: gettingstarted.xml:101
#, no-c-format
-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:"
+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
@@ -157,12 +205,15 @@
#: 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!"
+msgstr ""
+"Agora, você está pronto para fazer a publicação do seu primeiro exemplo!"
#. Tag: para
#: gettingstarted.xml:114
#, no-c-format
-msgid "Switch to the <literal>examples/jsf/numberguess</literal> directory and execute the Ant <literal>deploy</literal> target:"
+msgid ""
+"Switch to the <literal>examples/jsf/numberguess</literal> directory and "
+"execute the Ant <literal>deploy</literal> target:"
msgstr ""
#. Tag: programlisting
@@ -178,7 +229,9 @@
#. 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:"
+msgid ""
+"If you haven't already, start JBoss AS. You can either start JBoss AS from a "
+"Linux shell:"
msgstr ""
#. Tag: programlisting
@@ -192,8 +245,7 @@
"$> ./bin/run.sh]]>"
#. Tag: para
-#: gettingstarted.xml:127
-#: gettingstarted.xml:369
+#: gettingstarted.xml:127 gettingstarted.xml:369
#, no-c-format
msgid "a Windows command window:"
msgstr ""
@@ -209,8 +261,7 @@
"$> run]]>"
#. Tag: para
-#: gettingstarted.xml:133
-#: gettingstarted.xml:375
+#: gettingstarted.xml:133 gettingstarted.xml:375
#, no-c-format
msgid "or you can start the server using an IDE, like Eclipse."
msgstr ""
@@ -218,38 +269,62 @@
#. Tag: para
#: gettingstarted.xml:138
#, no-c-format
-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."
+msgid ""
+"If you are using Eclipse, you should seriously consider installing the "
+"<ulink url=\"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
-#, no-c-format
-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>."
+#, fuzzy, no-c-format
+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 url=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"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>) ."
#. Tag: para
#: gettingstarted.xml:152
#, no-c-format
-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."
+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: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"
+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:163
#, 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 "
+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: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> - implanta 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:173
@@ -266,7 +341,11 @@
#. Tag: para
#: 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:"
+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
@@ -282,19 +361,31 @@
#. Tag: para
#: gettingstarted.xml:194
#, no-c-format
-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."
+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
#, 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>) ."
+msgid ""
+"Again, wait a few seconds for the application to deploy (if you're really "
+"bored, read the log messages), and visit <ulink url=\"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:206
#, no-c-format
-msgid "TODO Insert note about upgrading the Weld deployer that directs reader to section on the JBoss AS environment"
+msgid ""
+"TODO Insert note about upgrading the Weld deployer that directs reader to "
+"section on the JBoss AS environment"
msgstr ""
#. Tag: title
@@ -306,13 +397,26 @@
#. Tag: para
#: gettingstarted.xml:215
#, no-c-format
-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."
+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:221
#, no-c-format
-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."
+msgid ""
+"To deploy the examples to GlassFish, you'll need the final <ulink url="
+"\"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 url=\"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
@@ -328,13 +432,22 @@
#. Tag: para
#: gettingstarted.xml:233
#, no-c-format
-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)."
+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:240
#, no-c-format
-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."
+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
@@ -350,13 +463,24 @@
#. Tag: para
#: gettingstarted.xml:248
#, no-c-format
-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."
+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:"
+msgid ""
+"You deploy applications to GlassFish using the <ulink url=\"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
@@ -368,13 +492,27 @@
#. Tag: para
#: gettingstarted.xml:264
#, no-c-format
-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."
+msgid ""
+"After a few seconds you can visit the Admin Console in the browser at the "
+"URL <ulink url=\"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 url=\"http://"
+"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
+"ulink> or <ulink url=\"http://localhost:7070/weld-translator\">http://"
+"localhost:7070/weld-translator</ulink>, depending on which example you "
+"deployed."
msgstr ""
#. Tag: para
#: gettingstarted.xml:276
#, no-c-format
-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!"
+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
@@ -386,20 +524,34 @@
#. Tag: para
#: 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."
+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:291
#, no-c-format
-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.)"
+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: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 "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 ""
+"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 url=\"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:302
@@ -410,7 +562,12 @@
#. Tag: para
#: gettingstarted.xml:304
#, no-c-format
-msgid "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."
+msgid ""
+"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
@@ -422,7 +579,13 @@
#. Tag: para
#: gettingstarted.xml:314
#, no-c-format
-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>."
+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
@@ -440,7 +603,9 @@
#. Tag: para
#: gettingstarted.xml:327
#, no-c-format
-msgid "Change to the <literal>examples/jsf/numberguess</literal> directory again and run the Ant <literal>deploy</literal> target for Tomcat:"
+msgid ""
+"Change to the <literal>examples/jsf/numberguess</literal> directory again "
+"and run the Ant <literal>deploy</literal> target for Tomcat:"
msgstr ""
#. Tag: programlisting
@@ -456,26 +621,41 @@
#. Tag: para
#: gettingstarted.xml:335
#, no-c-format
-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.\"."
+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: para
#: gettingstarted.xml:341
#, fuzzy, no-c-format
-msgid "<literal>ant tomcat.restart</literal> - deploy the example in exploded format to Tomcat"
-msgstr "<literal>ant tomcat.restart</literal> - publica o exemplo no formato explodido"
+msgid ""
+"<literal>ant tomcat.restart</literal> - deploy the example in exploded "
+"format to Tomcat"
+msgstr ""
+"<literal>ant tomcat.restart</literal> - publica o exemplo no formato "
+"explodido"
#. Tag: para
#: gettingstarted.xml:346
#, 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 "
+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: 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"
+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:356
@@ -486,7 +666,9 @@
#. Tag: para
#: gettingstarted.xml:363
#, no-c-format
-msgid "If you haven't already, start Tomcat. You can either start Tomcat from a Linux shell:"
+msgid ""
+"If you haven't already, start Tomcat. You can either start Tomcat from a "
+"Linux shell:"
msgstr ""
#. Tag: programlisting
@@ -512,7 +694,12 @@
#. Tag: para
#: gettingstarted.xml:379
#, no-c-format
-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>!"
+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 url=\"http://"
+"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
+"ulink>!"
msgstr ""
#. Tag: title
@@ -524,19 +711,32 @@
#. Tag: para
#: gettingstarted.xml:390
#, no-c-format
-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."
+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:396
#, no-c-format
-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."
+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:403
#, no-c-format
-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:"
+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
@@ -548,7 +748,9 @@
#. Tag: para
#: gettingstarted.xml:410
#, no-c-format
-msgid "Restart Tomcat. You can now deploy the application to Tomcat with Maven using this command:"
+msgid ""
+"Restart Tomcat. You can now deploy the application to Tomcat with Maven "
+"using this command:"
msgstr ""
#. Tag: programlisting
@@ -560,7 +762,8 @@
#. Tag: para
#: gettingstarted.xml:416
#, no-c-format
-msgid "Once the application is deployed, you can redeploy it using this command:"
+msgid ""
+"Once the application is deployed, you can redeploy it using this command:"
msgstr ""
#. Tag: programlisting
@@ -572,13 +775,18 @@
#. Tag: para
#: gettingstarted.xml:422
#, no-c-format
-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."
+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:427
#, no-c-format
-msgid "Rather than shipping the container off to a standalone Tomcat installation, you can also execute the application in an embedded Tomcat 6 container:"
+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: programlisting
@@ -590,7 +798,12 @@
#. Tag: para
#: gettingstarted.xml:434
#, no-c-format
-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:"
+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
@@ -602,7 +815,10 @@
#. Tag: para
#: gettingstarted.xml:443
#, no-c-format
-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."
+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
@@ -614,25 +830,44 @@
#. Tag: para
#: gettingstarted.xml:457
#, no-c-format
-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."
+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:464
#, no-c-format
-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."
+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:470
#, no-c-format
-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."
+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:479
#, no-c-format
-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:"
+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
@@ -648,13 +883,25 @@
#. Tag: para
#: gettingstarted.xml:487
#, no-c-format
-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."
+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 url=\"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:494
#, no-c-format
-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."
+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
@@ -666,13 +913,23 @@
#. Tag: para
#: gettingstarted.xml:503
#, no-c-format
-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."
+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:510
#, no-c-format
-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."
+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
@@ -690,7 +947,9 @@
#. Tag: para
#: gettingstarted.xml:522
#, no-c-format
-msgid "Next, assemble all the necessary resources under <literal>src/main/webapp</literal>:"
+msgid ""
+"Next, assemble all the necessary resources under <literal>src/main/webapp</"
+"literal>:"
msgstr ""
#. Tag: programlisting
@@ -702,19 +961,30 @@
#. Tag: para
#: gettingstarted.xml:528
#, no-c-format
-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."
+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 url=\"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:536
#, no-c-format
-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."
+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 ""
#, 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"
+
#~ msgid ""
#~ "The Web Beans is being developed at <ulink url=\"http://seamframework.org/"
#~ "WebBeans\">the Seam project</ulink>. You can download the latest "
@@ -725,6 +995,7 @@
#~ "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 ""
#~ "Web Beans comes with a two deployable example applications: "
#~ "<literal>webbeans-numberguess</literal>, a war example, containing only "
@@ -741,10 +1012,13 @@
#~ "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 "JBoss AS 5.0.1.GA, or"
#~ msgstr "JBoss AS 5.0.1.GA, e"
+
#~ msgid "Ant 1.7.0."
#~ msgstr "Ant 1.7.0."
+
#~ 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 "
@@ -753,24 +1027,28 @@
#~ "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:\""
+
#~ msgid ""
#~ "<![CDATA[$ cd /Applications\n"
#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
#~ msgstr ""
#~ "<![CDATA[$ cd /Applications\n"
#~ "$ unzip ~/jboss-5.0.1.GA.zip]]>"
+
#~ 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"
+
#~ 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."
@@ -779,45 +1057,55 @@
#~ "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:"
+
#~ 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:"
+
#~ 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 ""
#~ "Então, você pode instalar a atualização. O script de atualização "
#~ "utilizará o Maven para fazer o download da Web Beans automaticamente."
+
#~ 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>!"
@@ -825,6 +1113,7 @@
#~ "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 "
@@ -835,12 +1124,14 @@
#~ "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."
@@ -849,6 +1140,7 @@
#~ "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:"
@@ -870,24 +1162,31 @@
#~ "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 "
@@ -896,6 +1195,7 @@
#~ "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 "
@@ -904,6 +1204,7 @@
#~ "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 "
@@ -914,6 +1215,7 @@
#~ "<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"
@@ -940,12 +1242,14 @@
#~ " </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>:"
@@ -1184,6 +1488,7 @@
#~ "\"> <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 "
@@ -1192,6 +1497,7 @@
#~ "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"
@@ -1204,12 +1510,14 @@
#~ "@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"
@@ -1224,6 +1532,7 @@
#~ "@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 "
@@ -1232,6 +1541,7 @@
#~ "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"
@@ -1280,18 +1590,21 @@
#~ " }\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 "
@@ -1304,6 +1617,7 @@
#~ "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"
@@ -1516,6 +1830,7 @@
#~ "<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 "
@@ -1534,6 +1849,7 @@
#~ "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</"
@@ -1544,12 +1860,16 @@
#~ " <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"
@@ -1564,8 +1884,10 @@
#~ " return HomePage.class;\n"
#~ " }\n"
#~ "}]]>"
+
#~ msgid "<![CDATA[ @Current Game game;]]>"
#~ msgstr "<![CDATA[ @Current Game game;]]>"
+
#~ msgid ""
#~ "<![CDATA[final Component guessButton = new AjaxButton(\"GuessButton\") "
#~ "{ \n"
@@ -1576,6 +1898,7 @@
#~ "{ \n"
#~ " protected void onSubmit(AjaxRequestTarget target, Form form) {\n"
#~ " if (game.check()) {]]>"
+
#~ msgid ""
#~ "<![CDATA[<filter>\n"
#~ " <filter-name>wicket.numberguess-example</filter-name>\n"
@@ -1618,12 +1941,16 @@
#~ " <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"
@@ -1635,6 +1962,7 @@
#~ 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="
@@ -2161,26 +2489,31 @@
#~ "<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 "
@@ -2189,6 +2522,7 @@
#~ "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"
@@ -2217,12 +2551,14 @@
#~ " </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"
@@ -2265,6 +2601,7 @@
#~ " <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 "
@@ -2275,6 +2612,7 @@
#~ "<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 "
@@ -2283,6 +2621,7 @@
#~ "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"
@@ -2339,12 +2678,14 @@
#~ " </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 "
@@ -2355,6 +2696,7 @@
#~ "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 "
@@ -2371,6 +2713,7 @@
#~ "<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 "
@@ -2379,6 +2722,7 @@
#~ "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"
@@ -2418,6 +2762,7 @@
#~ " </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 "
@@ -2426,6 +2771,7 @@
#~ "<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, "
@@ -2434,6 +2780,7 @@
#~ "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"
@@ -2450,12 +2797,15 @@
#~ "{\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"
@@ -2468,12 +2818,14 @@
#~ " {\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."
@@ -2484,6 +2836,7 @@
#~ "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."
@@ -2491,6 +2844,7 @@
#~ "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 "
@@ -2500,4 +2854,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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/injection.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:09-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,7 +22,10 @@
#. Tag: para
#: injection.xml:6
#, no-c-format
-msgid "One of the most significant features of CDI—certainly the most recognized—is dependency injection; excuse me, <emphasis>typesafe</emphasis> 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
@@ -34,7 +37,10 @@
#. Tag: para
#: injection.xml:14
#, no-c-format
-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."
+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
@@ -110,7 +116,10 @@
#. 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."
+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
@@ -138,55 +147,85 @@
#. Tag: para
#: injection.xml:51
#, no-c-format
-msgid "Getter and setter methods are not required for field injection to work (unlike with JSF managed beans)."
+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 "A injeção de dependências sempre ocorre quando a instância do Web Bean é instanciada."
+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: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."
+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: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."
+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: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."
+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: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."
+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 "(The only complication is that the container might call initializer methods declared by a superclass before initializing injected fields declared by a subclass.)"
+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:90
#, no-c-format
-msgid "One major advantage of constructor injection is that it allows the bean to be immutable."
+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:"
+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
@@ -204,7 +243,11 @@
#. Tag: para
#: injection.xml:102
#, no-c-format
-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."
+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
@@ -216,26 +259,48 @@
#. Tag: para
#: injection.xml:112
#, 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."
+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: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:"
+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: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>,"
+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"
+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
@@ -246,13 +311,20 @@
#. Tag: para
#: injection.xml:143
#, no-c-format
-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."
+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:149
#, no-c-format
-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."
+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
@@ -264,7 +336,11 @@
#. Tag: para
#: injection.xml:159
#, 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>:"
+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
@@ -298,8 +374,12 @@
#. Tag: para
#: 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:"
+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:173
@@ -332,8 +412,12 @@
#. Tag: para
#: 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."
+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:181
@@ -362,15 +446,19 @@
#, no-c-format
msgid ""
"<![CDATA[@Inject\n"
-"public void setPaymentProcessors(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
-" @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+" @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
" this.syncPaymentProcessor = syncPaymentProcessor;\n"
" this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
"}]]>"
msgstr ""
"<![CDATA[@Inject\n"
-"public void setPaymentProcessors(@Synchronous PaymentProcessor syncPaymentProcessor, \n"
-" @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"public void setPaymentProcessors(@Synchronous PaymentProcessor "
+"syncPaymentProcessor, \n"
+" @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
" this.syncPaymentProcessor = syncPaymentProcessor;\n"
" this.asyncPaymentProcessor = asyncPaymentProcessor;\n"
"}]]>"
@@ -402,7 +490,11 @@
#. 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:"
+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
@@ -410,43 +502,104 @@
#, no-c-format
msgid ""
"<![CDATA[@Produces\n"
-"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor syncPaymentProcessor,\n"
-" @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+" @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
" return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\n"
"}]]>"
msgstr ""
"<![CDATA[@Produces\n"
-"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor syncPaymentProcessor,\n"
-" @Asynchronous PaymentProcessor asyncPaymentProcessor) {\n"
+"PaymentProcessor getPaymentProcessor(@Synchronous PaymentProcessor "
+"syncPaymentProcessor,\n"
+" @Asynchronous PaymentProcessor "
+"asyncPaymentProcessor) {\n"
" return isSynchronous() ? syncPaymentProcessor : asyncPaymentProcessor;\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."
+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>!"
+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:216
+#, fuzzy, no-c-format
+msgid ""
+"The built-in qualifiers <literal>@Default</literal> and <literal>@Any</"
+"literal>"
+msgstr ""
+"Web Beans simples suportam apenas chamadas a <literal>@PostConstruct</"
+"literal> e <literal>@PreDestroy</literal>."
+
+#. Tag: para
+#: injection.xml:218
#, no-c-format
+msgid ""
+"Whenever a bean or injection point does not explicitly declare a qualifier, "
+"the container assumes the qualifier <literal>@Default</literal>. From time "
+"to time, you'll need to decare an injection point without specifying a "
+"qualifier. There's a qualifier for that too. All beans have the qualifier "
+"<literal>@Any</literal>. Therefore, by explicitly specifying <literal>@Any</"
+"literal> at an injection point, you suppress the default qualifier, without "
+"otherwise restricting the beans that are eligible for injection."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:225
+#, no-c-format
+msgid ""
+"This is especially useful if you want to iterate over all beans with a "
+"certain bean type. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:226
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject \n"
+"void initServices(@Any Instance<Service> services) { \n"
+" for (Service service: services) {\n"
+" service.init();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: injection.xml:232
+#, no-c-format
msgid "Qualifiers with members"
msgstr ""
#. Tag: para
-#: injection.xml:218
+#: injection.xml:234
#, no-c-format
-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:"
+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:224
+#: injection.xml:240
#, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -464,33 +617,38 @@
"}]]>"
#. Tag: para
-#: injection.xml:226
+#: injection.xml:242
#, no-c-format
-msgid "Then we select one of the possible member values when appling the qualifier:"
+msgid ""
+"Then we select one of the possible member values when appling the qualifier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:230
+#: injection.xml:246
#, no-c-format
-msgid "<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
-msgstr "<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
+msgid ""
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
+msgstr ""
+"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
#. Tag: para
-#: injection.xml:232
+#: injection.xml:248
#, no-c-format
-msgid "We can force the container to ignore a member of a qualifier 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
-#, no-c-format
+#: injection.xml:253
+#, 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"
+" @Nonbinding String comment() default \"\";\n"
"}]]>"
msgstr ""
"<![CDATA[@Qualifier\n"
@@ -502,57 +660,73 @@
"}]]>"
#. Tag: title
-#: injection.xml:242
+#: injection.xml:258
#, no-c-format
msgid "Multiple qualifiers"
msgstr ""
#. Tag: para
-#: injection.xml:244
+#: injection.xml:260
#, 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:"
+msgstr ""
+"Um ponto de injeção pode até mesmo especificar múltiplas anotações de "
+"binding:"
#. Tag: programlisting
-#: injection.xml:248
+#: injection.xml:264
#, no-c-format
-msgid "<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor syncPaymentProcessor;]]>"
-msgstr "<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor syncPaymentProcessor;]]>"
+msgid ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
+msgstr ""
+"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
+"syncPaymentProcessor;]]>"
#. Tag: para
-#: injection.xml:250
+#: injection.xml:266
#, 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."
+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: programlisting
-#: injection.xml:255
+#: injection.xml:271
#, no-c-format
msgid ""
"<![CDATA[@Synchronous @Reliable\n"
-"public class SynchronousReliablePaymentProcessor implements PaymentProcessor {\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
" public void process(Payment payment) { ... }\n"
"}]]>"
msgstr ""
"<![CDATA[@Synchronous @Reliable\n"
-"public class SynchronousReliablePaymentProcessor implements PaymentProcessor {\n"
+"public class SynchronousReliablePaymentProcessor implements PaymentProcessor "
+"{\n"
" public void process(Payment payment) { ... }\n"
"}]]>"
#. Tag: title
-#: injection.xml:260
+#: injection.xml:276
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: injection.xml:262
+#: injection.xml:278
#, no-c-format
-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:"
+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:266
+#: injection.xml:282
#, no-c-format
msgid ""
"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
@@ -566,13 +740,17 @@
"}]]>"
#. Tag: para
-#: injection.xml:268
+#: injection.xml:284
#, no-c-format
-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."
+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:274
+#: injection.xml:290
#, no-c-format
msgid ""
"<![CDATA[<beans\n"
@@ -598,307 +776,447 @@
"</beans>]]>"
#. Tag: para
-#: injection.xml:276
+#: injection.xml:292
#, no-c-format
-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."
+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:285
+#: injection.xml:301
#, no-c-format
msgid "Fixing unsatisfied and ambiguous dependencies"
msgstr ""
#. Tag: para
-#: injection.xml:287
+#: injection.xml:303
#, 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."
+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: para
-#: injection.xml:294
+#: injection.xml:310
#, no-c-format
-msgid "During the course of your development, you're going to encounter this situation. Let's learn how to resolve it."
+msgid ""
+"During the course of your development, you're going to encounter this "
+"situation. Let's learn how to resolve it."
msgstr ""
#. Tag: para
-#: injection.xml:298
+#: injection.xml:314
#, no-c-format
msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:304
+#: injection.xml:320
#, no-c-format
-msgid "create a bean which implements the bean type and has all the qualifier types of the injection point,"
+msgid ""
+"create a bean which implements the bean type and has all the qualifier types "
+"of the injection point,"
msgstr ""
#. Tag: para
-#: injection.xml:309
+#: injection.xml:325
#, no-c-format
-msgid "make sure that the bean you already have is in the classpath of the module with the injection point, or"
+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:314
+#: injection.xml:330
#, no-c-format
-msgid "explicitly enable an <literal>@Alternative</literal> bean that implements the bean type and has the appropriate qualifier types, using <literal>beans.xml</literal>."
+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:321
+#: injection.xml:337
#, no-c-format
msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:327
+#: injection.xml:343
#, no-c-format
-msgid "introduce a qualifier to distinguish between the two implementations of the bean type,"
+msgid ""
+"introduce a qualifier to distinguish between the two implementations of the "
+"bean type,"
msgstr ""
#. Tag: para
-#: injection.xml:332
+#: injection.xml:348
#, no-c-format
-msgid "disable one of the beans by annotating it <literal>@Alternative</literal>,"
+msgid ""
+"disable one of the beans by annotating it <literal>@Alternative</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:337
+#: injection.xml:353
#, no-c-format
-msgid "move one of the implementations to a module that is not in the classpath of the module with the injection point, or"
+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:343
+#: injection.xml:359
#, no-c-format
-msgid "disable one of two <literal>@Alternative</literal> beans that are trying to occupy the same space, using <literal>beans.xml</literal>."
+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:350
+#: injection.xml:366
#, no-c-format
-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."
+msgid ""
+"See <ulink url=\"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:358
+#: injection.xml:374
#, no-c-format
msgid "Just remember: \"There can be only one.\""
msgstr ""
#. Tag: para
-#: injection.xml:361
+#: injection.xml:377
#, no-c-format
-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\"/>."
+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:366
+#: injection.xml:382
#, no-c-format
-msgid "Now there's one more issue you need to be aware of when using the dependency injection service."
+msgid ""
+"Now there's one more issue you need to be aware of when using the dependency "
+"injection service."
msgstr ""
#. Tag: title
-#: injection.xml:373
+#: injection.xml:389
#, no-c-format
msgid "Client proxies"
msgstr "Proxies clientes"
#. Tag: para
-#: injection.xml:375
+#: injection.xml:391
#, 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 ."
+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:380
+#: injection.xml:396
#, 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!"
+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:386
+#: injection.xml:402
#, 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!"
+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:393
+#: injection.xml:409
#, 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."
+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:401
+#: injection.xml:417
#, 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."
+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:407
+#: injection.xml:423
#, 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:"
+msgstr ""
+"Os seguintes tipos Java não podem ser \"proxied\" pelo gerenciador do Web "
+"Bean:"
#. Tag: para
-#: injection.xml:411
+#: injection.xml:427
#, fuzzy, no-c-format
-msgid "classes which don't have a non-private constructor with no parameters, and"
+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
+#: injection.xml:430
#, 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 ""
+"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:419
+#: injection.xml:435
#, no-c-format
msgid "arrays and primitive types."
msgstr "arrays e tipos primitivos."
#. Tag: para
-#: injection.xml:423
+#: injection.xml:439
#, 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>."
+msgid ""
+"It's usually very easy to fix an unproxyable dependency problem. If an "
+"injection point of type <literal>X</literal> results in an unproxyable "
+"dependency, simply:"
msgstr ""
#. Tag: para
-#: injection.xml:430
+#: injection.xml:446
#, no-c-format
-msgid "A future release of Weld will likely support a non-standard workaround for this limitation, using non-portable JVM APIs:"
+msgid "add a constructor with no parameters to <literal>X</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:437
+#: injection.xml:451
#, no-c-format
-msgid "Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most efficient)"
+msgid ""
+"change the type of the injection point to <literal>Instance<X></"
+"literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:442
+#: injection.xml:456
#, no-c-format
-msgid "IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</literal>"
+msgid ""
+"introduce an interface <literal>Y</literal>, implemented by the injected "
+"bean, and change the type of the injection point to <literal>Y</literal>, or"
msgstr ""
#. Tag: para
-#: injection.xml:448
+#: injection.xml:462
#, no-c-format
+msgid ""
+"if all else fails, change the scope of the injected bean to "
+"<literal>@Dependent</literal>."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:469
+#, no-c-format
+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:476
+#, no-c-format
+msgid ""
+"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
+"efficient)"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:481
+#, no-c-format
+msgid ""
+"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:487
+#, no-c-format
msgid "But we didn't get around to implementing this yet."
msgstr ""
#. Tag: title
-#: injection.xml:457
+#: injection.xml:496
#, fuzzy, no-c-format
msgid "Obtaining a contextual instance by programmatic lookup"
msgstr "Obtendo um Web Bean via lookup programaticamente"
#. Tag: para
-#: injection.xml:459
+#: injection.xml:498
#, no-c-format
-msgid "In certain situations, injection is not the most convenient way to obtain a contextual reference. For example, it may not be used when:"
+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:466
+#: injection.xml:505
#, no-c-format
msgid "the bean type or qualifiers vary dynamically at runtime, or"
msgstr ""
#. Tag: para
-#: injection.xml:471
+#: injection.xml:510
#, no-c-format
-msgid "depending upon the deployment, there may be no bean which satisfies the type and qualifiers, or"
+msgid ""
+"depending upon the deployment, there may be no bean which satisfies the type "
+"and qualifiers, or"
msgstr ""
#. Tag: para
-#: injection.xml:476
+#: injection.xml:515
#, no-c-format
msgid "we would like to iterate over all beans of a certain type."
msgstr ""
#. Tag: para
-#: injection.xml:482
+#: injection.xml:521
#, 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:"
+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: programlisting
-#: injection.xml:487
+#: injection.xml:526
#, no-c-format
msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
#. Tag: para
-#: injection.xml:489
+#: injection.xml:528
#, no-c-format
-msgid "The <literal>get()</literal> method of <literal>Instance</literal> produces a contextual instance of the bean."
+msgid ""
+"The <literal>get()</literal> method of <literal>Instance</literal> produces "
+"a contextual instance of the bean."
msgstr ""
#. Tag: programlisting
-#: injection.xml:493
+#: injection.xml:532
#, no-c-format
msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
msgstr "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
#. Tag: para
-#: injection.xml:495
+#: injection.xml:534
#, no-c-format
msgid "Qualifiers can be specified in one of two ways:"
msgstr ""
#. Tag: para
-#: injection.xml:501
+#: injection.xml:540
#, no-c-format
msgid "by annotating the <literal>Instance</literal> injection point, or"
msgstr ""
#. Tag: para
-#: injection.xml:504
+#: injection.xml:543
#, 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>."
+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: para
-#: injection.xml:508
+#: injection.xml:547
#, no-c-format
msgid "Specifying the qualifiers at the injection point is much, much easier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:512
+#: injection.xml:551
#, no-c-format
-msgid "<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> paymentProcessorSource;]]>"
-msgstr "<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgid ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
+"paymentProcessorSource;]]>"
#. Tag: para
-#: injection.xml:514
+#: injection.xml:553
#, no-c-format
-msgid "Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</literal> will have the qualifier <literal>@Asynchronous</literal>."
+msgid ""
+"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
+"literal> will have the qualifier <literal>@Asynchronous</literal>."
msgstr ""
#. Tag: para
-#: injection.xml:519
+#: injection.xml:558
#, no-c-format
-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>.)"
+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:524
+#: injection.xml:563
#, no-c-format
-msgid "<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
-msgstr "<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgid ""
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
+msgstr ""
+"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
#. Tag: para
-#: injection.xml:526
+#: injection.xml:565
#, no-c-format
-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>."
+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:533
+#: injection.xml:572
#, no-c-format
msgid ""
"<![CDATA[abstract class AsynchronousQualifier\n"
@@ -908,13 +1226,13 @@
"extends AnnotationLiteral<Asynchronous> implements Asynchronous {}]]>"
#. Tag: para
-#: injection.xml:535
+#: injection.xml:574
#, no-c-format
msgid "In some cases, we can use an anonymous class:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:539
+#: injection.xml:578
#, no-c-format
msgid ""
"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
@@ -924,91 +1242,116 @@
" .select(new AnnotationLiteral<Asynchronous>() {});]]>"
#. Tag: para
-#: injection.xml:542
+#: injection.xml:581
#, no-c-format
-msgid "We can't use an anonymous class to implement a qualifier type with members."
+msgid ""
+"We can't use an anonymous class to implement a qualifier type with members."
msgstr ""
#. Tag: para
-#: injection.xml:547
+#: injection.xml:586
#, no-c-format
-msgid "Now, finally, we can pass the qualifier to the <literal>select()</literal> method of <literal>Instance</literal>."
+msgid ""
+"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
+"method of <literal>Instance</literal>."
msgstr ""
#. Tag: programlisting
-#: injection.xml:551
+#: injection.xml:590
#, no-c-format
msgid ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
" new SynchronousQualifier() : new AsynchronousQualifier();\n"
-"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process(payment);]]>"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
msgstr ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
" new SynchronousQualifier() : new AsynchronousQualifier();\n"
-"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process(payment);]]>"
+"PaymentProcessor p = anyPaymentProcessor.select(qualifier).get().process"
+"(payment);]]>"
#. Tag: title
-#: injection.xml:556
+#: injection.xml:595
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
msgstr "O objeto <literal>InjectionPoint</literal>"
#. Tag: para
-#: injection.xml:558
+#: injection.xml:597
#, 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:"
+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:564
+#: injection.xml:603
#, 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:568
+#: injection.xml:607
#, 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:572
+#: injection.xml:611
#, 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:577
+#: injection.xml:616
#, 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."
+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:581
+#: injection.xml:620
#, 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:584
+#: injection.xml:623
#, 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:586
+#: injection.xml:625
#, 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:589
+#: injection.xml:628
#, 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"
"}]]>"
@@ -1016,38 +1359,41 @@
"<![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:591
+#: injection.xml:630
#, no-c-format
msgid "We can now write:"
msgstr "Podemos agora escrever:"
#. Tag: programlisting
-#: injection.xml:593
+#: injection.xml:632
#, no-c-format
msgid "<![CDATA[@Inject Logger log;]]>"
msgstr "<![CDATA[@Inject Logger log;]]>"
#. Tag: para
-#: injection.xml:595
+#: injection.xml:634
#, no-c-format
-msgid "Not convinced? Then here's a second example. To inject HTTP parameters, we need to define a qualifier 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:598
-#, no-c-format
+#: injection.xml:637
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@BindingType\n"
"@Retention(RUNTIME)\n"
"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
"public @interface HttpParam {\n"
-" @NonBinding public String value();\n"
+" @Nonbinding public String value();\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -1058,13 +1404,13 @@
"}]]>"
#. Tag: para
-#: injection.xml:600
+#: injection.xml:639
#, no-c-format
msgid "We would use this qualifier type at injection points as follows:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:602
+#: injection.xml:641
#, no-c-format
msgid ""
"<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1074,20 +1420,21 @@
"@HttpParam(\"password\") String password;]]>"
#. Tag: para
-#: injection.xml:604
+#: injection.xml:643
#, no-c-format
msgid "The following producer method does the work:"
msgstr "O seguinte método produtor faz o trabalho:"
#. Tag: programlisting
-#: injection.xml:606
-#, no-c-format
+#: injection.xml:645
+#, fuzzy, 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.getAnnotated().getAnnotation(HttpParam."
+"class).value());\n"
" }\n"
"\n"
"}]]>"
@@ -1096,33 +1443,41 @@
"\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:608
+#: injection.xml:647
#, 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>)"
+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:611
+#: injection.xml:650
#, no-c-format
-msgid "The container provides a built-in 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:614
-#, no-c-format
+#: injection.xml:653
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface InjectionPoint { \n"
-" public Object getInstance(); \n"
-" public Bean<?> getBean(); \n"
-" public Member getMember(): \n"
-" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
-" public Set<T extends Annotation> getAnnotations(); \n"
+" public Type getType();\n"
+" public Set<Annotation> getQualifiers();\n"
+" public Bean<?> getBean();\n"
+" public Member getMember();\n"
+" public Annotated getAnnotated();\n"
+" public boolean isDelegate();\n"
+" public boolean isTransient();\n"
"}]]>"
msgstr ""
"<![CDATA[public interface InjectionPoint { \n"
@@ -1137,8 +1492,10 @@
#~ "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."
@@ -1146,8 +1503,10 @@
#~ "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 "
@@ -1156,6 +1515,7 @@
#~ "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 "
@@ -1165,12 +1525,14 @@
#~ "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"
@@ -1181,6 +1543,7 @@
#~ "public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
#~ " public void process(Payment payment) { ... }\n"
#~ "}]]>"
+
#~ msgid ""
#~ "<![CDATA[@Retention(RUNTIME)\n"
#~ "@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
@@ -1191,20 +1554,26 @@
#~ "@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"
@@ -1219,28 +1588,34 @@
#~ "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"
@@ -1251,12 +1626,14 @@
#~ " @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"
@@ -1273,6 +1650,7 @@
#~ " }\n"
#~ " \n"
#~ "}]]>"
+
#~ msgid ""
#~ "Since this Web Bean does not explicitly specify a deployment type, it has "
#~ "the default deployment type <literal>@Production</literal>."
@@ -1280,6 +1658,7 @@
#~ "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"
@@ -1300,8 +1679,10 @@
#~ " }\n"
#~ "\n"
#~ "}]]>"
+
#~ msgid "Enabling deployment types"
#~ msgstr "Ativando tipos de implantação (deployment types)"
+
#~ msgid ""
#~ "<![CDATA[<WebBeans>\n"
#~ " <Deploy>\n"
@@ -1318,24 +1699,30 @@
#~ " <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"
@@ -1352,16 +1739,17 @@
#~ " 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/interceptors.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:05-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,13 +22,19 @@
#. Tag: para
#: 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."
+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:12
#, fuzzy, no-c-format
-msgid "The Interceptors specification defines two kinds of interception points:"
+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
@@ -52,7 +58,9 @@
#. Tag: para
#: interceptors.xml:29
#, no-c-format
-msgid "A <emphasis>business method interceptor</emphasis> applies to invocations of methods of the bean by clients of the bean:"
+msgid ""
+"A <emphasis>business method interceptor</emphasis> applies to invocations of "
+"methods of the bean by clients of the bean:"
msgstr ""
#. Tag: programlisting
@@ -61,18 +69,22 @@
msgid ""
"<![CDATA[public class TransactionInterceptor {\n"
" @AroundInvoke \n"
-" public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
"}]]>"
msgstr ""
"<![CDATA[public class TransactionInterceptor {\n"
" @AroundInvoke \n"
-" public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
"}]]>"
#. Tag: para
#: 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
@@ -92,13 +104,17 @@
#. 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:"
+msgid ""
+"A <emphasis>timeout method interceptor</emphasis> applies to invocations of "
+"EJB timeout methods by the container:"
msgstr ""
#. Tag: programlisting
@@ -107,12 +123,14 @@
msgid ""
"<![CDATA[public class TimeoutInterceptor {\n"
" @AroundTimeout \n"
-" public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
"}]]>"
msgstr ""
"<![CDATA[public class TimeoutInterceptor {\n"
" @AroundTimeout \n"
-" public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
"}]]>"
#. Tag: title
@@ -124,7 +142,10 @@
#. Tag: para
#: interceptors.xml:57
#, 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:"
+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
@@ -144,7 +165,9 @@
#. Tag: para
#: 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
@@ -184,7 +207,11 @@
#. Tag: para
#: 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 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
@@ -194,13 +221,15 @@
"<![CDATA[@Transactional @Interceptor\n"
"public class TransactionInterceptor {\n"
" @AroundInvoke \n"
-" public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
"}]]>"
msgstr ""
"<![CDATA[@Transactional @Interceptor\n"
"public class TransactionInterceptor {\n"
" @AroundInvoke \n"
-" public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
"}]]>"
#. Tag: para
@@ -219,7 +248,8 @@
" @Resource UserTransaction transaction;\n"
"\n"
" @AroundInvoke \n"
-" public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
" \n"
"}]]>"
msgstr ""
@@ -229,7 +259,8 @@
" @Resource UserTransaction transaction;\n"
"\n"
" @AroundInvoke \n"
-" public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
" \n"
"}]]>"
@@ -248,7 +279,10 @@
#. Tag: para
#: interceptors.xml:104
#, no-c-format
-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."
+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
@@ -286,14 +320,20 @@
#. Tag: para
#: interceptors.xml:114
#, fuzzy, no-c-format
-msgid "Well, having the XML declaration is actually a <emphasis>good thing</emphasis>. It solves two problems:"
+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: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:126
@@ -304,7 +344,9 @@
#. Tag: para
#: interceptors.xml:130
#, no-c-format
-msgid "For example, we could specify that our security interceptor runs before our transaction interceptor."
+msgid ""
+"For example, we could specify that our security interceptor runs before our "
+"transaction interceptor."
msgstr ""
#. Tag: programlisting
@@ -338,7 +380,9 @@
#. Tag: para
#: interceptors.xml:136
#, no-c-format
-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."
+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
@@ -350,8 +394,12 @@
#. Tag: para
#: 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:148
@@ -374,7 +422,10 @@
#. Tag: para
#: interceptors.xml:150
#, 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>."
+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
@@ -384,19 +435,23 @@
"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
"public class RequiresNewTransactionInterceptor {\n"
" @AroundInvoke \n"
-" public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
"}]]>"
msgstr ""
"<![CDATA[@Transactional(requiresNew = true) @Interceptor\n"
"public class RequiresNewTransactionInterceptor {\n"
" @AroundInvoke \n"
-" public Object manageTransaction(InvocationContext ctx) throws Exception { ... }\n"
+" public Object manageTransaction(InvocationContext ctx) throws Exception "
+"{ ... }\n"
"}]]>"
#. Tag: para
#: 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
@@ -412,18 +467,22 @@
#. Tag: para
#: interceptors.xml:163
#, 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:"
+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:169
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"<![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[@InterceptorBinding\n"
@@ -442,7 +501,11 @@
#. Tag: para
#: interceptors.xml:176
#, 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:"
+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
@@ -458,7 +521,9 @@
#. Tag: para
#: 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
@@ -474,7 +539,9 @@
#. Tag: para
#: 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
@@ -540,19 +607,29 @@
#. Tag: para
#: 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: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:216
#, 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."
+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
@@ -574,7 +651,11 @@
#. Tag: para
#: interceptors.xml:225
#, 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.)"
+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
@@ -586,19 +667,24 @@
#. Tag: para
#: interceptors.xml:236
#, 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."
+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:239
#, 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"
"}]]>"
msgstr ""
-"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor.class})\n"
+"<![CDATA[@Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
"public class ShoppingCart {\n"
" public void checkout() { ... }\n"
"}]]>"
@@ -624,7 +710,9 @@
#. Tag: para
#: 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
@@ -639,14 +727,17 @@
#~ 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"
@@ -655,6 +746,7 @@
#~ "<![CDATA[<Interceptors>\n"
#~ " <tx:TransactionInterceptor/>\n"
#~ "</Interceptors>]]>"
+
#~ msgid ""
#~ "<![CDATA[<Interceptors>\n"
#~ " <sx:SecurityInterceptor/>\n"
@@ -665,4 +757,3 @@
#~ " <sx:SecurityInterceptor/>\n"
#~ " <tx:TransactionInterceptor/>\n"
#~ "</Interceptors>]]>"
-
Modified: doc/trunk/reference/pt-BR/next.po
===================================================================
--- doc/trunk/reference/pt-BR/next.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/next.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 17:59-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,43 +22,81 @@
#. Tag: para
#: next.xml:6
#, no-c-format
-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."
+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 is 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 url=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
+"299 page</ulink> at the JCP website."
msgstr ""
#. Tag: para
#: next.xml:14
-#, 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 da CDI (CDI RI) está sendo desenvolvida em <literal>http://seamframework.org/Weld</literal>. O blog do time de desenvolvimento da implementação de referência (RI) e do líder da especificação da CDI em: <literal>http://in.relation.to</literal>. Esse guia foi originalmente baseado em uma série de entradas de blogs publicados lá enquando a especificação estava sendo desenvolvida. Esse é provavelmente a melhor fonte de informação sobre o futuro da CDI, Weld e Seam."
+#, fuzzy, no-c-format
+msgid ""
+"The CDI reference implementation, Weld, is being developed at the <ulink url="
+"\"http://seamframework.org/Weld\">Seam project</ulink>. The RI development "
+"team and the CDI spec lead blog at <ulink url=\"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 da CDI (CDI RI) está sendo desenvolvida em "
+"<literal>http://seamframework.org/Weld</literal>. O blog do time de "
+"desenvolvimento da implementação de referência (RI) e do líder da "
+"especificação da CDI em: <literal>http://in.relation.to</literal>. Esse guia "
+"foi originalmente baseado em uma série de entradas de blogs publicados lá "
+"enquando a especificação estava sendo desenvolvida. Esse é provavelmente a "
+"melhor fonte de informação sobre o futuro da CDI, Weld e Seam."
#. Tag: para
#: next.xml:22
#, no-c-format
-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."
+msgid ""
+"We encourage you to follow the <ulink url=\"https://lists.jboss.org/mailman/"
+"listinfo/weld-dev\">weld-dev</ulink> mailing list and to get involved in "
+"<ulink url=\"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:"
+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"
+msgid ""
+"Checkout source from <ulink url=\"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 "<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference weld-reference]]>"
+msgid ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
+msgstr ""
+"<![CDATA[$> svn co http://anonsvn.jboss.org/repos/weld/doc/trunk/reference "
+"weld-reference]]>"
#. 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)."
+msgid ""
+"Edit the <literal>pom.xml</literal> file in the root of the checkout and "
+"remove the \"<literal>-SNAPSHOT</literal>\" from the version element (so you "
+"don't have to build other Weld modules)."
msgstr ""
#. Tag: para
@@ -76,13 +114,18 @@
#. 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>"
+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"
+msgid ""
+"The PDF version of the reference guide will appear the current directory. "
+"You can find the HTML version in <literal>target/docbook/publish/en-US/html</"
+"literal>."
msgstr ""
#. Tag: para
@@ -97,6 +140,7 @@
#~ 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 "
@@ -109,4 +153,3 @@
#~ "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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/part1.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -17,7 +17,7 @@
#: part1.xml:14
#, fuzzy, no-c-format
msgid ""
-"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"The <ulink url=\"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 "
@@ -352,7 +352,7 @@
#: part1.xml:197
#, no-c-format
msgid ""
-"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"Finally, CDI is a <ulink url=\"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/pt-BR/producermethods.po
===================================================================
--- doc/trunk/reference/pt-BR/producermethods.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/producermethods.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:07-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,8 +22,17 @@
#. Tag: para
#: producermethods.xml:7
#, fuzzy, no-c-format
-msgid "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 objetos. Eles são também a forma mais fácil de integrar os objetos que não são Web Beans ao ambiente Web Beans. (Veremos uma segunda abordagem em <xref linkend=\"xml\"/>.)"
+msgid ""
+"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 "
+"objetos. Eles são também a forma mais fácil de integrar os objetos que não "
+"são Web Beans ao ambiente Web Beans. (Veremos uma segunda abordagem em <xref "
+"linkend=\"xml\"/>.)"
#. Tag: para
#: producermethods.xml:14
@@ -35,25 +44,35 @@
#: 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:"
+msgstr ""
+"Um método produtor Web Beans funciona como uma fonte de objetos a ser "
+"injetado, quando:"
#. Tag: para
#: 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,"
+msgstr ""
+"os objetos a serem injetados não forem obrigados a ser instâncias de Web "
+"Beans,"
#. Tag: para
#: producermethods.xml:25
#, no-c-format
msgid "the concrete type of the objects to be injected may vary at runtime or"
-msgstr "o tipo concreto dos objetos a serem injetados pode variar em tempo de execução ou"
+msgstr ""
+"o tipo concreto dos objetos a serem injetados pode variar em tempo de "
+"execução ou"
#. Tag: para
#: producermethods.xml:28
#, fuzzy, no-c-format
-msgid "the objects require some custom initialization that is not performed by the bean constructor"
-msgstr "os objetos requerem alguma inicialização personalizada que não é realizada pelo construtor do Web Bean"
+msgid ""
+"the objects require some custom initialization that is not performed by the "
+"bean constructor"
+msgstr ""
+"os objetos requerem alguma inicialização personalizada que não é realizada "
+"pelo construtor do Web Bean"
#. Tag: para
#: producermethods.xml:36
@@ -76,8 +95,12 @@
#. Tag: para
#: producermethods.xml:46
#, fuzzy, no-c-format
-msgid "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"
+msgid ""
+"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:51
@@ -88,8 +111,17 @@
#. Tag: para
#: producermethods.xml:55
#, fuzzy, no-c-format
-msgid "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 poderosa solução para o problema do polimorfismo em tempo de implantação. Mas, uma vez que o sistema está implantado, a implementação do Web Bean é fixada. Um método produtor não tem essa limitação:"
+msgid ""
+"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 "
+"poderosa solução para o problema do polimorfismo em tempo de implantação. "
+"Mas, uma vez que o sistema está implantado, a implementação do Web Bean é "
+"fixada. Um método produtor não tem essa limitação:"
#. Tag: programlisting
#: producermethods.xml:61
@@ -140,8 +172,16 @@
#. Tag: para
#: producermethods.xml:67
#, fuzzy, no-c-format
-msgid "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 injeção da Web Beans. O método produtor será invocado pelo gerenciador do Bean Web para obter uma instância para servir esse ponto de injeção."
+msgid ""
+"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 "
+"injeção da Web Beans. O método produtor será invocado pelo gerenciador do "
+"Bean Web para obter uma instância para servir esse ponto de injeção."
#. Tag: title
#: producermethods.xml:74
@@ -152,14 +192,28 @@
#. Tag: para
#: 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 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, por isso ,serão chamados <emphasis>toda vez</emphasis> que o gerenciador do Web Bean injetar esse atributo ou qualquer outro atributo que resolve para o mesmo método produtor. Assim, pode haver várias instâncias do objeto <literal>PaymentStrategy</literal> para cada sessão do usuário."
+msgid ""
+"The scope of the producer method defaults to <literal>@Dependent</literal>, "
+"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, "
+"por isso ,serão chamados <emphasis>toda vez</emphasis> que o gerenciador do "
+"Web Bean injetar esse atributo ou qualquer outro atributo que resolve para o "
+"mesmo método produtor. Assim, pode haver várias instâncias do objeto "
+"<literal>PaymentStrategy</literal> para cada sessão do usuário."
#. Tag: para
#: producermethods.xml:83
#, no-c-format
-msgid "To change this behavior, we can add a <literal>@SessionScoped</literal> annotation to the method."
-msgstr "Para mudar esse comportamento, nós podemos adicionar a anotação <literal>@SessionScoped</literal> ao método."
+msgid ""
+"To change this behavior, we can add a <literal>@SessionScoped</literal> "
+"annotation to the method."
+msgstr ""
+"Para mudar esse comportamento, nós podemos adicionar a anotação "
+"<literal>@SessionScoped</literal> ao método."
#. Tag: programlisting
#: producermethods.xml:87
@@ -178,29 +232,62 @@
#. Tag: para
#: producermethods.xml:89
#, no-c-format
-msgid "Now, when the producer method is called, the returned <literal>PaymentStrategy</literal> will be bound to the session context. The producer method won't be called again in the same session."
-msgstr "Agora, quando o método produtor é chamado, o <literal>PaymentStrategy</literal> retornado será associado ao contexto sessão. O método produtor não será invocado novamente na mesma sessão."
+msgid ""
+"Now, when the producer method is called, the returned "
+"<literal>PaymentStrategy</literal> will be bound to the session context. The "
+"producer method won't be called again in the same session."
+msgstr ""
+"Agora, quando o método produtor é chamado, o <literal>PaymentStrategy</"
+"literal> retornado será associado ao contexto sessão. O método produtor não "
+"será invocado novamente na mesma sessão."
+#. Tag: para
+#: producermethods.xml:95
+#, no-c-format
+msgid ""
+"A producer method does <emphasis>not</emphasis> inherit the scope of the "
+"bean that declares the method. There are two different beans here: the "
+"producer method, and the bean which declares it. The scope of the producer "
+"method determines how often the method will be called, and the lifecycle of "
+"the objects returned by the method. The scope of the bean that declares the "
+"producer method determines the lifecycle of the object upon which the "
+"producer method is invoked."
+msgstr ""
+
#. Tag: title
-#: producermethods.xml:97
+#: producermethods.xml:107
#, no-c-format
msgid "Injection into producer methods"
msgstr "Injeção em métodos produtores"
#. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:109
#, no-c-format
-msgid "There's one potential problem with the code above. The implementations of <literal>CreditCardPaymentStrategy</literal> are instantiated using the Java <literal>new</literal> operator. Objects instantiated directly by the application can't take advantage of dependency injection and don't have interceptors."
-msgstr "Existe um problema potencial com o código acima. As implementações de <literal>CreditCardPaymentStrategy</literal> são instanciadas utilizando o operador de Java <literal>new</literal>. Objetos instanciados diretamente pela aplicação não usufruem da injeção de dependência e não possuem interceptadores."
+msgid ""
+"There's one potential problem with the code above. The implementations of "
+"<literal>CreditCardPaymentStrategy</literal> are instantiated using the Java "
+"<literal>new</literal> operator. Objects instantiated directly by the "
+"application can't take advantage of dependency injection and don't have "
+"interceptors."
+msgstr ""
+"Existe um problema potencial com o código acima. As implementações de "
+"<literal>CreditCardPaymentStrategy</literal> são instanciadas utilizando o "
+"operador de Java <literal>new</literal>. Objetos instanciados diretamente "
+"pela aplicação não usufruem da injeção de dependência e não possuem "
+"interceptadores."
#. Tag: para
-#: producermethods.xml:106
+#: producermethods.xml:116
#, fuzzy, no-c-format
-msgid "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:"
+msgid ""
+"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:111
+#: producermethods.xml:121
#, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -228,43 +315,75 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:123
#, fuzzy, no-c-format
-msgid "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\" a instância atual no escopo de requisição para o escopo de sessão. Isso certamente é um erro! O objeto no escopo de requisição será destruído pelo gerenciador do Web Bean antes de terminar a sessão, mas a referência ao objeto será deixada \"presa\" no escopo sessão. Esse erro <emphasis>não</emphasis> será detectado pelo gerenciador do Web Bean. Por isso, tome cuidado quando retornar instâncias de Web Bean em métodos produtores!"
+msgid ""
+"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"
+"\" a instância atual no escopo de requisição para o escopo de sessão. Isso "
+"certamente é um erro! O objeto no escopo de requisição será destruído pelo "
+"gerenciador do Web Bean antes de terminar a sessão, mas a referência ao "
+"objeto será deixada \"presa\" no escopo sessão. Esse erro <emphasis>não</"
+"emphasis> será detectado pelo gerenciador do Web Bean. Por isso, tome "
+"cuidado quando retornar instâncias de Web Bean em métodos produtores!"
#. Tag: para
-#: producermethods.xml:122
+#: producermethods.xml:132
#, 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 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 escopo da implementação do <literal>CreditCardPaymentStrategy</literal>, mas isso poderia afetar outros clientes desse Web Bean. A mehor opção seria alterar o escopo do médoto produtor para <literal>@Dependent</literal> ou <literal>@RequestScoped</literal>."
+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 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 "
+"escopo da implementação do <literal>CreditCardPaymentStrategy</literal>, mas "
+"isso poderia afetar outros clientes desse Web Bean. A mehor opção seria "
+"alterar o escopo do médoto produtor para <literal>@Dependent</literal> ou "
+"<literal>@RequestScoped</literal>."
#. Tag: para
-#: producermethods.xml:129
+#: producermethods.xml:139
#, fuzzy, no-c-format
-msgid "But a more common solution is to use the special <literal>@New</literal> qualifier annotation."
-msgstr "Mas, uma solução mais comum é utilizar a anotação especial de binding <literal>@New</literal>"
+msgid ""
+"But a more common solution is to use the special <literal>@New</literal> "
+"qualifier annotation."
+msgstr ""
+"Mas, uma solução mais comum é utilizar a anotação especial de binding "
+"<literal>@New</literal>"
#. Tag: title
-#: producermethods.xml:134
+#: producermethods.xml:144
#, 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:136
+#: producermethods.xml:146
#, no-c-format
msgid "Consider the following producer method:"
msgstr "Considere o seguinte método produtor:"
#. Tag: programlisting
-#: producermethods.xml:138
+#: producermethods.xml:148
#, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
-"public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy ccps,\n"
+"public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
+"ccps,\n"
" @New CheckPaymentStrategy cps,\n"
-" @New PayPalPaymentStrategy ppps) {\n"
+" @New PayPalPaymentStrategy ppps) "
+"{\n"
" switch (paymentStrategy) {\n"
" case CREDIT_CARD: return ccps;\n"
" case CHEQUE: return cps;\n"
@@ -274,9 +393,11 @@
"}]]>"
msgstr ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
-"public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy ccps,\n"
+"public PaymentStrategy getPaymentStrategy(@New CreditCardPaymentStrategy "
+"ccps,\n"
" @New CheckPaymentStrategy cps,\n"
-" @New PayPalPaymentStrategy ppps) {\n"
+" @New PayPalPaymentStrategy ppps) "
+"{\n"
" switch (paymentStrategy) {\n"
" case CREDIT_CARD: return ccps;\n"
" case CHEQUE: return cps;\n"
@@ -286,25 +407,38 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:140
+#: producermethods.xml:150
#, no-c-format
-msgid "Then a new <emphasis>dependent</emphasis> instance of <literal>CreditCardPaymentStrategy</literal> will be created, passed to the producer method, returned by the producer method and finally bound to the session context. The dependent object won't be destroyed until the <literal>Preferences</literal> object is destroyed, at the end of the session."
-msgstr "Assim a nova instância <emphasis>dependente</emphasis> de <literal>CreditCardPaymentStrategy</literal> será criada, passada para o método produtor, retornada pelo método produtor e, finalmente, associada ao 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."
+msgid ""
+"Then a new <emphasis>dependent</emphasis> instance of "
+"<literal>CreditCardPaymentStrategy</literal> will be created, passed to the "
+"producer method, returned by the producer method and finally bound to the "
+"session context. The dependent object won't be destroyed until the "
+"<literal>Preferences</literal> object is destroyed, at the end of the "
+"session."
+msgstr ""
+"Assim a nova instância <emphasis>dependente</emphasis> de "
+"<literal>CreditCardPaymentStrategy</literal> será criada, passada para o "
+"método produtor, retornada pelo método produtor e, finalmente, associada ao "
+"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
+#: producermethods.xml:160
#, fuzzy, no-c-format
msgid "Disposer methods"
msgstr "Métodos produtores"
#. Tag: para
-#: producermethods.xml:152
+#: producermethods.xml:162
#, no-c-format
-msgid "Some producer methods return objects that require explicit destruction. For example, somebody needs to close this JDBC connection:"
+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
+#: producermethods.xml:167
#, no-c-format
msgid ""
"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
@@ -316,13 +450,15 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:159
+#: producermethods.xml:169
#, no-c-format
-msgid "Destruction can be performed by a matching <emphasis>disposer method</emphasis>, defined by the same class as the producer method:"
+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
+#: producermethods.xml:172
#, no-c-format
msgid ""
"<![CDATA[void close(@Disposes Connection connection) {\n"
@@ -334,11 +470,18 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:164
+#: producermethods.xml:174
#, 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."
+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>"
-
Modified: doc/trunk/reference/pt-BR/resources.po
===================================================================
--- doc/trunk/reference/pt-BR/resources.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/resources.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:06-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,19 +22,38 @@
#. 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."
+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."
+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>."
+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
@@ -46,11 +65,54 @@
#. 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>."
+msgid ""
+"The CDI specification uses the term <emphasis>resource</emphasis> to refer, "
+"generically, to any of the following kinds of object which might be "
+"available in the Java EE component environment:"
msgstr ""
+#. Tag: para
+#: resources.xml:38
+#, no-c-format
+msgid ""
+"JDBC <literal>Datasource</literal>s, JMS <literal>Queue</literal>s, "
+"<literal>Topic</literal>s and <literal>ConnectionFactory</literal>s, "
+"JavaMail <literal>Session</literal>s and other transactional resources "
+"including JCA connectors,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"JPA <literal>EntityManager</literal>s and <literal>EntityManagerFactory</"
+"literal>s,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:46
+#, no-c-format
+msgid "remote EJBs, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid "web services"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:53
+#, 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
+#: resources.xml:57
#, no-c-format
msgid ""
"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
@@ -60,17 +122,19 @@
"Catalog catalog;]]>"
#. Tag: programlisting
-#: resources.xml:39
+#: resources.xml:59
#, no-c-format
msgid ""
-"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource\") \n"
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
"@CustomerDatabase Datasource customerDatabase;]]>"
msgstr ""
-"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource\") \n"
+"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
+"\") \n"
"@CustomerDatabase Datasource customerDatabase;]]>"
#. Tag: programlisting
-#: resources.xml:41
+#: resources.xml:61
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
@@ -80,7 +144,7 @@
"@CustomerDatabase EntityManager customerDatabasePersistenceContext;]]>"
#. Tag: programlisting
-#: resources.xml:43
+#: resources.xml:63
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
@@ -90,7 +154,7 @@
"@CustomerDatabase EntityManagerFactory customerDatabasePersistenceUnit;]]>"
#. Tag: programlisting
-#: resources.xml:45
+#: resources.xml:65
#, no-c-format
msgid ""
"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
@@ -100,92 +164,133 @@
"PaymentService paymentService;]]>"
#. Tag: para
-#: resources.xml:47
+#: resources.xml:67
#, no-c-format
msgid "The field may be static (but not final)."
msgstr ""
#. Tag: para
-#: resources.xml:49
+#: resources.xml:69
#, 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>."
+msgid "A resource declaration really contains two pieces of information:"
msgstr ""
+#. Tag: para
+#: resources.xml:73
+#, no-c-format
+msgid ""
+"the JNDI name, EJB link, persistence unit name, or other metadata needed to "
+"obtain a reference to the resource from the component environment, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:77
+#, no-c-format
+msgid ""
+"the type and qualifiers that we will use to inject the reference into our "
+"beans."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:82
+#, 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 annotated <literal>@Alternative</"
+"literal>."
+msgstr ""
+
#. Tag: title
-#: resources.xml:56
+#: resources.xml:90
#, no-c-format
msgid "Typesafe resource injection"
msgstr ""
#. Tag: para
-#: resources.xml:58
+#: resources.xml:92
#, no-c-format
msgid "These resources can now be injected in the usual way."
msgstr ""
#. Tag: programlisting
-#: resources.xml:62
+#: resources.xml:96
#, no-c-format
msgid "<![CDATA[@Inject Catalog catalog;]]>"
msgstr "<![CDATA[@Inject Catalog catalog;]]>"
#. Tag: programlisting
-#: resources.xml:63
+#: resources.xml:97
#, no-c-format
msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
msgstr "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
#. Tag: programlisting
-#: resources.xml:64
+#: resources.xml:98
#, no-c-format
-msgid "<![CDATA[@Inject @CustomerDatabase EntityManager customerDatabaseEntityManager;]]>"
-msgstr "<![CDATA[@Inject @CustomerDatabase EntityManager customerDatabaseEntityManager;]]>"
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
+msgstr ""
+"<![CDATA[@Inject @CustomerDatabase EntityManager "
+"customerDatabaseEntityManager;]]>"
#. Tag: programlisting
-#: resources.xml:65
+#: resources.xml:99
#, no-c-format
-msgid "<![CDATA[@Inject @CustomerDatabase EntityManagerFactory customerDatabaseEntityManagerFactory;]]>"
-msgstr "<![CDATA[@Inject @CustomerDatabase EntityManagerFactory customerDatabaseEntityManagerFactory;]]>"
+msgid ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
+msgstr ""
+"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
+"customerDatabaseEntityManagerFactory;]]>"
#. Tag: programlisting
-#: resources.xml:66
+#: resources.xml:100
#, no-c-format
msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
msgstr "<![CDATA[@Inject PaymentService paymentService;]]>"
#. Tag: para
-#: resources.xml:68
+#: resources.xml:102
#, no-c-format
-msgid "The bean type and qualifiers of the resource are determined by the producer field declaration."
+msgid ""
+"The bean type and qualifiers of the resource are determined by the producer "
+"field declaration."
msgstr ""
#. Tag: para
-#: resources.xml:72
+#: resources.xml:106
#, 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"
+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
+#: resources.xml:113
#, no-c-format
msgid "@Inject @CustomerDatabase EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:81
+#: resources.xml:115
#, no-c-format
msgid "instead of"
msgstr ""
#. Tag: programlisting
-#: resources.xml:83
+#: resources.xml:117
#, no-c-format
msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:85
+#: resources.xml:119
#, 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/ri-spi.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:04-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,7 +22,10 @@
#. 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."
+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
@@ -34,13 +37,21 @@
#. Tag: para
#: ri-spi.xml:13
#, no-c-format
-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."
+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:21
#, no-c-format
-msgid "All SPIs and APIs described have extensive JavaDoc, which spell out the detailed contract between the container and Weld."
+msgid ""
+"All SPIs and APIs described have extensive JavaDoc, which spell out the "
+"detailed contract between the container and Weld."
msgstr ""
#. Tag: title
@@ -52,25 +63,54 @@
#. 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."
+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 "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 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>."
#. 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>."
+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."
+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
@@ -82,25 +122,54 @@
#. Tag: para
#: ri-spi.xml:58
#, no-c-format
-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."
+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:67
#, no-c-format
-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."
+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: 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."
+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>."
+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
@@ -112,25 +181,45 @@
#. Tag: para
#: ri-spi.xml:93
#, no-c-format
-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>."
+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:100
#, no-c-format
-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>."
+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."
+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."
+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
@@ -142,25 +231,39 @@
#. 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."
+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>."
+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."
+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."
+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
@@ -172,13 +275,19 @@
#. 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."
+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
#, 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>."
+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 ""
#. Tag: title
@@ -190,37 +299,58 @@
#. Tag: para
#: ri-spi.xml:171
#, no-c-format
-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."
+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:176
#, no-c-format
-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."
+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: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\"/>."
+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\"/>."
+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."
+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!"
+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
@@ -238,13 +368,25 @@
#. Tag: para
#: ri-spi.xml:216
#, 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."
+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: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."
+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
@@ -256,13 +398,21 @@
#. Tag: para
#: ri-spi.xml:236
#, 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."
+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."
+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
@@ -274,19 +424,33 @@
#. Tag: para
#: 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>."
+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 "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 ""
+"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:264
#, 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 ""
+"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
@@ -298,7 +462,12 @@
#. Tag: para
#: ri-spi.xml:274
#, 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."
+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
@@ -310,19 +479,34 @@
#. Tag: para
#: ri-spi.xml:285
#, no-c-format
-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."
+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: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>."
+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."
+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
@@ -334,7 +518,10 @@
#. Tag: para
#: 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>."
+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
@@ -346,7 +533,10 @@
#. 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>."
+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
@@ -358,19 +548,28 @@
#. 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."
+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."
+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:"
+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
@@ -382,7 +581,9 @@
#. Tag: para
#: ri-spi.xml:352
#, no-c-format
-msgid "Identify the WAR in use. The <literal>ServletContext</literal> is provided for additional context."
+msgid ""
+"Identify the WAR in use. The <literal>ServletContext</literal> is provided "
+"for additional context."
msgstr ""
#. Tag: title
@@ -394,7 +595,10 @@
#. Tag: para
#: ri-spi.xml:364
#, 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."
+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: title
@@ -406,7 +610,11 @@
#. Tag: para
#: ri-spi.xml:374
#, 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."
+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 ""
#. Tag: title
@@ -418,49 +626,79 @@
#. Tag: para
#: ri-spi.xml:384
#, 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."
+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:391
#, 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."
+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:398
#, 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."
+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:405
#, 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>."
+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>."
+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>."
+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>."
+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."
+msgid ""
+"To shutdown the container you call <literal>Bootstrap.shutdown()</literal>. "
+"This allows the container to perform any cleanup operations needed."
msgstr ""
#. Tag: title
@@ -472,7 +710,12 @@
#. 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>."
+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
@@ -484,7 +727,9 @@
#. Tag: para
#: ri-spi.xml:447
#, 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."
+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
@@ -496,7 +741,10 @@
#. Tag: para
#: ri-spi.xml:458
#, 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."
+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
@@ -508,13 +756,20 @@
#. Tag: para
#: ri-spi.xml:470
#, 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."
+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)."
+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
@@ -526,150 +781,231 @@
#. Tag: para
#: ri-spi.xml:487
#, 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."
+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:492
#, 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."
+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:497
#, 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.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."
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.ConversationAwareViewHandler</literal> as a "
+"delegating view handler."
msgstr ""
#. Tag: para
-#: ri-spi.xml:504
+#: ri-spi.xml:502
#, 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."
+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:511
-#: ri-spi.xml:557
+#: ri-spi.xml:509
#, 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."
+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:518
+#: ri-spi.xml:516 ri-spi.xml:562
#, 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."
+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:526
+#: ri-spi.xml:523
#, 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:531
+#, no-c-format
msgid "Weld only supports JSF 1.2 and above."
msgstr ""
#. Tag: term
-#: ri-spi.xml:533
+#: ri-spi.xml:538
#, fuzzy, no-c-format
msgid "<term>JSP</term>"
msgstr "<term>JSF</term>"
#. Tag: para
-#: ri-spi.xml:538
+#: ri-spi.xml:543
#, 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."
+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
+#: ri-spi.xml:548
#, 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."
+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
+#: ri-spi.xml:555
#, 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."
+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
+#: ri-spi.xml:572
#, no-c-format
msgid "Session Bean Interceptor"
msgstr "Interceptador de Session Bean (Session Bean Interceptor)"
#. Tag: para
-#: ri-spi.xml:571
+#: ri-spi.xml:576
#, 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."
+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:578
+#: ri-spi.xml:583
#, 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:586
+#: ri-spi.xml:591
#, fuzzy, no-c-format
msgid "The <literal>weld-core.jar</literal>"
msgstr "A <literal>webbeans-core.jar</literal>"
#. Tag: para
-#: ri-spi.xml:590
+#: ri-spi.xml:595
#, no-c-format
-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."
+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
+#: ri-spi.xml:601
#, 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>."
+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
+#: ri-spi.xml:606
#, no-c-format
-msgid "Weld also provides an implementation of Thread Context Classloader per application strategy, via the <literal>TCCLSingletonProvider</literal>."
+msgid ""
+"Weld also provides an implementation of Thread Context Classloader per "
+"application strategy, via the <literal>TCCLSingletonProvider</literal>."
msgstr ""
#. Tag: term
-#: ri-spi.xml:608
+#: ri-spi.xml:613
#, no-c-format
msgid "Binding the manager in JNDI"
msgstr ""
#. Tag: para
-#: ri-spi.xml:612
+#: ri-spi.xml:617
#, 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>"
+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
+#: ri-spi.xml:627
#, no-c-format
msgid "Performing CDI injection on Java EE component classes"
msgstr ""
#. Tag: para
-#: ri-spi.xml:626
+#: ri-spi.xml:631
#, 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."
+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
+#: ri-spi.xml:639
#, 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."
+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
+#: ri-spi.xml:646
#, no-c-format
-msgid "To help the integrator, Weld provides <literal>WeldManager.fireProcessInjectionTarget()</literal> which returns the <literal>InjectionTarget</literal> to use."
+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
+#: ri-spi.xml:651
#, no-c-format
msgid ""
"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
@@ -719,19 +1055,26 @@
"cc.release();]]>"
#. Tag: para
-#: ri-spi.xml:647
+#: ri-spi.xml:652
#, 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."
+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
+#: ri-spi.xml:656
#, 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."
+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
+#: ri-spi.xml:661
#, no-c-format
msgid ""
"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
@@ -742,10 +1085,12 @@
"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
"\n"
"// Create the injection target\n"
-"InjectionTarget it = deploymentBeanManager.createInjectionTarget(ejbDescriptor);\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
"\n"
"// Per instance required, create the creational context\n"
-"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext(bean);\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
"\n"
"// Perform injection and call initializers\n"
"it.inject(instance, cc);\n"
@@ -771,10 +1116,12 @@
"Bean<?> bean = beanManager.getBean(ejbDescriptor);\n"
"\n"
"// Create the injection target\n"
-"InjectionTarget it = deploymentBeanManager.createInjectionTarget(ejbDescriptor);\n"
+"InjectionTarget it = deploymentBeanManager.createInjectionTarget"
+"(ejbDescriptor);\n"
"\n"
"// Per instance required, create the creational context\n"
-"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext(bean);\n"
+"CreationalContext<?> cc = deploymentBeanManager.createCreationalContext"
+"(bean);\n"
"\n"
"// Perform injection and call initializers\n"
"it.inject(instance, cc);\n"
@@ -804,8 +1151,10 @@
#~ "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."
@@ -838,6 +1187,7 @@
#~ " * @return An iterable over the beans.xml files \n"
#~ " */\n"
#~ " public Iterable<URL> discoverWebBeansXml();]]>"
+
#~ msgid ""
#~ "<![CDATA[public interface EjbDescriptor<T>\n"
#~ "{\n"
@@ -974,12 +1324,14 @@
#~ " * @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"
@@ -1044,12 +1396,16 @@
#~ " */\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"
@@ -1110,14 +1466,17 @@
#~ " \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"
@@ -1138,6 +1497,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 "
@@ -1146,6 +1506,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"
@@ -1190,57 +1551,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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/scopescontexts.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:06-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,14 +22,24 @@
#. Tag: para
#: 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 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 do Web Bean. O escopo também determina que clientes se referem a quais instâncias do Web Bean. De acordo com a especificação Web Beans, um escopo determina:"
+msgid ""
+"So far, we've seen a few examples of <emphasis>scope type annotations</"
+"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 "
+"do Web Bean. O escopo também determina que clientes se referem a quais "
+"instâncias do Web Bean. De acordo com a especificação Web Beans, um escopo "
+"determina:"
#. Tag: para
#: 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"
+msgstr ""
+"Quando uma nova instância de qualquer Web Bean com esse escopo é criada"
#. Tag: para
#: scopescontexts.xml:19
@@ -40,35 +50,61 @@
#. Tag: para
#: scopescontexts.xml:22
#, fuzzy, no-c-format
-msgid "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"
+msgid ""
+"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:27
#, fuzzy, no-c-format
-msgid "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 "Por exemplo, se temos um Web Bean de escopo de sessão <literal>CurrentUser</literal>, todos os Web Beans que são chamados no contexto dele <literal>HttpSession</literal> verão a mesma instância do <literal>CurrentUser</literal>. Essa instância será criada automaticamente na primeira vez que um <literal>CurrentUser</literal> for necessário nessa sessão, e será automaticamente destruída quando a sessão terminar."
+msgid ""
+"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 ""
+"Por exemplo, se temos um Web Bean de escopo de sessão <literal>CurrentUser</"
+"literal>, todos os Web Beans que são chamados no contexto dele "
+"<literal>HttpSession</literal> verão a mesma instância do "
+"<literal>CurrentUser</literal>. Essa instância será criada automaticamente "
+"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."
+msgid ""
+"JPA entities aren't a great fit for this model. Entities have their whole "
+"own lifecycle and identity model which just doesn't map naturally to the "
+"model used in CDI. Therefore, we recommend against treating entities as CDI "
+"beans. You're certainly going to run into problems if you try to give an "
+"entity a scope other than the default scope <literal>@Dependent</literal>. "
+"The client proxy will get in the way if you try to pass an injected instance "
+"to the JPA <literal>EntityManager</literal>."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:41
+#: scopescontexts.xml:45
#, no-c-format
msgid "Scope types"
msgstr "Tipos de escopo"
#. Tag: para
-#: scopescontexts.xml:43
+#: scopescontexts.xml:47
#, fuzzy, no-c-format
-msgid "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:"
+msgid ""
+"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:48
+#: scopescontexts.xml:52
#, no-c-format
msgid ""
"<![CDATA[@ScopeType\n"
@@ -82,19 +118,34 @@
"public @interface ClusterScoped {}]]>"
#. Tag: para
-#: scopescontexts.xml:50
+#: scopescontexts.xml:54
#, 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. 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</literal> que implementa o escopo! Implementar um <literal>Context</literal> é geralmente uma tarefa muito técnica, destinada apenas ao desenvolvimento do framework."
+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. 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</"
+"literal> que implementa o escopo! Implementar um <literal>Context</literal> "
+"é geralmente uma tarefa muito técnica, destinada apenas ao desenvolvimento "
+"do framework."
#. Tag: para
-#: scopescontexts.xml:57
+#: scopescontexts.xml:61
#, fuzzy, no-c-format
-msgid "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:"
+msgid ""
+"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:61
+#: scopescontexts.xml:65
#, no-c-format
msgid ""
"<![CDATA[@ClusterScoped\n"
@@ -104,181 +155,266 @@
"public class SecondLevelCache { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:63
+#: scopescontexts.xml:67
#, 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:68
+#: scopescontexts.xml:72
#, no-c-format
msgid "Built-in scopes"
msgstr "Escopos pré-definidos"
#. Tag: para
-#: scopescontexts.xml:70
+#: scopescontexts.xml:74
#, 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:74
+#: scopescontexts.xml:78
#, no-c-format
msgid "@RequestScoped"
msgstr "@RequestScoped"
#. Tag: literal
-#: scopescontexts.xml:77
+#: scopescontexts.xml:81
#, no-c-format
msgid "@SessionScoped"
msgstr "@SessionScoped"
#. Tag: literal
-#: scopescontexts.xml:80
+#: scopescontexts.xml:84
#, no-c-format
msgid "@ApplicationScoped"
msgstr "@ApplicationScoped"
#. Tag: literal
-#: scopescontexts.xml:83
+#: scopescontexts.xml:87
#, no-c-format
msgid "@ConversationScoped"
msgstr "@ConversationScoped"
#. Tag: para
-#: scopescontexts.xml:87
+#: scopescontexts.xml:91
#, 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:91
+#: scopescontexts.xml:95
#, no-c-format
-msgid "any servlet request has access to active request, session and application scopes, and, additionally"
-msgstr "qualquer requisição servlet tem acesso aos escopos de requisição, sessão e aplicação ativos, e, adicionalmente"
+msgid ""
+"any servlet request has access to active request, session and application "
+"scopes, and, additionally"
+msgstr ""
+"qualquer requisição servlet tem acesso aos escopos de requisição, sessão e "
+"aplicação ativos, e, adicionalmente"
#. Tag: para
-#: scopescontexts.xml:96
+#: scopescontexts.xml:100
#, 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:101
+#: scopescontexts.xml:105
#, no-c-format
-msgid "A CDI extension can support the conversation scope for other frameworks as well."
+msgid ""
+"A CDI extension can implement support for the conversation scope in other "
+"web frameworks."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:108
#, 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:108
+#: scopescontexts.xml:112
#, no-c-format
msgid "during invocations of EJB remote methods,"
msgstr "durante invocações de métodos remotos de EJB,"
#. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:115
+#, fuzzy, no-c-format
+msgid "during invocations of EJB asynchronous methods,"
+msgstr "durante invocações de métodos remotos de EJB,"
+
+#. Tag: para
+#: scopescontexts.xml:118
#, no-c-format
msgid "during EJB timeouts,"
msgstr "durante timeouts de EJB,"
#. Tag: para
-#: scopescontexts.xml:114
-#, no-c-format
-msgid "during message delivery to a message-driven bean, and"
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
+msgid "during message delivery to a message-driven bean,"
msgstr "durante a entrega de uma mensagem a um mensagem-driven bean, e"
#. Tag: para
-#: scopescontexts.xml:117
+#: scopescontexts.xml:124
+#, fuzzy, no-c-format
+msgid "during message delivery to a <literal>MessageListener</literal>, and"
+msgstr "durante a entrega de uma mensagem a um mensagem-driven bean, e"
+
+#. Tag: para
+#: scopescontexts.xml:127
#, no-c-format
msgid "during web service invocations."
msgstr "durante a invocação de um web service"
#. Tag: para
-#: scopescontexts.xml:121
+#: scopescontexts.xml:131
#, fuzzy, no-c-format
-msgid "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."
+msgid ""
+"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:126
+#: scopescontexts.xml:136
#, no-c-format
-msgid "Three of the four built-in scopes should be extremely familiar to every Java EE developer, so let's not waste time discussing them here. One of the scopes, however, is new."
-msgstr "Três dos quatro escopos pré-definidos devem ser extremamente familiares a todos os desenvolvedores Java EE, então não vamos perder tempo discutindo-os aqui. Um dos escopos, porém, é novo."
+msgid ""
+"Managed beans with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal> must be serializable, since the "
+"container passivates the HTTP session from time to time."
+msgstr ""
+#. Tag: para
+#: scopescontexts.xml:141
+#, no-c-format
+msgid ""
+"Three of the four built-in scopes should be extremely familiar to every Java "
+"EE developer, so let's not waste time discussing them here. One of the "
+"scopes, however, is new."
+msgstr ""
+"Três dos quatro escopos pré-definidos devem ser extremamente familiares a "
+"todos os desenvolvedores Java EE, então não vamos perder tempo discutindo-os "
+"aqui. Um dos escopos, porém, é novo."
+
#. Tag: title
-#: scopescontexts.xml:134
+#: scopescontexts.xml:149
#, no-c-format
msgid "The conversation scope"
msgstr "O escopo de conversação"
#. Tag: para
-#: scopescontexts.xml:136
+#: scopescontexts.xml:151
#, fuzzy, no-c-format
-msgid "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, e o mantém durante várias requisições para o servidor. No entanto, ao contrário do escopo de sessão, o escopo de conversação:"
+msgid ""
+"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, "
+"e o mantém durante várias requisições para o servidor. No entanto, ao "
+"contrário do escopo de sessão, o escopo de conversação:"
#. Tag: para
-#: scopescontexts.xml:144
+#: scopescontexts.xml:159
#, no-c-format
msgid "is demarcated explicitly by the application, and"
msgstr "é demarcado explicitamente pela aplicação, e"
#. Tag: para
-#: scopescontexts.xml:147
+#: scopescontexts.xml:162
#, no-c-format
-msgid "holds state associated with a particular web browser tab in a 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)."
+msgid ""
+"holds state associated with a particular web browser tab in a 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:154
+#: scopescontexts.xml:169
#, 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."
-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 usuário que estiver utilizando no momento. Se o usuário estiver fazendo várias coisas ao mesmo tempo, existem várias conversações."
+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."
+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 "
+"usuário que estiver utilizando no momento. Se o usuário estiver fazendo "
+"várias coisas ao mesmo tempo, existem várias conversações."
#. Tag: para
-#: scopescontexts.xml:160
+#: scopescontexts.xml:175
#, fuzzy, no-c-format
-msgid "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 "A conversação está ativa durante qualquer requisição JSF. No entanto, a maioria das coversações é destruída no final da requisição. Se uma conversação deve manter estado através de múltiplas requisições, deve explicitamente ser promovida para uma <emphasis>conversação de longa duração (long-running conversation)</emphasis>."
+msgid ""
+"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 ""
+"A conversação está ativa durante qualquer requisição JSF. No entanto, a "
+"maioria das coversações é destruída no final da requisição. Se uma "
+"conversação deve manter estado através de múltiplas requisições, deve "
+"explicitamente ser promovida para uma <emphasis>conversação de longa duração "
+"(long-running conversation)</emphasis>."
#. Tag: title
-#: scopescontexts.xml:167
+#: scopescontexts.xml:182
#, no-c-format
msgid "Conversation demarcation"
msgstr "Demarcação de contexto"
#. Tag: para
-#: scopescontexts.xml:169
+#: scopescontexts.xml:184
#, fuzzy, no-c-format
-msgid "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:"
+msgid ""
+"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:174
+#: scopescontexts.xml:189
#, fuzzy, no-c-format
msgid "@Inject Conversation conversation;"
msgstr "@Current Conversation conversation;"
#. Tag: para
-#: scopescontexts.xml:176
+#: scopescontexts.xml:191
#, no-c-format
-msgid "To promote the conversation associated with the current request to a long-running conversation, call the <literal>begin()</literal> method from application code. To schedule the current long-running conversation context for destruction at the end of the current request, call <literal>end()</literal>."
-msgstr "Para promover a conversação associada a requisição atual em uma conversação de longa duração, chame o método <literal>begin()</literal> no código da aplicação. Para agendar a destruição do atual contexto de conversão de longa duração no final da requisição atual, chame <literal>end()</literal>."
+msgid ""
+"To promote the conversation associated with the current request to a long-"
+"running conversation, call the <literal>begin()</literal> method from "
+"application code. To schedule the current long-running conversation context "
+"for destruction at the end of the current request, call <literal>end()</"
+"literal>."
+msgstr ""
+"Para promover a conversação associada a requisição atual em uma conversação "
+"de longa duração, chame o método <literal>begin()</literal> no código da "
+"aplicação. Para agendar a destruição do atual contexto de conversão de longa "
+"duração no final da requisição atual, chame <literal>end()</literal>."
#. Tag: para
-#: scopescontexts.xml:182
+#: scopescontexts.xml:197
#, fuzzy, no-c-format
-msgid "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:"
+msgid ""
+"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:186
+#: scopescontexts.xml:201
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped @Stateful\n"
@@ -340,49 +476,77 @@
"}]]>"
#. Tag: para
-#: scopescontexts.xml:188
+#: scopescontexts.xml:203
#, fuzzy, no-c-format
-msgid "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."
+msgid ""
+"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:196
+#: scopescontexts.xml:211
#, no-c-format
msgid "Conversation propagation"
msgstr "Propagação de conversação"
#. Tag: para
-#: scopescontexts.xml:198
+#: scopescontexts.xml:213
#, fuzzy, no-c-format
-msgid "The conversation context automatically propagates with any JSF faces request (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."
+msgid ""
+"The conversation context automatically propagates with any JSF faces request "
+"(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:203
+#: scopescontexts.xml:218
#, 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 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 requisição. A especificação Web Beans reserva o parâmetro denominado <literal>cid</literal> para essa utilização. O identificador único da conversação pode ser obtido a partir do objeto <literal>Conversation</literal>, que tem o nome Web Bean <literal>conversation</literal>."
+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 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 "
+"requisição. A especificação Web Beans reserva o parâmetro denominado "
+"<literal>cid</literal> para essa utilização. O identificador único da "
+"conversação pode ser obtido a partir do objeto <literal>Conversation</"
+"literal>, que tem o nome Web Bean <literal>conversation</literal>."
#. Tag: para
-#: scopescontexts.xml:210
+#: scopescontexts.xml:225
#, no-c-format
msgid "Therefore, the following link propagates the conversation:"
msgstr "Portanto, o seguinte link propaga a conversação:"
#. Tag: programlisting
-#: scopescontexts.xml:214
+#: scopescontexts.xml:229
#, no-c-format
-msgid "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]>"
-msgstr "<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]>"
+msgid ""
+"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
+">"
+msgstr ""
+"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
+">"
#. Tag: para
-#: scopescontexts.xml:216
+#: scopescontexts.xml:231
#, no-c-format
msgid "It's probably better to use one of the link components in JSF 2:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:220
+#: scopescontexts.xml:235
#, no-c-format
msgid ""
"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
@@ -394,103 +558,286 @@
"</h:link>]]>"
#. Tag: para
-#: scopescontexts.xml:223
+#: scopescontexts.xml:238
#, 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 padrão POST-then-redirect, sem ter de recorrer a construções frágeis, como um objeto \"flash\". Neste caso, o gerenciador do Web Bean automaticamente adiciona um parâmetro de requisição a URL redirecionada."
+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 "
+"padrão POST-then-redirect, sem ter de recorrer a construções frágeis, como "
+"um objeto \"flash\". Neste caso, o gerenciador do Web Bean automaticamente "
+"adiciona um parâmetro de requisição a URL redirecionada."
#. Tag: title
-#: scopescontexts.xml:233
+#: scopescontexts.xml:248
#, no-c-format
msgid "Conversation timeout"
msgstr "Timeout de conversação"
#. Tag: para
-#: scopescontexts.xml:235
+#: scopescontexts.xml:250
#, fuzzy, no-c-format
-msgid "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 implementação do gerenciador do Web Bean irá normalmente fazer isso, com base em algum tipo de timeout — embora isso não seja exigido pela especificação Web Beans. O timeout é o período de inatividade antes que a conversação seja destruída."
+msgid ""
+"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 "
+"implementação do gerenciador do Web Bean irá normalmente fazer isso, com "
+"base em algum tipo de timeout — embora isso não seja exigido pela "
+"especificação Web Beans. O timeout é o período de inatividade antes que a "
+"conversação seja destruída."
#. Tag: para
-#: scopescontexts.xml:242
+#: scopescontexts.xml:257
#, fuzzy, no-c-format
-msgid "The <literal>Conversation</literal> object provides a method to set 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 tempo limite (timeout). Essa é uma sugestão para o gerente do Web Bean, que é livre para ignorar essa configuração."
+msgid ""
+"The <literal>Conversation</literal> object provides a method to set 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 "
+"tempo limite (timeout). Essa é uma sugestão para o gerente do Web Bean, que "
+"é livre para ignorar essa configuração."
#. Tag: programlisting
-#: scopescontexts.xml:247
+#: scopescontexts.xml:262
#, no-c-format
msgid "conversation.setTimeout(timeoutInMillis);"
msgstr "conversation.setTimeout(timeoutInMillis);"
#. Tag: title
-#: scopescontexts.xml:254
+#: scopescontexts.xml:269
+#, fuzzy, no-c-format
+msgid "The singleton pseudo-scope"
+msgstr "O dependent pseudo-scope"
+
+#. Tag: para
+#: scopescontexts.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"In addition to the four built-in scopes, CDI also supports two "
+"<emphasis>pseudo-scopes</emphasis>. The first is the <emphasis>singleton "
+"pseudo-scope</emphasis>, which we specify using the annotation "
+"<literal>@Singleton</literal>."
+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:277
#, no-c-format
+msgid ""
+"Unlike the other scopes, which belong to the package <literal>javax."
+"enterprise.context</literal>, the <literal>@Singleton</literal> annotation "
+"is defined in the package <literal>javax.inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:283
+#, no-c-format
+msgid ""
+"You can guess what \"singleton\" means here. It means a bean that is "
+"instantiated once. Unfortunately, there's a little problem with this pseudo-"
+"scope. Beans with scope <literal>@Singleton</literal> don't have a proxy "
+"object. Clients hold a direct reference to the singleton instance. So we "
+"need to consider the case of a client that can be serialized, for example, "
+"any bean with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal>, any dependent object of a bean with "
+"scope <literal>@SessionScoped</literal> or <literal>@ConversationScoped</"
+"literal>, or any stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:292
+#, no-c-format
+msgid ""
+"Now, if the singleton instance is a simple, immutable, serializable object "
+"like a string, a number or a date, we probably don't mind too much if it "
+"gets duplicated via serialization. However, that makes it no stop being a "
+"true singleton, and we may as well have just declared it with the default "
+"scope."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:298
+#, no-c-format
+msgid ""
+"There are several ways to ensure that the singleton bean remains a singleton "
+"when its client gets serialized:"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:302
+#, no-c-format
+msgid ""
+"have the singleton bean implement <literal>writeResolve()</literal> and "
+"<literal>readReplace()</literal> (as defined by the Java serialization "
+"specification),"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:308
+#, no-c-format
+msgid ""
+"make sure the client keeps only a transient reference to the singleton bean, "
+"or"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:313
+#, no-c-format
+msgid ""
+"give the client a reference of type <literal>Instance<X></literal> "
+"where <literal>X</literal> is the bean type of the singleton bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:320
+#, no-c-format
+msgid ""
+"A fourth, better solution is to instead use <literal>@ApplicationScoped</"
+"literal>, allowing the container to proxy the bean, and take care of "
+"serialization problems automatically."
+msgstr ""
+
+#. Tag: title
+#: scopescontexts.xml:326
+#, no-c-format
msgid "The dependent pseudo-scope"
msgstr "O dependent pseudo-scope"
#. Tag: para
-#: scopescontexts.xml:256
+#: scopescontexts.xml:328
#, fuzzy, no-c-format
-msgid "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 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."
+msgid ""
+"Finally, CDI features the so-called <emphasis>dependent pseudo-scope</"
+"emphasis>. This is the default scope for a 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:261
+#: scopescontexts.xml:333
#, fuzzy, no-c-format
-msgid "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>:"
+msgid ""
+"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:265
+#: scopescontexts.xml:337
#, no-c-format
msgid "<![CDATA[public class Calculator { ... }]]>"
msgstr "<![CDATA[public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:267
+#: scopescontexts.xml:339
#, no-c-format
-msgid "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."
+msgid ""
+"An instance 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:273
+#: scopescontexts.xml:345
+#, no-c-format
+msgid ""
+"If a Unified EL expression refers to a dependent bean by EL name, an "
+"instance of the bean is instantiated every time the expression is evaluated. "
+"The instance is not reused during any other expression evaluation."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:351
+#, no-c-format
+msgid ""
+"If you need to access a bean directly by EL name in a JSF page, you probably "
+"need to give it a scope other than <literal>@Dependent</literal>. Otherwise, "
+"any value that gets set to the bean by a JSF input will be lost immediately. "
+"That's why CDI features the <literal>@Model</literal> stereotype; it lets "
+"you give a bean a name, and set its scope to <literal>@RequestScoped</"
+"literal> in one stroke. If you need to access a bean that really "
+"<emphasis>has</emphasis> to have the scope <literal>@Dependent</literal> "
+"from a JSF page, inject it into a different bean, and expose it to EL via a "
+"getter method."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:361
+#, no-c-format
+msgid ""
+"Beans with scope <literal>@Dependent</literal> don't need a proxy object. "
+"The client holds a direct reference to its instance."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:366
#, fuzzy, no-c-format
-msgid "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 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."
+msgid ""
+"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 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:281
+#: scopescontexts.xml:374
#, no-c-format
msgid "The <literal>@New</literal> qualifier"
msgstr "The <literal>@New</literal> qualifier"
#. Tag: para
-#: scopescontexts.xml:283
+#: scopescontexts.xml:376
#, no-c-format
-msgid "The built-in qualifier <literal>@New</literal> allows us to obtain a dependent object of a specified class."
+msgid ""
+"The built-in qualifier <literal>@New</literal> allows us to obtain a "
+"dependent object of a specified class."
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:287
+#: scopescontexts.xml:380
#, no-c-format
msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
msgstr "<![CDATA[@Inject @New Calculator calculator;]]>"
#. Tag: para
-#: scopescontexts.xml:289
+#: scopescontexts.xml:382
#, no-c-format
-msgid "The class must be a valid managed bean or session bean, but need not be an enabled bean."
+msgid ""
+"The class must be a valid managed bean or session bean, but need not be an "
+"enabled bean."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:291
+#: scopescontexts.xml:384
#, fuzzy, no-c-format
-msgid "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:"
+msgid ""
+"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:296
+#: scopescontexts.xml:389
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped\n"
@@ -500,13 +847,17 @@
"public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:298
+#: scopescontexts.xml:391
#, no-c-format
-msgid "So the following injected attributes each get a different instance of <literal>Calculator</literal>:"
-msgstr "Portanto, os seguintes atributos injetados obtêm uma instância diferente de <literal>Calculator</literal>:"
+msgid ""
+"So the following injected attributes each get a different instance of "
+"<literal>Calculator</literal>:"
+msgstr ""
+"Portanto, os seguintes atributos injetados obtêm uma instância diferente de "
+"<literal>Calculator</literal>:"
#. Tag: programlisting
-#: scopescontexts.xml:302
+#: scopescontexts.xml:395
#, no-c-format
msgid ""
"<![CDATA[public class PaymentCalc {\n"
@@ -520,16 +871,29 @@
"}]]>"
#. Tag: para
-#: scopescontexts.xml:304
+#: scopescontexts.xml:397
#, no-c-format
-msgid "The <literal>calculator</literal> field has a conversation-scoped instance of <literal>Calculator</literal> injected. The <literal>newCalculator</literal> field has a new instance of <literal>Calculator</literal> injected, with a lifecycle that is bound to the owning <literal>PaymentCalc</literal>."
-msgstr "O campo <literal>calculator</literal> tem uma instância de <literal>Calculator</literal> em escopo de conversação injetada. O campo <literal>newCalculator</literal> tem uma nova instância do <literal>Calculator</literal> injetada, com ciclo de vida que é vinculado à <literal>PaymentCalc</literal>."
+msgid ""
+"The <literal>calculator</literal> field has a conversation-scoped instance "
+"of <literal>Calculator</literal> injected. The <literal>newCalculator</"
+"literal> field has a new instance of <literal>Calculator</literal> injected, "
+"with a lifecycle that is bound to the owning <literal>PaymentCalc</literal>."
+msgstr ""
+"O campo <literal>calculator</literal> tem uma instância de "
+"<literal>Calculator</literal> em escopo de conversação injetada. O campo "
+"<literal>newCalculator</literal> tem uma nova instância do "
+"<literal>Calculator</literal> injetada, com ciclo de vida que é vinculado à "
+"<literal>PaymentCalc</literal>."
#. Tag: para
-#: scopescontexts.xml:310
+#: scopescontexts.xml:403
#, no-c-format
-msgid "This feature is particularly useful with producer methods, as we'll see in the next chapter."
-msgstr "Essa funcionalidade é particularmente útil em métodos produtores, como poderemos verificar no próximo capítulo. "
+msgid ""
+"This feature is particularly useful with producer methods, as we'll see in "
+"the next chapter."
+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 "
@@ -537,6 +901,7 @@
#~ 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 "
@@ -551,12 +916,14 @@
#~ "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 "
@@ -565,6 +932,7 @@
#~ "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>, "
@@ -575,4 +943,3 @@
#~ "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/weldexamples.po
===================================================================
--- doc/trunk/reference/pt-BR/weldexamples.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/pt-BR/weldexamples.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-12-19 18:04-0300\n"
"Last-Translator: João Paulo Viragine <joao.viragine at redhat.com>\n"
"Language-Team: none\n"
@@ -22,7 +22,10 @@
#. 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>."
+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
@@ -34,19 +37,31 @@
#. 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."
+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."
+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."
+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
@@ -72,7 +87,10 @@
#. 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."
+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
@@ -85,7 +103,10 @@
#: 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"
+"<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"
@@ -115,7 +136,24 @@
" <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"
+"</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=\"XML"
+"\"><![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"
@@ -129,37 +167,62 @@
" <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"
+" 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"
+" 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"
+" 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"
+" 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"
+" 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"
+" <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 num!
ber. </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>"
+"</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:"
+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
@@ -179,7 +242,9 @@
#. 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:"
+msgid ""
+"There is also the <literal>@MaxNumber</literal> qualifier, used for "
+"injecting the maximum number that can be injected:"
msgstr ""
#. Tag: programlisting
@@ -201,7 +266,10 @@
#. 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:"
+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
@@ -211,7 +279,8 @@
"<![CDATA[@ApplicationScoped\n"
"public class Generator implements Serializable {\n"
"\n"
-" private java.util.Random random = new java.util.Random(System.currentTimeMillis());\n"
+" private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
" \n"
" private int maxNumber = 100;\n"
" \n"
@@ -232,7 +301,8 @@
"<![CDATA[@ApplicationScoped\n"
"public class Generator implements Serializable {\n"
"\n"
-" private java.util.Random random = new java.util.Random(System.currentTimeMillis());\n"
+" private java.util.Random random = new java.util.Random(System."
+"currentTimeMillis());\n"
" \n"
" private int maxNumber = 100;\n"
" \n"
@@ -253,25 +323,39 @@
#. 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."
+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."
+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."
+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})."
+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
@@ -301,7 +385,8 @@
" smallest = guess + 1;\n"
" }\n"
" else if (guess == number) {\n"
-" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(\"Correct!\"));\n"
+" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
" }\n"
" remainingGuesses--;\n"
" }\n"
@@ -315,7 +400,8 @@
" this.number = randomNumber.get();\n"
" }\n"
" \n"
-" public void validateNumberRange(FacesContext context, UIComponent toValidate, Object value) {\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"
@@ -381,7 +467,8 @@
" smallest = guess + 1;\n"
" }\n"
" else if (guess == number) {\n"
-" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(\"Correct!\"));\n"
+" FacesContext.getCurrentInstance().addMessage(null, new FacesMessage"
+"(\"Correct!\"));\n"
" }\n"
" remainingGuesses--;\n"
" }\n"
@@ -395,7 +482,8 @@
" this.number = randomNumber.get();\n"
" }\n"
" \n"
-" public void validateNumberRange(FacesContext context, UIComponent toValidate, Object value) {\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"
@@ -447,19 +535,32 @@
#. 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>."
+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?"
+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."
+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
@@ -467,17 +568,24 @@
#, no-c-format
msgid ""
"<![CDATA[<listener>\n"
-" <listener-class>org.jboss.weld.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.weld.environment.servlet.Listener</listener-class>\n"
+" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
"</listener>]]>"
#. 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."
+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
@@ -489,25 +597,41 @@
#. 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."
+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."
+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."
+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."
+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
@@ -519,37 +643,63 @@
#. 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.."
+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 url=\"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."
+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>."
+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!"
+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."
+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:"
+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
@@ -563,7 +713,11 @@
#. 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>."
+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
@@ -581,7 +735,16 @@
#. 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."
+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 "
+"<ulink url=\"http://localhost:9090\">http://localhost:9090</ulink> to view "
+"the app. To debug choose <emphasis>Debug as Java Application</emphasis> "
+"instead."
msgstr ""
#. Tag: title
@@ -593,7 +756,12 @@
#. 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:"
+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
@@ -617,13 +785,18 @@
#. 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>."
+msgid ""
+"to deploy the example to Tomcat. You can then access application at <ulink "
+"url=\"http://localhost:8080/weld-numberguess-wicket\">http://localhost:8080/"
+"weld-numberguess-wicket</ulink>."
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:"
+msgid ""
+"Alternatively, you can run the application in place on an embedded Jetty "
+"container using the following Maven command:"
msgstr ""
#. Tag: programlisting
@@ -647,13 +820,25 @@
#. 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."
+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)."
+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
@@ -665,7 +850,10 @@
#. 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>:"
+msgid ""
+"Each wicket application must have a <literal>WeldApplication</literal> "
+"subclass. In our case, our application class is "
+"<literal>NumberGuessApplication</literal>:"
msgstr ""
#. Tag: programlisting
@@ -687,13 +875,18 @@
#. 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>"
+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:"
+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
@@ -705,7 +898,9 @@
#. 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:"
+msgid ""
+"The <literal>Game</literal> bean is can then be used, for example, by the "
+"code for submitting a guess:"
msgstr ""
#. Tag: programlisting
@@ -765,25 +960,38 @@
#. 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."
+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."
+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."
+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>:"
+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
@@ -792,10 +1000,12 @@
msgid ""
"<![CDATA[<filter>\n"
" <filter-name>Wicket Filter</filter-name>\n"
-" <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>\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"
+" <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
" </init-param>\n"
"</filter>\n"
"\n"
@@ -806,10 +1016,12 @@
msgstr ""
"<![CDATA[<filter>\n"
" <filter-name>Wicket Filter</filter-name>\n"
-" <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>\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"
+" <param-value>org.jboss.weld.examples.wicket.NumberGuessApplication</"
+"param-value>\n"
" </init-param>\n"
"</filter>\n"
"\n"
@@ -821,7 +1033,13 @@
#. 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."
+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
@@ -830,13 +1048,15 @@
msgid ""
"<![CDATA[<web-app version=\"2.4\" ...>\n"
" <listener>\n"
-" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>\n"
+" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
" </listener>\n"
"</web-app>]]>"
msgstr ""
"<![CDATA[<web-app version=\"2.4\" ...>\n"
" <listener>\n"
-" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>\n"
+" <listener-class>org.jboss.weld.environment.servlet.Listener</listener-"
+"class>\n"
" </listener>\n"
"</web-app>]]>"
@@ -849,7 +1069,11 @@
#. 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."
+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
@@ -867,13 +1091,17 @@
#. Tag: para
#: weldexamples.xml:484
#, no-c-format
-msgid "Ensure that the <literal>JAVA_HOME</literal> environment variable is pointing to your JDK installation"
+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"
+msgid ""
+"Open a command line or terminal window in the <literal>examples/se/"
+"numberguess</literal> directory"
msgstr ""
#. Tag: para
@@ -891,27 +1119,38 @@
#. 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."
+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."
+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:"
+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"
+"<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\n"
"{\n"
"\n"
" public static final int MAX_NUM_GUESSES = 10;\n"
@@ -981,7 +1220,8 @@
"\n"
" private boolean checkNewNumberRangeIsValid()\n"
" {\n"
-" return validNumberRange = ((guess >= smallest) && (guess <= biggest));\n"
+" return validNumberRange = ((guess >= smallest) && (guess <= "
+"biggest));\n"
" }\n"
"\n"
" @PostConstruct\n"
@@ -993,14 +1233,45 @@
" 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 m!
essages 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 t!
o 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"
+"}]]></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 can't use "
+"<literal>Instance.get()</literal> like the JSF example does because there "
+"will not be any active contexts like there are 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"
+" 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"
@@ -1040,10 +1311,24 @@
" direction = \"Lower\";\n"
" }\n"
"\n"
-" return direction + \"! You have \" + game.getRemainingGuesses() + \" guesses left.\";\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 j!
avax.swing.JFrame\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"
@@ -1080,7 +1365,8 @@
" ...\n"
" }\n"
"\n"
-" private void guessButtonActionPerformed( java.awt.event.ActionEvent evt )\n"
+" private void guessButtonActionPerformed( java.awt.event.ActionEvent "
+"evt )\n"
" {\n"
" int guess = Integer.parseInt(guessText.getText());\n"
" game.setGuess( guess );\n"
@@ -1107,7 +1393,32 @@
" ...\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 per!
form 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>"
+"}]]></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
@@ -1119,25 +1430,36 @@
#. 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!)"
+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."
+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."
+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:"
+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
@@ -1175,13 +1497,18 @@
#. 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>."
+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>:"
+msgid ""
+"If you weren't using Maven to generate these files, you would need "
+"<literal>META-INF/application.xml</literal>:"
msgstr ""
#. Tag: programlisting
@@ -1233,13 +1560,21 @@
#. 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>."
+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):"
+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
@@ -1259,7 +1594,8 @@
" </tr>\n"
" <tr>\n"
" <td>\n"
-" <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\"/>\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"
@@ -1267,7 +1603,8 @@
" </tr>\n"
" </table>\n"
" <div>\n"
-" <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
+" <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
" </div>\n"
" \n"
"</h:form>]]>"
@@ -1285,7 +1622,8 @@
" </tr>\n"
" <tr>\n"
" <td>\n"
-" <h:inputTextarea id=\"text\" value=\"#{translator.text}\" required=\"true\" rows=\"5\" cols=\"80\"/>\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"
@@ -1293,7 +1631,8 @@
" </tr>\n"
" </table>\n"
" <div>\n"
-" <h:commandButton id=\"button\" value=\"Translate\" action=\"#{translator.translate}\"/>\n"
+" <h:commandButton id=\"button\" value=\"Translate\" action=\"#"
+"{translator.translate}\"/>\n"
" </div>\n"
" \n"
"</h:form>]]>"
@@ -1301,25 +1640,40 @@
#. 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."
+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."
+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."
+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:"
+msgid ""
+"Both <literal>SentenceParser</literal> and <literal>TextTranslator</literal> "
+"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
+"injection:"
msgstr ""
#. Tag: programlisting
@@ -1369,7 +1723,13 @@
#. 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!"
+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
@@ -1397,7 +1757,11 @@
#. 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."
+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
@@ -1469,6 +1833,8 @@
#. 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>."
+msgid ""
+"That concludes our short tour of the Weld starter examples. For more "
+"information on Weld, please visit <ulink url=\"http://www.seamframework.org/"
+"Weld\">http://www.seamframework.org/Weld</ulink>."
msgstr ""
-
Modified: doc/trunk/reference/zh-CN/beans.po
===================================================================
--- doc/trunk/reference/zh-CN/beans.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/beans.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -484,14 +484,14 @@
#, 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."
+"context until the context is destroyed. There is no way to manually remove a "
+"bean from a context. If you don't want the bean to sit in the session "
+"indefinitely, consider using another scope with a shorted lifespan, such as "
+"the request or conversation scope."
msgstr ""
#. Tag: para
-#: beans.xml:272
+#: beans.xml:273
#, no-c-format
msgid ""
"If a scope is not explicitly specified, then the bean belongs to a special "
@@ -501,19 +501,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:278
+#: beans.xml:279
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:283
+#: beans.xml:284
#, no-c-format
msgid "EL name"
msgstr ""
#. Tag: para
-#: beans.xml:285
+#: beans.xml:286
#, no-c-format
msgid ""
"If you want to reference a bean in non-Java code that supports Unified EL "
@@ -522,7 +522,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:290
+#: beans.xml:291
#, no-c-format
msgid ""
"The EL name is specified using the <literal>@Named</literal> annotation, as "
@@ -530,7 +530,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:294
+#: beans.xml:295
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
@@ -538,13 +538,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:296
+#: beans.xml:297
#, no-c-format
msgid "Now we can easily use the bean in any JSF or JSP page:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:298
+#: beans.xml:299
#, no-c-format
msgid ""
"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
@@ -553,7 +553,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:301
+#: beans.xml:302
#, no-c-format
msgid ""
"The <literal>@Named</literal> annotation is not what makes the class a bean. "
@@ -563,7 +563,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:308
+#: beans.xml:309
#, no-c-format
msgid ""
"We can let CDI choose a name for us by leaving off the value of the "
@@ -571,7 +571,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:312
+#: beans.xml:313
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named\n"
@@ -579,7 +579,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:314
+#: beans.xml:315
#, no-c-format
msgid ""
"The name defaults to the unqualified class name, decapitalized; in this "
@@ -587,13 +587,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:324
+#: beans.xml:325
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: beans.xml:326
+#: beans.xml:327
#, no-c-format
msgid ""
"We've already seen how qualifiers let us choose between multiple "
@@ -606,7 +606,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:334
+#: beans.xml:335
#, no-c-format
msgid ""
"<![CDATA[public @Alternative\n"
@@ -614,33 +614,33 @@
msgstr ""
#. Tag: para
-#: beans.xml:336
+#: beans.xml:337
#, 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 "
+"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
+#: beans.xml:345
#, no-c-format
msgid ""
"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:351
+#: beans.xml:352
#, no-c-format
msgid "Interceptor binding types"
msgstr ""
#. Tag: para
-#: beans.xml:353
+#: beans.xml:354
#, no-c-format
msgid ""
"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
@@ -651,7 +651,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:360
+#: beans.xml:361
#, no-c-format
msgid ""
"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
@@ -668,7 +668,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:371
+#: beans.xml:372
#, no-c-format
msgid ""
"CDI provides a new approach to binding interceptors to beans that introduces "
@@ -678,7 +678,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:377
+#: beans.xml:378
#, no-c-format
msgid ""
"An interceptor binding type is a user-defined annotation that is itself "
@@ -688,7 +688,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:382
+#: beans.xml:383
#, no-c-format
msgid ""
"<![CDATA[@InterceptorBinding\n"
@@ -699,7 +699,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:384
+#: beans.xml:385
#, no-c-format
msgid ""
"The interceptor that implements transaction management declares this "
@@ -707,7 +707,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:388
+#: beans.xml:389
#, no-c-format
msgid ""
"<![CDATA[public @Transactional @Interceptor\n"
@@ -715,7 +715,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:390
+#: beans.xml:391
#, no-c-format
msgid ""
"We can apply the interceptor to a bean by annotating the bean class with the "
@@ -723,7 +723,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:394
+#: beans.xml:395
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Transactional\n"
@@ -731,7 +731,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:396
+#: beans.xml:397
#, no-c-format
msgid ""
"Notice that <literal>ShoppingCart</literal> and "
@@ -740,18 +740,18 @@
msgstr ""
#. Tag: para
-#: beans.xml:401
+#: beans.xml:402
#, 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 "
+"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
+#: beans.xml:409
#, no-c-format
msgid ""
"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
@@ -759,13 +759,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:418
+#: beans.xml:419
#, no-c-format
msgid "What kinds of classes are beans?"
msgstr ""
#. Tag: para
-#: beans.xml:420
+#: beans.xml:421
#, no-c-format
msgid ""
"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
@@ -774,13 +774,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:427
+#: beans.xml:428
#, no-c-format
msgid "Managed beans"
msgstr ""
#. Tag: para
-#: beans.xml:429
+#: beans.xml:430
#, no-c-format
msgid ""
"A managed bean is a Java class. The basic lifecycle and semantics of a "
@@ -792,19 +792,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:440
+#: beans.xml:441
#, no-c-format
msgid "It is not a non-static inner class."
msgstr ""
#. Tag: para
-#: beans.xml:443
+#: beans.xml:444
#, no-c-format
msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:446
+#: beans.xml:447
#, no-c-format
msgid ""
"It is not annotated with an EJB component-defining annotation or declared as "
@@ -812,7 +812,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:452
+#: beans.xml:453
#, no-c-format
msgid ""
"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
@@ -820,25 +820,25 @@
msgstr ""
#. Tag: para
-#: beans.xml:455
+#: beans.xml:456
#, no-c-format
msgid "It has an appropriate constructor—either:"
msgstr ""
#. Tag: para
-#: beans.xml:460
+#: beans.xml:461
#, no-c-format
msgid "the class has a constructor with no parameters, or"
msgstr ""
#. Tag: para
-#: beans.xml:463
+#: beans.xml:464
#, no-c-format
msgid "the class declares a constructor annotated <literal>@Inject</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:471
+#: beans.xml:472
#, no-c-format
msgid ""
"The unrestricted set of bean types for a managed bean contains the bean "
@@ -847,7 +847,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:474
+#: beans.xml:475
#, no-c-format
msgid ""
"If a managed bean has a public field, it must have the default scope "
@@ -855,7 +855,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:476
+#: beans.xml:477
#, no-c-format
msgid ""
"Managed beans support the <literal>@PostConstruct</literal> and "
@@ -863,7 +863,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:479
+#: beans.xml:480
#, no-c-format
msgid ""
"Session beans are also, technically, managed beans. However, since they have "
@@ -873,13 +873,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:488
+#: beans.xml:489
#, no-c-format
msgid "Session beans"
msgstr ""
#. Tag: para
-#: beans.xml:490
+#: beans.xml:491
#, no-c-format
msgid ""
"Session beans belong to the EJB specification. They have a special "
@@ -892,7 +892,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:499
+#: beans.xml:500
#, no-c-format
msgid ""
"Message-driven and entity beans are by nature non-contextual objects and may "
@@ -904,7 +904,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:507
+#: beans.xml:508
#, no-c-format
msgid ""
"The unrestricted set of bean types for a session bean contains all local "
@@ -916,7 +916,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:515
+#: beans.xml:516
#, no-c-format
msgid ""
"There's no reason to explicitly declare the scope of a stateless session "
@@ -927,7 +927,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:519
+#: beans.xml:520
#, no-c-format
msgid ""
"Stateful session beans may define a <emphasis>remove method</emphasis>, "
@@ -940,7 +940,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:527
+#: beans.xml:528
#, no-c-format
msgid ""
"So, when should we use a session bean instead of a plain managed bean? "
@@ -948,19 +948,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:534
+#: beans.xml:535
#, no-c-format
msgid "method-level transaction management and security,"
msgstr ""
#. Tag: para
-#: beans.xml:537
+#: beans.xml:538
#, no-c-format
msgid "concurrency management,"
msgstr ""
#. Tag: para
-#: beans.xml:540
+#: beans.xml:541
#, no-c-format
msgid ""
"instance-level passivation for stateful session beans and instance-pooling "
@@ -968,19 +968,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:544
+#: beans.xml:545
#, no-c-format
msgid "remote or web service invocation, or"
msgstr ""
#. Tag: para
-#: beans.xml:547
+#: beans.xml:548
#, no-c-format
msgid "timers and asynchronous methods,"
msgstr ""
#. Tag: para
-#: beans.xml:551
+#: beans.xml:552
#, no-c-format
msgid ""
"When we don't need any of these things, an ordinary managed bean will serve "
@@ -988,7 +988,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:553
+#: beans.xml:554
#, no-c-format
msgid ""
"Many beans (including any <literal>@SessionScoped</literal> or "
@@ -998,7 +998,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:559
+#: beans.xml:560
#, no-c-format
msgid ""
"Beans which hold references to heavy-weight resources, or hold a lot of "
@@ -1008,7 +1008,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:565
+#: beans.xml:566
#, no-c-format
msgid ""
"Finally, it's usually obvious when method-level transaction management, "
@@ -1017,7 +1017,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:570
+#: beans.xml:571
#, no-c-format
msgid ""
"The point we're trying to make is: use a session bean when you need the "
@@ -1030,7 +1030,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:578
+#: beans.xml:579
#, no-c-format
msgid ""
"On the other hand, don't be scared to use session beans just because you've "
@@ -1043,13 +1043,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:589
+#: beans.xml:590
#, no-c-format
msgid "Producer methods"
msgstr ""
#. Tag: para
-#: beans.xml:591
+#: beans.xml:592
#, no-c-format
msgid ""
"Not everything that needs to be injected can be boiled down to a bean class "
@@ -1061,7 +1061,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:599
+#: beans.xml:600
#, no-c-format
msgid ""
"A <emphasis>producer method</emphasis> is a method that acts as a source of "
@@ -1072,7 +1072,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:606
+#: beans.xml:607
#, no-c-format
msgid ""
"A producer method is declared by annotating a method of a bean class with "
@@ -1080,7 +1080,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:611
+#: beans.xml:612
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
@@ -1096,7 +1096,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:613
+#: beans.xml:614
#, no-c-format
msgid ""
"We can't write a bean class that is itself a random number. But we can "
@@ -1111,25 +1111,25 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:622
+#: beans.xml:623
#, no-c-format
msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
msgstr ""
#. Tag: para
-#: beans.xml:624
+#: beans.xml:625
#, no-c-format
msgid "Even in a Unified EL expression:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:628
+#: beans.xml:629
#, no-c-format
msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
msgstr ""
#. Tag: para
-#: beans.xml:630
+#: beans.xml:631
#, no-c-format
msgid ""
"A producer method must be a non-abstract method of a managed bean class or "
@@ -1139,13 +1139,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:636
+#: beans.xml:637
#, no-c-format
msgid "The bean types of a producer method depend upon the method return type:"
msgstr ""
#. Tag: para
-#: beans.xml:642
+#: beans.xml:643
#, no-c-format
msgid ""
"If the return type is an interface, the unrestricted set of bean types "
@@ -1154,7 +1154,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:648
+#: beans.xml:649
#, no-c-format
msgid ""
"If a return type is primitive or is a Java array type, the unrestricted set "
@@ -1163,7 +1163,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:654
+#: beans.xml:655
#, no-c-format
msgid ""
"If the return type is a class, the unrestricted set of bean types contains "
@@ -1172,7 +1172,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:661
+#: beans.xml:662
#, no-c-format
msgid ""
"If the producer method has method parameters, the container will look for a "
@@ -1181,7 +1181,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:667
+#: beans.xml:668
#, no-c-format
msgid ""
"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
@@ -1190,7 +1190,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:669
+#: beans.xml:670
#, no-c-format
msgid ""
"We'll talk much more about producer methods in <xref linkend="
@@ -1198,13 +1198,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:674
+#: beans.xml:675
#, no-c-format
msgid "Producer fields"
msgstr ""
#. Tag: para
-#: beans.xml:676
+#: beans.xml:677
#, no-c-format
msgid ""
"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
@@ -1214,7 +1214,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:682
+#: beans.xml:683
#, no-c-format
msgid ""
"<![CDATA[public class Shop {\n"
@@ -1224,7 +1224,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:684
+#: beans.xml:685
#, no-c-format
msgid ""
"The rules for determining the bean types of a producer field parallel the "
@@ -1232,7 +1232,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:688
+#: beans.xml:689
#, no-c-format
msgid ""
"A producer field is really just a shortcut that lets us avoid writing a "
@@ -1242,3 +1242,405 @@
"linkend=\"resources\"/>. Because we can't wait to get to work on some "
"examples."
msgstr ""
+
+#. Tag: title
+#: beans.xml:701
+#, no-c-format
+msgid "The (minimal) bean descriptor"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:703
+#, no-c-format
+msgid ""
+"First, it's important to understand that the XML bean descriptor in CDI "
+"(beans.xml) is not there to define beans in XML, like in other popular bean "
+"containers. Rather, you use this file to enable CDI services for the current "
+"bean archive that is difficult to define consistently in Java or which you "
+"don't want to define in Java (e.g., to accomodate testing)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:710
+#, no-c-format
+msgid ""
+"For example, the XML is used to enable interceptors (which are disabled by "
+"default) and define interceptor ordering. So the bean descriptor "
+"<emphasis>complements</emphasis> the metadata that is provided in the Java "
+"language syntax. (You may still want to define beans in XML for other "
+"reasons, but that is the concern of an extension)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:717
+#, no-c-format
+msgid ""
+"Let's first ask why the beans.xml is required, then look at what services it "
+"is used used to enable."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:722
+#, no-c-format
+msgid "Why is beans.xml required?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:724
+#, no-c-format
+msgid ""
+"You may be wondering, if beans are not described using XML, why do we need "
+"beans.xml at all, particularly if you don't have anything that you would "
+"need the bean descriptor to enable (alternatives, interceptors or "
+"decorators)?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:730
+#, no-c-format
+msgid "There are two things about CDI that we need to keep in mind:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:736
+#, no-c-format
+msgid ""
+"CDI does not require any special declaration for a Java class to be injected "
+"- that's right, no annotation or XML declaration at all!"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:742
+#, no-c-format
+msgid ""
+"CDI does not define any special kind of module - CDI beans can be deployed "
+"in a library JAR, EJB JAR, WAR, RAR, or JVM classpath directory."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:749
+#, no-c-format
+msgid ""
+"The CDI specification calls the process of identifying beans in modules "
+"<emphasis>bean discovery</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:753
+#, no-c-format
+msgid ""
+"So there are potentially a lot of classes in the classpath which might be "
+"beans! We don't want to force the container to scan every one of those "
+"classes at startup and build its internal metamodel for each of them. This "
+"really could make bean discovery very slow."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:759
+#, no-c-format
+msgid ""
+"But there's another reason we need to give the user some control over which "
+"classes are available for injection. We don't want every class in the "
+"classpath to potentially match an injection point, including classes that "
+"were never intended to be injected into things. This would force the "
+"developer to have to use qualifiers much more often to disambiguate "
+"injection points."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:766
+#, no-c-format
+msgid "So we have two choices. We could have the developer:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:772
+#, no-c-format
+msgid "explicitly exclude modules which do not contain beans, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:775
+#, no-c-format
+msgid "explicitly declare modules which do contain beans."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:779
+#, no-c-format
+msgid ""
+"It should be clear that the second option is a much better way to go. Thus, "
+"CDI has the notion of a bean archive. A bean archive is just a module that "
+"has a file named beans.xml in the META-INF directory. The container looks "
+"for beans in bean archives. It ignores other modules."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:785
+#, no-c-format
+msgid ""
+"Now, you might be wondering if we've got the granularity wrong here. Why "
+"should module be the right criteria to use for including/excluding a class. "
+"Why not consider:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:792
+#, no-c-format
+msgid "a class-level annotation,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:795
+#, no-c-format
+msgid "the package,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:798
+#, no-c-format
+msgid "some type it implements or extends, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:801
+#, no-c-format
+msgid "some naming convention."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:805
+#, no-c-format
+msgid ""
+"We've got the first option covered. Annotate a bean <literal>@Alternative</"
+"literal>, or with an alternative stereotype, and it will be considered "
+"disabled by CDI, as long as you don't explicitly enable it in beans.xml. "
+"That's not quite the same thing as excluding the class from scanning "
+"altogether, but it's close. (One difference is that a portable extension "
+"with still get a <literal>ProcessAnnotatedType</literal> event for that "
+"class)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:813
+#, no-c-format
+msgid ""
+"A future version of CDI might allow you to declare excluded packages in "
+"beans.xml. Excluding a bean by type or naming convention isn't really that "
+"appealing. In the world of CDI, we use stereotypes for identifying "
+"architectural roles. We don't use marker interfaces or naming conventions. "
+"Names really shouldn't affect functionality as it is too fragile."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:820
+#, no-c-format
+msgid "Enough theory, what elements are available in beans.xml?"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:826
+#, no-c-format
+msgid "Bean descriptor schema"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:828
+#, no-c-format
+msgid ""
+"If you don't need to activate any interceptors, decorators or alternatives "
+"(you just have plain beans that you need to use in an archive), the beans."
+"xml file can be <emphasis>empty</emphasis>. If you do have one of these "
+"requirements, then you need to start popularing the descriptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:834
+#, no-c-format
+msgid ""
+"The root element of a beans.xml file is <literal>beans</literal>, with the "
+"following <ulink url=\"http://anonsvn.jboss.org/repos/weld/api/trunk/cdi/src/"
+"main/resources/beans.xsd\">schema</ulink>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:839
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<beans 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"
+"</beans>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:841
+#, no-c-format
+msgid ""
+"The <literal>beans</literal> element can have one or more of each of the "
+"following children:"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:847
+#, no-c-format
+msgid "interceptors"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:850
+#, no-c-format
+msgid "decorators"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:853
+#, no-c-format
+msgid "alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:857
+#, no-c-format
+msgid "Let's look at each element in detail."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:862
+#, no-c-format
+msgid "<interceptors>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:864
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled interceptors bound via interceptor "
+"bindings. An interceptor must be explicitly enabled by listing the fully "
+"qualified class name in a child <class> element of <"
+"interceptors>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:870
+#, no-c-format
+msgid ""
+"There may be zero or more interceptor class elements. The order of the class "
+"declarations determines the interceptor ordering. Interceptors which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an interceptor "
+"class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:877
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.intercept.SecurityInterceptor</class>\n"
+" <class>com.acme.intercept.TransactionInterceptor</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:883
+#, no-c-format
+msgid "<decorators>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:885
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled decorators. A decorator must be "
+"explicitly enabled by listing the fully qualified class name in a child <"
+"class> element of <decorators>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:891
+#, no-c-format
+msgid ""
+"There may be zero or more decorator class elements. The order of the class "
+"declarations determines the decorator ordering. Decorators which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an decorator class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.decorate.BigAccountDecorator</class>\n"
+" <class>com.acme.decorate.SpecialGiftDecorator</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:903
+#, no-c-format
+msgid "<alternatives>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:905
+#, no-c-format
+msgid ""
+"An alternative is a bean that must be explicitly declared in the beans.xml "
+"file if it should be available for lookup, injection or EL resolution. By "
+"default, a bean archive has no active alternatives. An alternative must be "
+"explicitly declared using the fully qualified bean class name or stereotype "
+"class name in either a child <class> or <stereotype> element of "
+"<alternatives>, respectively."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:913
+#, no-c-format
+msgid ""
+"An alternative is selected for the bean archive if either: the alternative "
+"is a managed bean or session bean and the bean class of the bean is listed, "
+"or the alternative is a producer method, field or resource, and the bean "
+"class that declares the method or field is listed, or any "
+"<literal>@Alternative</literal> stereotype of the alternative is listed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:920
+#, no-c-format
+msgid ""
+"There may be zero or more alternative bean class elements. The same class "
+"may not be listed twice. And of course, the class must exist and it must be "
+"an alternative bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:925
+#, no-c-format
+msgid ""
+"There may also be zero or more <literal>@Alternative</literal> stereotype "
+"elements. The same stereotype may not be listed twice. And of course, the "
+"stereotype class must exist and it must be an stereotype annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:931
+#, no-c-format
+msgid ""
+"<![CDATA[<stereotypes>\n"
+" <class>com.acme.business.MockPaymentProcessor</class>\n"
+" <stereotype>com.acme.stereotype.Mock</stereotype>\n"
+"</stereotypes>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:935
+#, no-c-format
+msgid ""
+"And that's it! A very simple schema, used only to activate and order CDI "
+"services."
+msgstr ""
Modified: doc/trunk/reference/zh-CN/dependencies.po
===================================================================
--- doc/trunk/reference/zh-CN/dependencies.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/dependencies.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -24,7 +24,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/"
+"is currently maintained in the <ulink url=\"https://jira.jboss.org/jira/"
"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
"appendix."
msgstr ""
Modified: doc/trunk/reference/zh-CN/ee.po
===================================================================
--- doc/trunk/reference/zh-CN/ee.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/ee.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -64,7 +64,7 @@
#: ee.xml:32
#, no-c-format
msgid ""
-"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"the default <ulink url=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
"Validation</ulink> <literal>ValidationFactory</literal>, and"
msgstr ""
@@ -76,14 +76,49 @@
"literal>."
msgstr ""
+#. Tag: para
+#: ee.xml:45
+#, no-c-format
+msgid ""
+"The CDI specification does not require the servlet context objects, "
+"<literal>HttpServletRequest</literal>, <literal>HttpSession</literal> and "
+"<literal>ServletContext</literal> to be exposed as injectable beans. If you "
+"really want to be able to inject these objects, it's easy to create a "
+"portable extension to expose them as beans. However, we recommend that "
+"direct access to these objects be limited to servlets, servlet filters and "
+"servlet event listeners, where they may be obtained in the usual way as "
+"defined by the Java Servlets spec. The <literal>FacesContext</literal> is "
+"also not injectable. You can get at it by calling <literal>FacesContext."
+"getCurrentInstance()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ee.xml:57
+#, no-c-format
+msgid ""
+"Oh, you <emphasis>really</emphasis> want to inject the "
+"<literal>FacesContext</literal>? Alright then, try this producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: ee.xml:61
+#, no-c-format
+msgid ""
+"<![CDATA[class FacesContextProducer {\n"
+" @Produces @RequestScoped FacesContext getFacesContext() {\n"
+" return FacesContext.getCurrentInstance();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
#. Tag: title
-#: ee.xml:47
+#: ee.xml:67
#, fuzzy, no-c-format
msgid "Injecting Java EE resources into a bean"
msgstr "将Java EE资源注入到一个Web Bean中"
#. Tag: para
-#: ee.xml:49
+#: ee.xml:69
#, fuzzy, no-c-format
msgid ""
"All managed beans may take advantage of Java EE component environment "
@@ -97,7 +132,7 @@
"的依赖注入。我们已经看过很多例子了,虽然我们没有在这上面耗费精力:"
#. Tag: programlisting
-#: ee.xml:56
+#: ee.xml:76
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @Interceptor\n"
@@ -119,7 +154,7 @@
"}]]>"
#. Tag: programlisting
-#: ee.xml:58
+#: ee.xml:78
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped\n"
@@ -140,7 +175,7 @@
"}]]>"
#. Tag: para
-#: ee.xml:60
+#: ee.xml:80
#, fuzzy, no-c-format
msgid ""
"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
@@ -153,7 +188,7 @@
"<emphasis>所有的</emphasis> 注入完成后被调用。"
#. Tag: para
-#: ee.xml:66
+#: ee.xml:86
#, no-c-format
msgid ""
"Of course, we advise that component environment injection be used to define "
@@ -161,13 +196,13 @@
msgstr ""
#. Tag: title
-#: ee.xml:74
+#: ee.xml:94
#, fuzzy, no-c-format
msgid "Calling a bean from a servlet"
msgstr "从Servlet调用一个Web Bean"
#. Tag: para
-#: ee.xml:76
+#: ee.xml:96
#, fuzzy, no-c-format
msgid ""
"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
@@ -177,7 +212,7 @@
"入一个Web Bean或者将初始方法注入即可。"
#. Tag: programlisting
-#: ee.xml:81
+#: ee.xml:101
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class Login extends HttpServlet {\n"
@@ -224,7 +259,7 @@
"}"
#. Tag: para
-#: ee.xml:83
+#: ee.xml:103
#, fuzzy, no-c-format
msgid ""
"Since instances of servlets are shared across all incoming threads, the bean "
@@ -236,13 +271,13 @@
"<literal>Credentials</literal> 和 <literal>Login</literal> 实例。"
#. Tag: title
-#: ee.xml:92
+#: ee.xml:112
#, fuzzy, no-c-format
msgid "Calling a bean from a message-driven bean"
msgstr "从消息驱动Bean中调用一个Web Bean"
#. Tag: para
-#: ee.xml:94
+#: ee.xml:114
#, no-c-format
msgid ""
"CDI injection applies to all EJBs, even when they aren't managed beans. In "
@@ -251,13 +286,13 @@
msgstr ""
#. Tag: para
-#: ee.xml:99
+#: ee.xml:119
#, fuzzy, no-c-format
msgid "You can even use CDI interceptor bindings for message-driven Beans."
msgstr "你甚至可以将Web Beans拦截器绑定到消息驱动Bean上。"
#. Tag: programlisting
-#: ee.xml:101
+#: ee.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @MessageDriven\n"
@@ -283,7 +318,7 @@
"}"
#. Tag: para
-#: ee.xml:103
+#: ee.xml:123
#, fuzzy, no-c-format
msgid ""
"Please note that there is no session or conversation context available when "
@@ -297,19 +332,19 @@
"literal> 注释的Web Beans。"
#. Tag: para
-#: ee.xml:109
+#: ee.xml:129
#, no-c-format
msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
msgstr ""
#. Tag: title
-#: ee.xml:116
+#: ee.xml:136
#, no-c-format
msgid "JMS endpoints"
msgstr "JMS端点"
#. Tag: para
-#: ee.xml:118
+#: ee.xml:138
#, no-c-format
msgid ""
"Sending messages using JMS can be quite complex, because of the number of "
@@ -331,7 +366,7 @@
"literal>。这些对象每个都有自己的生命周期和线程模型,我们都需要考虑这些问题。"
#. Tag: para
-#: ee.xml:127
+#: ee.xml:147
#, no-c-format
msgid ""
"You can use producer fields and methods to prepare all of these resources "
@@ -339,7 +374,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:131
+#: ee.xml:151
#, no-c-format
msgid ""
"<![CDATA[public class OrderResources {\n"
@@ -388,7 +423,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:133
+#: ee.xml:153
#, no-c-format
msgid ""
"In this example, we can just inject the prepared <literal>MessageProducer</"
@@ -396,7 +431,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:138
+#: ee.xml:158
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject Order order;\n"
@@ -420,7 +455,7 @@
"}"
#. Tag: para
-#: ee.xml:144
+#: ee.xml:164
#, fuzzy, no-c-format
msgid ""
"The lifecycle of the injected JMS objects is completely controlled by the "
@@ -428,13 +463,13 @@
msgstr "被注入的JMS对象的生命周期完全由Web Bean管理器控制。"
#. Tag: title
-#: ee.xml:151
+#: ee.xml:171
#, no-c-format
msgid "Packaging and deployment"
msgstr "打包和部署"
#. Tag: para
-#: ee.xml:153
+#: ee.xml:173
#, fuzzy, no-c-format
msgid ""
"CDI doesn't define any special deployment archive. You can package beans in "
@@ -454,7 +489,7 @@
"<literal>web-beans.xml</literal> 配置文件,应用将无法使用Web Beans。"
#. Tag: para
-#: ee.xml:162
+#: ee.xml:182
#, fuzzy, no-c-format
msgid ""
"In an embeddable EJB container, beans may be deployed in any location in "
Modified: doc/trunk/reference/zh-CN/environments.po
===================================================================
--- doc/trunk/reference/zh-CN/environments.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/environments.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -383,133 +383,270 @@
"available:"
msgstr ""
-#. Tag: literal
-#: environments.xml:215
+#. Tag: para
+#: environments.xml:214
#, no-c-format
-msgid "POJOs (no EJBs)"
+msgid ""
+"Managed beans with <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:220
#, no-c-format
-msgid "Typesafe Dependency Injection"
+msgid "Dependency injection with qualifiers and alternatives"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:225
#, no-c-format
-msgid "Application and Dependent Contexts"
+msgid ""
+"<literal>@Application</literal>, <literal>@Dependent</literal> and "
+"<literal>@Singleton</literal> scopes"
msgstr ""
-#. Tag: literal
-#: environments.xml:230
+#. Tag: para
+#: environments.xml:231
#, no-c-format
-msgid "Qualifiers"
+msgid "Interceptors and decorators"
msgstr ""
-#. Tag: literal
-#: environments.xml:235
+#. Tag: para
+#: environments.xml:236
#, no-c-format
msgid "Stereotypes"
msgstr ""
-#. Tag: literal
-#: environments.xml:240
+#. Tag: para
+#: environments.xml:241
#, no-c-format
-msgid "Typesafe Event Model"
+msgid "Events"
msgstr ""
-#. Tag: title
+#. Tag: para
#: environments.xml:246
#, no-c-format
+msgid "Portable extension support"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:252
+#, no-c-format
+msgid "EJB beans are not supported."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:257
+#, no-c-format
msgid "CDI SE Module"
msgstr ""
#. Tag: para
-#: environments.xml:248
+#: environments.xml:259
#, 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:"
+"automatically registering all simple beans found on the classpath. The "
+"command line parameters can be injected using either of the following:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:255
+#: environments.xml:264
#, no-c-format
+msgid "<![CDATA[@Inject @Parameters List<String> params;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:266
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters String[] paramsArray;]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:268
+#, no-c-format
+msgid "The second form is useful for compatibility with existing classes."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:273
+#, no-c-format
msgid ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with "
-"existing classes]]>"
+"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 ""
#. Tag: para
-#: environments.xml:257
+#: environments.xml:282
#, no-c-format
msgid "Here's an example of a simple CDI SE application:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:261
+#: environments.xml:286
#, no-c-format
msgid ""
-"<![CDATA[@ApplicationScoped\n"
+"<![CDATA[@Singleton\n"
"public class HelloWorld\n"
"{\n"
-" @Inject @Parameters List<String> parameters;\n"
-"\n"
-" public void printHello(@Observes ContainerInitialized event) {\n"
+" public void printHello(@Observes ContainerInitialized event, @Parameters "
+"List<String> parameters) {\n"
" System.out.println(\"Hello \" + parameters.get(0));\n"
" }\n"
"}]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:292
+#, no-c-format
+msgid "Bootstrapping CDI SE"
+msgstr ""
+
#. Tag: para
-#: environments.xml:263
+#: environments.xml:294
#, no-c-format
+msgid "CDI SE applications can be bootstrapped in the following ways."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:300
+#, no-c-format
+msgid "The ContainerInitialized Event"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:302
+#, no-c-format
msgid ""
-"CDI SE applications can be bootstrapped by running the StartMain class like "
-"so:"
+"Thanks to the power of CDI's typesafe event model, application developers "
+"need not write any bootstrapping code. The Weld SE module comes with a built-"
+"in main method which will bootstrap CDI for you and then fire a "
+"<literal>ContainerInitialized</literal> event. The entry point for your "
+"application code would therefore be a simple bean which observes the "
+"<literal>ContainerInitialized</literal> event, as in the previous example."
msgstr ""
+#. Tag: para
+#: environments.xml:310
+#, no-c-format
+msgid ""
+"In this case your application can be started by calling the provided main "
+"method like so:"
+msgstr ""
+
#. Tag: programlisting
-#: environments.xml:267
+#: environments.xml:313
#, no-c-format
msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:319
+#, no-c-format
+msgid "Programatic Bootstrap API"
+msgstr ""
+
#. Tag: para
-#: environments.xml:269
+#: environments.xml:321
#, 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:"
+"For added flexibility, CDI SE also comes with a bootstrap API which can be "
+"called from within your application in order to initialize CDI and obtain "
+"references to your application's beans and events. The API consists of two "
+"classes: <literal>Weld</literal> and <literal>WeldContainer</literal>."
msgstr ""
#. Tag: programlisting
-#: environments.xml:276
+#: environments.xml:327
#, no-c-format
msgid ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+"<![CDATA[public class Weld\n"
+"{\n"
+"\n"
+" /** Boots Weld and creates and returns a WeldContainer instance, through "
+"which\n"
+" * beans and events can be accesed. */\n"
+" public WeldContainer initialize() {...}\n"
+"\n"
+" /** Convenience method for shutting down the container. */\n"
+" public void shutdown() {...}\n"
+"\n"
"}]]>"
msgstr ""
+#. Tag: programlisting
+#: environments.xml:329
+#, no-c-format
+msgid ""
+"<![CDATA[public class WeldContainer\n"
+"{\n"
+"\n"
+" /** Provides access to all beans within the application. */\n"
+" public Instance<Object> instance() {...}\n"
+"\n"
+" /** Provides access to all events within the application. */\n"
+" public Event<Object> event() {...}\n"
+"\n"
+" /** Provides direct access to the BeanManager. */\n"
+" public BeanManager getBeanManager() {...}\n"
+"\n"
+"}]]>"
+msgstr ""
+
#. Tag: para
-#: environments.xml:279
+#: environments.xml:331
#, 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>."
+"Here's an example application main method which uses this API to initialize "
+"a bean of type <literal>MyApplicationBean</literal>."
msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.instance().select(MyApplicationBean.class).get();\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:336
+#, no-c-format
+msgid ""
+"Alternatively the application could be started by firing a custom event "
+"which would then be observed by another simple bean. The following example "
+"fires <literal>MyEvent</literal> on startup."
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.event().select(MyEvent.class).fire( new MyEvent() );\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: environments.xml:348
+#, no-c-format
+msgid "Setting the Classpath"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:350
+#, no-c-format
+msgid ""
+"Weld SE comes packaged as a 'shaded' jar which includes the CDI API, Weld "
+"Core and all dependant classes bundled into a single jar. Therefore the only "
+"Weld jar you need on the classpath, in addition to your application's "
+"classes and dependant jars, is the Weld SE jar."
+msgstr ""
Modified: doc/trunk/reference/zh-CN/example.po
===================================================================
--- doc/trunk/reference/zh-CN/example.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/example.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -25,13 +25,15 @@
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:"
+"request-scoped bean to hold the username and password entered during login, "
+"with constraints defined using annotations from the Bean Validation "
+"specification:"
msgstr ""
"让我们通过一个完整的例子来演示这些想法。我们将是使用JSF来实现一个应用的用户登"
"录/退出功能。首先,我们定一个Web Bean来持有登录过程中用户输入的用户名和密码:"
#. Tag: programlisting
-#: example.xml:11
+#: example.xml:12
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Named @RequestScoped\n"
@@ -39,9 +41,11 @@
" private String username;\n"
" private String password;\n"
" \n"
+" @NotNull @Length(min=3, max=25)\n"
" public String getUsername() { return username; }\n"
" public void setUsername(String username) { this.username = username; }\n"
" \n"
+" @NotNull @Length(min=6, max=20)\n"
" public String getPassword() { return password; }\n"
" public void setPassword(String password) { this.password = password; }\n"
"}]]>"
@@ -61,21 +65,23 @@
"}]]>"
#. Tag: para
-#: example.xml:13
+#: example.xml:14
#, 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
+#: example.xml:16
#, 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"
+" <f:validateBean>\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"
+" </f:validateBean>\n"
" </h:panelGrid>\n"
" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
"login.loggedIn}\"/>\n"
@@ -97,9 +103,52 @@
"</h:form>]]>"
#. Tag: para
-#: example.xml:17
+#: example.xml:18
+#, no-c-format
+msgid "Users are represented by a JPA entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:22
#, fuzzy, no-c-format
msgid ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+" private @NotNull @Length(min=3, max=25) @Id String username;\n"
+" private @NotNull @Length(min=6, max=20) String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" public String setPassword(String password) { this.password = password; }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class Credentials {\n"
+" \n"
+" private String username;\n"
+" private String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" \n"
+" public String getPassword() { return password; }\n"
+" public void setPassword(String password) { this.password = password; }\n"
+" \n"
+"}]]>"
+
+#. Tag: para
+#: example.xml:24
+#, no-c-format
+msgid ""
+"(Note that we're also going to need a <literal>persistence.xml</literal> "
+"file to configure the JPA persistence unit containing <literal>User</"
+"literal>.)"
+msgstr ""
+
+#. Tag: para
+#: example.xml:29
+#, 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:"
@@ -108,7 +157,7 @@
"户的信息,并且将<literal>User</literal>实体暴露给其他Web Bean:"
#. Tag: programlisting
-#: example.xml:22
+#: example.xml:34
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped @Named\n"
@@ -187,7 +236,7 @@
"}]]>"
#. Tag: para
-#: example.xml:24
+#: example.xml:36
#, no-c-format
msgid ""
"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
@@ -195,7 +244,7 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:26
+#: example.xml:38
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -209,7 +258,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: programlisting
-#: example.xml:28
+#: example.xml:40
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -223,7 +272,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: para
-#: example.xml:30
+#: example.xml:42
#, no-c-format
msgid ""
"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
@@ -231,16 +280,17 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:34
+#: example.xml:46
#, no-c-format
msgid ""
-"<![CDATA[public class UserDatabaseProducer {\n"
-" @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"<![CDATA[class UserDatabaseProducer {\n"
+" @Produces @UserDatabase @PersistenceContext \n"
+" static EntityManager userDatabase;\n"
"}]]>"
msgstr ""
#. Tag: para
-#: example.xml:36
+#: example.xml:48
#, fuzzy, no-c-format
msgid ""
"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
@@ -248,7 +298,7 @@
msgstr "现在,任何其他的Web Bean可以轻松地将当前用户注入:"
#. Tag: programlisting
-#: example.xml:38
+#: example.xml:50
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class DocumentEditor {\n"
@@ -276,13 +326,13 @@
"}]]>"
#. Tag: para
-#: example.xml:40
+#: example.xml:52
#, no-c-format
msgid "Or we can reference the current user in a JSF view:"
msgstr ""
#. Tag: programlisting
-#: example.xml:42
+#: example.xml:54
#, no-c-format
msgid ""
"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
@@ -291,7 +341,7 @@
msgstr ""
#. Tag: para
-#: example.xml:44
+#: example.xml:56
#, fuzzy, no-c-format
msgid ""
"Hopefully, this example gave you a taste of the CDI programming model. In "
Modified: doc/trunk/reference/zh-CN/extend.po
===================================================================
--- doc/trunk/reference/zh-CN/extend.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/extend.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -92,52 +92,228 @@
"some other source"
msgstr ""
+#. Tag: title
+#: extend.xml:58
+#, fuzzy, no-c-format
+msgid "Creating an <literal>Extension</literal>"
+msgstr " <literal>Bean</literal> 类"
+
#. Tag: para
-#: extend.xml:57
+#: extend.xml:60
+#, no-c-format
+msgid ""
+"The first step in creating a portable extension is to write a class that "
+"implements <literal>Extension</literal>. This marker interface does not "
+"define any methods, but it's needed to satisfy the requirements of Java SE's "
+"service provider architecture."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:66
+#, no-c-format
+msgid "class MyExtension implements Extension { ... }"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:68
+#, no-c-format
+msgid ""
+"Next, we need to register our extension as a service provider by creating a "
+"file named <literal>META-INF/services/javax.enterprise.inject.spi.Extension</"
+"literal>, which contains the name of our extension class:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:74
+#, no-c-format
+msgid "org.mydomain.extension.MyExtension"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:76
+#, no-c-format
+msgid ""
+"An extension is not a bean, exactly, since it is instantiated by the "
+"container during the initialization process, before any beans or contexts "
+"exist. However, it can be injected into other beans once the initialization "
+"process is complete."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:82
+#, no-c-format
+msgid ""
+"@Inject \n"
+"MyBean(MyExtension myExtension) {\n"
+" myExtension.doSomething();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:84
+#, no-c-format
+msgid ""
+"And, like beans, extensions can have observer methods. Usually, the observer "
+"methods observe <emphasis>container lifecycle events</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:92
+#, no-c-format
+msgid "Container lifecycle events"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:94
+#, no-c-format
+msgid ""
+"During the initialization process, the container fires a series of events, "
+"including:"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:101
+#, no-c-format
+msgid "BeforeBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:106
+#, no-c-format
+msgid "ProcessAnnotatedType"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:110
+#, no-c-format
+msgid ""
+"<literal>ProcessInjectionTarget</literal> and <literal>ProcessProducer</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:115
+#, no-c-format
+msgid ""
+"<literal>ProcessBean</literal> and <literal>ProcessObserverMethod</literal>"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:121
+#, no-c-format
+msgid "AfterBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:126
+#, no-c-format
+msgid "AfterDeploymentValidation"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:131
+#, no-c-format
+msgid "Extensions may observe these events:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {\n"
+" Logger.global.debug(\"beginning the scanning process\");\n"
+" }\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" Logger.global.debug(\"scanning type: \" + pat.getAnnotatedType()."
+"getJavaClass().getName());\n"
+" } \n"
+"\n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {\n"
+" Logger.global.debug(\"finished the scanning process\");\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:137
+#, no-c-format
+msgid ""
+"In fact, the extension can do a lot more than just observe. The extension is "
+"permitted to modify the container's metamodel and more. Here's a very simple "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" //tell the container to ignore the type if it is annotated @Ignore\n"
+" if ( pat.getAnnotatedType().isAnnotionPresent(Ignore.class) ) pat.veto"
+"(); \n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:144
#, fuzzy, no-c-format
-msgid ""
-"The nerve center for extending CDI is the <literal>BeanManager</literal> "
-"object."
+msgid "The observer method may inject a <literal>BeanManager</literal>"
msgstr "扩展Web Bean的神经中枢是 <literal>Manager</literal> 对象。"
+#. Tag: programlisting
+#: extend.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> "
+"pat, BeanManager beanManager) { ... }]]>"
+msgstr ""
+
#. Tag: title
-#: extend.xml:62
+#: extend.xml:153
#, fuzzy, no-c-format
msgid "The <literal>BeanManager</literal> object"
msgstr " <literal>Manager</literal> 对象"
#. Tag: para
-#: extend.xml:64
+#: extend.xml:155
#, fuzzy, no-c-format
msgid ""
-"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object. 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:69
+#: extend.xml:161
#, no-c-format
msgid ""
-"<![CDATA[public interface Manager {\n"
+"<![CDATA[public interface BeanManager {\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(Type beanType, Annotation... qualifiers);\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"
-" public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
-"Annotation... bindings);\n"
+" public void fireEvent(Object event, Annotation... qualifiers);\n"
+" public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, "
+"Annotation... qualifiers);\n"
" public List<Decorator<?>> resolveDecorators(Set<Type> types, "
-"Annotation... bindings);\n"
+"Annotation... qualifiers);\n"
" public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
"Annotation... interceptorBindings);\n"
" public boolean isScope(Class<? extends Annotation> annotationType);\n"
@@ -146,11 +322,11 @@
" public boolean isPassivatingScope(Class<? extends Annotation> "
"annotationType);\n"
" public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
-" public boolean isInterceptorBindingType(Class<? extends Annotation> "
+" public boolean isInterceptorBinding(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> getInterceptorBindingDefinition(Class<? extends "
+"Annotation> bindingType);\n"
" public Set<Annotation> getStereotypeDefinition(Class<? extends "
"Annotation> stereotype);\n"
" public Context getContext(Class<? extends Annotation> scopeType);\n"
@@ -164,20 +340,21 @@
msgstr ""
#. Tag: para
-#: extend.xml:71
+#: extend.xml:163
#, fuzzy, no-c-format
msgid ""
-"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+"Any bean or other Java EE component which supports injection can obtain an "
+"instance of <literal>BeanManager</literal> via injection:"
msgstr "我们可以通过注入来获得一个 <literal>Manager</literal> 实例:"
#. Tag: programlisting
-#: extend.xml:73
+#: extend.xml:166
#, fuzzy, no-c-format
-msgid "@Inject BeanManager beanManager"
+msgid "@Inject BeanManager beanManager;"
msgstr "@Current Manager manager"
#. Tag: para
-#: extend.xml:75
+#: extend.xml:168
#, no-c-format
msgid ""
"Java EE components may obtain an instance of <literal>BeanManager</literal> "
@@ -187,7 +364,7 @@
msgstr ""
#. Tag: para
-#: extend.xml:81
+#: extend.xml:174
#, fuzzy, no-c-format
msgid ""
"Let's study some of the interfaces exposed by the <literal>BeanManager</"
@@ -195,24 +372,98 @@
msgstr "扩展Web Bean的神经中枢是 <literal>Manager</literal> 对象。"
#. Tag: title
-#: extend.xml:86
+#: extend.xml:179
#, fuzzy, no-c-format
+msgid "The <literal>InjectionTarget</literal> interface"
+msgstr " <literal>Context</literal> 接口"
+
+#. Tag: para
+#: extend.xml:181
+#, no-c-format
+msgid ""
+"The first thing that a framework developer is going to look for in the "
+"portable extension SPI is a way to inject CDI beans into objects which are "
+"not under the control of CDI. The <literal>InjectionTarget</literal> "
+"interface makes this very easy."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:188
+#, no-c-format
+msgid ""
+"We recommend that frameworks let CDI take over the job of actually "
+"instantiating the framework-controlled objects. That way, the framework-"
+"controlled objects can take advantage of constructor injection. However, if "
+"the framework requires use of a constructor with a special signature, the "
+"framework will need to instatiate the object itself, and so only method and "
+"field injection will be supported."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[//get the BeanManager from JNDI\n"
+"BeanManager beanManager = (BeanManager) new InitialContext().lookup(\"java:"
+"comp/BeanManager\");\n"
+"\n"
+"//CDI uses an AnnotatedType object to read the annotations of a class\n"
+"AnnotatedType<SomeFrameworkComponent> type = beanManager.createAnnotatedType"
+"(SomeFrameworkComponent.class);\n"
+"\n"
+"//The extension uses an InjectionTarget to delegate instantiation, "
+"dependency injection \n"
+"//and lifecycle callbacks to the CDI container\n"
+"InjectionTarget<SomeFrameworkComponent> it = beanManager."
+"createInjectionTarget(type);\n"
+"\n"
+"//each instance needs its own CDI CreationalContext\n"
+"CreationalContext ctx = beanManager.createCreationalContext(null);\n"
+"\n"
+"//instantiate the framework component and inject its dependencies\n"
+"SomeFrameworkComponent instance = it.produce(ctx); //call the constructor\n"
+"it.inject(instance, ctx); //call initializer methods and perform field "
+"injection\n"
+"it.postConstruct(instance); //call the @PostConstruct method\n"
+"\n"
+"...\n"
+"\n"
+"//destroy the framework component instance and clean up dependent objects\n"
+"it.preDestroy(instance); //call the @PreDestroy method\n"
+"it.dispose(instance); //it is now safe to discard the instance\n"
+"ctx.release(); //clean up dependent objects\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:201
+#, fuzzy, no-c-format
msgid "The <literal>Bean</literal> interface"
msgstr " <literal>Context</literal> 接口"
#. Tag: para
-#: extend.xml:88
+#: extend.xml:203
#, 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."
+"<literal>BeanManager</literal> object for every bean in the application. "
+"There are even <literal>Bean</literal> objects representing interceptors, "
+"decorators and producer methods."
msgstr ""
"抽象类 <literal>Bean</literal> 的实例代表Web Bean。应用中的每个Web Bean都有一"
"个在 <literal>Manager</literal> 注册的 <literal>Bean</literal> 实例。"
+#. Tag: para
+#: extend.xml:210
+#, no-c-format
+msgid ""
+"The <literal>Bean</literal> interface exposes all the interesting things we "
+"dicussed in <xref linkend=\"bean-anatomy\"/>."
+msgstr ""
+
#. Tag: programlisting
-#: extend.xml:94
+#: extend.xml:215
#, no-c-format
msgid ""
"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
@@ -229,41 +480,508 @@
msgstr ""
#. Tag: para
-#: extend.xml:96
+#: extend.xml:217
+#, no-c-format
+msgid "There's an easy way to find out what beans exist in the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[Set<Bean<?>> allBeans = beanManager.getBeans(Obect.class, new "
+"AnnotationLiteral<Any>() {});]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:223
#, 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."
+"The <literal>Bean</literal> interface makes it possible for a portable "
+"extension 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: title
+#: extend.xml:233
+#, fuzzy, no-c-format
+msgid "Registering a <literal>Bean</literal>"
+msgstr " <literal>Bean</literal> 类"
+
#. Tag: para
-#: extend.xml:104
-#, fuzzy, no-c-format
+#: extend.xml:235
+#, no-c-format
msgid ""
-"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
-"specification: <literal>Interceptor</literal> and <literal>Decorator</"
-"literal>."
+"The most common kind of CDI portable extension registers a bean (or beans) "
+"with the container."
msgstr ""
-"Web Bean规范定义了两种 <literal>Bean</literal> 的子类:<literal>拦截器</"
-"literal> 和 <literal>装饰器</literal>。"
+#. Tag: para
+#: extend.xml:239
+#, no-c-format
+msgid ""
+"In this example, we make a framework class, <literal>SecurityManager</"
+"literal> available for injection. To make things a bit more interesting, "
+"we're going to delegate back to the container's <literal>InjectionTarget</"
+"literal> to perform instantiation and injection upon the "
+"<literal>SecurityManager</literal> instance."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:246
+#, no-c-format
+msgid ""
+"<![CDATA[public class SecurityManagerExtension implements Extension {\n"
+" \n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager "
+"bm) {\n"
+" \n"
+" //use this to read annotations of the class\n"
+" AnnotatedType<SecurityManager> at = bm.createAnnotatedType"
+"(SecurityManager.class); \n"
+"\n"
+" //use this to instantiate the class and inject dependencies\n"
+" final InjectionTarget<SecurityManager> it = bm.createInjectionTarget"
+"(at); \n"
+"\n"
+" abd.addBean( new Bean<SecurityManager>() {\n"
+"\n"
+" @Override\n"
+" public Class<?> getBeanClass() {\n"
+" return SecurityManager.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public String getName() {\n"
+" return \"securityManager\";\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getQualifiers() {\n"
+" Set<Annotation> qualifiers = new HashSet<Annotation>();\n"
+" qualifiers.add( new AnnotationLiteral<Default>() {} );\n"
+" qualifiers.add( new AnnotationLiteral<Any>() {} );\n"
+" return qualifiers;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<? extends Annotation> getScope() {\n"
+" return SessionScoped.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Class<? extends Annotation>> getStereotypes() {\n"
+" return Collections.emptySet();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypes() {\n"
+" Set<Type> types = new HashSet<Type>();\n"
+" types.add(SecurityManager.class);\n"
+" types.add(Object.class);\n"
+" return types;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAlternative() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isNullable() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public SecurityManager create(CreationalContext<SecurityManager> "
+"ctx) {\n"
+" SecurityManager instance = it.produce(ctx);\n"
+" it.inject(instance, ctx);\n"
+" it.postConstruct(instance);\n"
+" return instance;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void destroy(SecurityManager instance, \n"
+" CreationalContext<SecurityManager> ctx) {\n"
+" it.preDestroy(instance);\n"
+" it.dispose(instance);\n"
+" ctx.release();\n"
+" }\n"
+" \n"
+" } );\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:248
+#, no-c-format
+msgid ""
+"But a portable extension can also mess with beans that are discovered "
+"automatically by the container."
+msgstr ""
+
#. Tag: title
-#: extend.xml:112
+#: extend.xml:255
#, no-c-format
+msgid "Wrapping an <literal>AnnotatedType</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:257
+#, no-c-format
+msgid ""
+"One of the most interesting things that an extension class can do is process "
+"the annotations of a bean class <emphasis>before</emphasis> the container "
+"builds its metamodel."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:262
+#, no-c-format
+msgid ""
+"Let's start with an example of an extension that provides support for the "
+"use of <literal>@Named</literal> at the package level. The package-level "
+"name is used to qualify the EL names of all beans defined in that package. "
+"The portable extension uses the <literal>ProcessAnnotatedType</literal> "
+"event to wrap the <literal>AnnotatedType</literal> object and override the "
+"<literal>value()</literal> of the <literal>@Named</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[public class QualifiedNameExtension implements Extension {\n"
+"\n"
+" <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) {\n"
+"\n"
+" //wrap this to override the annotations of the class\n"
+" final AnnotatedType<X> at = pat.getAnnotatedType();\n"
+" \n"
+" AnnotatedType<X> wrapped = new AnnotatedType<X>() {\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedConstructor<X>> getConstructors() {\n"
+" return at.getConstructors();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedField<? super X>> getFields() {\n"
+" return at.getFields();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<X> getJavaClass() {\n"
+" return at.getJavaClass();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedMethod<? super X>> getMethods() {\n"
+" return at.getMethods();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public <T extends Annotation> T getAnnotation(final Class<T> "
+"annType) {\n"
+" if ( Named.class.equals(annType) ) {\n"
+" class NamedLiteral \n"
+" extends AnnotationLiteral<Named> \n"
+" implements Named {\n"
+" @Override\n"
+" public String value() {\n"
+" Package pkg = at.getClass().getPackage();\n"
+" String unqualifiedName = at.getAnnotation(Named."
+"class).value();\n"
+" final String qualifiedName;\n"
+" if ( pkg.isAnnotationPresent(Named.class) ) {\n"
+" qualifiedName = pkg.getAnnotation(Named."
+"class).value() \n"
+" + '.' + unqualifiedName;\n"
+" }\n"
+" else {\n"
+" qualifiedName = unqualifiedName;\n"
+" }\n"
+" return qualifiedName;\n"
+" }\n"
+" }\n"
+" return (T) new NamedLiteral();\n"
+" }\n"
+" else {\n"
+" return at.getAnnotation(annType);\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getAnnotations() {\n"
+" return at.getAnnotations();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Type getBaseType() {\n"
+" return at.getBaseType();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypeClosure() {\n"
+" return at.getTypeClosure();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annType) {\n"
+" return at.isAnnotationPresent(annType);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:272
+#, no-c-format
+msgid ""
+"Here's a second example, which adds the <literal>@Alternative</literal> "
+"annotation to any class which implements a certain <literal>Service</"
+"literal> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[class ServiceAlternativeExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" \n"
+" final AnnotatedType<T> type = pat.getAnnotatedType();\n"
+" \n"
+" if ( Service.class.isAssignableFrom( type.getJavaClass() ) ) {\n"
+" \n"
+" //if the class implements Service, make it an @Alternative\n"
+" AnnotatedType<T> wrapped = new AnnotatedType<T>() {\n"
+" \n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annotationType) {\n"
+" return annotationType.equals(Alternative.class) ? \n"
+" true : type.isAnnotationPresent(annotationType);\n"
+" }\n"
+" \n"
+" //remaining methods of AnnotatedType\n"
+" ...\n"
+" }\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:283
+#, no-c-format
+msgid ""
+"The <literal>AnnotatedType</literal> is not the only thing that can be "
+"wrapped by an extension."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:288
+#, no-c-format
+msgid "Wrapping an <literal>InjectionTarget</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:290
+#, no-c-format
+msgid ""
+"The <literal>InjectionTarget</literal> interface exposes operations for "
+"producing and disposing an instance of a component, injecting its "
+"dependencies and invoking its lifecycle callbacks. A portable extension may "
+"wrap the <literal>InjectionTarget</literal> for any Java EE component that "
+"supports injection, allowing it to intercept any of these operations when "
+"they are invoked by the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:297
+#, no-c-format
+msgid ""
+"Here's a CDI portable extension that reads values from properties files and "
+"configures fields of Java EE components, including servlets, EJBs, managed "
+"beans, interceptors and more. In this example, properties for a class such "
+"as <literal>org.mydomain.blog.Blogger</literal> go in a resource named "
+"<literal>org/mydomain/blog/Blogger.properties</literal>, and the name of a "
+"property must match the name of the field to be configured. So "
+"<literal>Blogger.properties</literal> could contain:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:305
+#, no-c-format
+msgid ""
+"firstName=Gavin\n"
+"lastName=King"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:307
+#, no-c-format
+msgid ""
+"The portable extension works by wrapping the containers "
+"<literal>InjectionTarget</literal> and setting field values from the "
+"<literal>inject()</literal> method."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:310
+#, no-c-format
+msgid ""
+"<![CDATA[public class ConfigExtension implements Extension {\n"
+"\n"
+" <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> "
+"pit) {\n"
+" \n"
+" //wrap this to intercept the component lifecycle\n"
+" final InjectionTarget<X> it = pit.getInjectionTarget();\n"
+" \n"
+" final Map<Field, Object> configuredValues = new HashMap<Field, "
+"Object>();\n"
+" \n"
+" //use this to read annotations of the class and its members\n"
+" AnnotatedType<X> at = pit.getAnnotatedType();\n"
+" \n"
+" //read the properties file\n"
+" String propsFileName = at.getClass().getSimpleName() + \".properties"
+"\";\n"
+" InputStream stream = at.getJavaClass().getResourceAsStream"
+"(propsFileName);\n"
+" if (stream!=null) {\n"
+" \n"
+" try {\n"
+" Properties props = new Properties();\n"
+" props.load(stream);\n"
+" for (Map.Entry<Object, Object> property : props.entrySet()) "
+"{\n"
+" String fieldName = property.getKey().toString();\n"
+" Object value = property.getValue();\n"
+" try {\n"
+" Field field = at.getJavaClass().getField"
+"(fieldName);\n"
+" field.setAccessible(true);\n"
+" if ( field.getType().isAssignableFrom( value.getClass"
+"() ) ) {\n"
+" configuredValues.put(field, value);\n"
+" }\n"
+" else {\n"
+" //TODO: do type conversion automatically\n"
+" pit.addDefinitionError( new InjectionException(\n"
+" \"field is not of type String: \" + "
+"field ) );\n"
+" }\n"
+" }\n"
+" catch (NoSuchFieldException nsfe) {\n"
+" pit.addDefinitionError(nsfe);\n"
+" }\n"
+" finally {\n"
+" stream.close();\n"
+" }\n"
+" }\n"
+" }\n"
+" catch (IOException ioe) {\n"
+" pit.addDefinitionError(ioe);\n"
+" }\n"
+" }\n"
+" \n"
+" InjectionTarget<X> wrapped = new InjectionTarget<X>() {\n"
+"\n"
+" @Override\n"
+" public void inject(X instance, CreationalContext<X> ctx) {\n"
+" it.inject(instance, ctx);\n"
+" \n"
+" //set the values onto the new instance of the component\n"
+" for (Map.Entry<Field, Object> configuredValue: "
+"configuredValues.entrySet()) {\n"
+" try {\n"
+" configuredValue.getKey().set(instance, "
+"configuredValue.getValue());\n"
+" }\n"
+" catch (Exception e) {\n"
+" throw new InjectionException(e);\n"
+" }\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void postConstruct(X instance) {\n"
+" it.postConstruct(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void preDestroy(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void dispose(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public X produce(CreationalContext<X> ctx) {\n"
+" return it.produce(ctx);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pit.setInjectionTarget(wrapped);\n"
+" \n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:312
+#, no-c-format
+msgid ""
+"There's a lot more to the portable extension SPI than what we've discussed "
+"here. Check out the CDI spec or Javadoc for more information. For now, we'll "
+"just mention one more extension point."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:320
+#, no-c-format
msgid "The <literal>Context</literal> interface"
msgstr " <literal>Context</literal> 接口"
#. Tag: para
-#: extend.xml:114
+#: extend.xml:322
#, fuzzy, no-c-format
msgid ""
"The <literal>Context</literal> interface supports addition of new scopes to "
@@ -273,7 +991,7 @@
"中扩展内置的范围。"
#. Tag: programlisting
-#: extend.xml:119
+#: extend.xml:327
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface Context {\n"
@@ -295,7 +1013,7 @@
"}"
#. Tag: para
-#: extend.xml:121
+#: extend.xml:329
#, fuzzy, no-c-format
msgid ""
"For example, we might implement <literal>Context</literal> to add a business "
@@ -305,6 +1023,15 @@
"例如,我们可以实现 <literal>Context</literal> ,向Web Bean添加一个业务流程范"
"围,或者向使用Wicket框架的应用添加对对话的支持。"
+#, fuzzy
+#~ 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>。"
+
#~ msgid "Extending Web Beans"
#~ msgstr "扩展Web Bean"
@@ -427,9 +1154,6 @@
#~ "\n"
#~ "}]]>"
-#~ msgid "The <literal>Bean</literal> class"
-#~ msgstr " <literal>Bean</literal> 类"
-
#~ msgid ""
#~ "public abstract class Bean<T> {\n"
#~ " \n"
Modified: doc/trunk/reference/zh-CN/extensions.po
===================================================================
--- doc/trunk/reference/zh-CN/extensions.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/extensions.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -37,61 +37,51 @@
#, 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."
+"of a logger object into any CDI bean. Simply create an injection point of "
+"type <literal>org.slf4j.Logger</literal> and an appropriate logger object "
+"will be injected into any instance of the bean."
msgstr ""
#. Tag: programlisting
-#: extensions.xml:26
+#: extensions.xml:25
#, no-c-format
msgid ""
-"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
-"import org.jboss.weld.log.Log;\n"
+"<![CDATA[import org.slf4j.Logger;\n"
+"import javax.inject.Inject;\n"
"\n"
"public class Checkout {\n"
-" private @Inject @Logger Log log;\n"
+" private @Inject Logger log;\n"
"\n"
" public void invoiceItems() {\n"
" ShoppingCart cart;\n"
" ...\n"
-" log.debug(\"Items invoiced for {0}\", cart);\n"
+" log.debug(\"Items invoiced for {}\", cart);\n"
" }\n"
"}]]>"
msgstr ""
#. Tag: para
-#: extensions.xml:28
+#: 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 "
-"<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."
+"The example shows how objects can be interpolated into a message. If you use "
+"this approach, you do not need to surround a call to the logger with a "
+"condition like <literal>if ( log.isDebugEnabled() )</literal> to avoid "
+"string concatenation."
msgstr ""
#. Tag: para
-#: extensions.xml:41
+#: extensions.xml:34
#, 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 "
+"You can add Weld logging 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:46
+#: extensions.xml:39
#, no-c-format
msgid ""
"If you are using Weld as your JSR-299 implementation, there's no need to "
Modified: doc/trunk/reference/zh-CN/injection.po
===================================================================
--- doc/trunk/reference/zh-CN/injection.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/injection.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -535,12 +535,55 @@
#. Tag: title
#: injection.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"The built-in qualifiers <literal>@Default</literal> and <literal>@Any</"
+"literal>"
+msgstr ""
+"简单的Web Bean只支持 <literal>@PostConstruct</literal> 和 "
+"<literal>@PreDestroy</literal> 回调。"
+
+#. Tag: para
+#: injection.xml:218
#, no-c-format
+msgid ""
+"Whenever a bean or injection point does not explicitly declare a qualifier, "
+"the container assumes the qualifier <literal>@Default</literal>. From time "
+"to time, you'll need to decare an injection point without specifying a "
+"qualifier. There's a qualifier for that too. All beans have the qualifier "
+"<literal>@Any</literal>. Therefore, by explicitly specifying <literal>@Any</"
+"literal> at an injection point, you suppress the default qualifier, without "
+"otherwise restricting the beans that are eligible for injection."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:225
+#, no-c-format
+msgid ""
+"This is especially useful if you want to iterate over all beans with a "
+"certain bean type. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:226
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject \n"
+"void initServices(@Any Instance<Service> services) { \n"
+" for (Service service: services) {\n"
+" service.init();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: injection.xml:232
+#, no-c-format
msgid "Qualifiers with members"
msgstr ""
#. Tag: para
-#: injection.xml:218
+#: injection.xml:234
#, no-c-format
msgid ""
"Java annotations can have members. We can use annotation members to further "
@@ -551,7 +594,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:224
+#: injection.xml:240
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -569,14 +612,14 @@
"}]]>"
#. Tag: para
-#: injection.xml:226
+#: injection.xml:242
#, no-c-format
msgid ""
"Then we select one of the possible member values when appling the qualifier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:230
+#: injection.xml:246
#, fuzzy, no-c-format
msgid ""
"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
@@ -584,17 +627,17 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:232
+#: injection.xml:248
#, 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>."
+"annotating the member <literal>@Nonbinding</literal>."
msgstr ""
"你可以告诉Web Bean管理器忽略一个绑定注释的成员,只需在这个成员上使用 "
"<literal>@NonBinding</literal> 注释。"
#. Tag: programlisting
-#: injection.xml:237
+#: injection.xml:253
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -602,7 +645,7 @@
"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
"public @interface PayBy {\n"
" PaymentMethod value();\n"
-" @NonBinding String comment() default \"\";\n"
+" @Nonbinding String comment() default \"\";\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -613,19 +656,19 @@
"}]]>"
#. Tag: title
-#: injection.xml:242
+#: injection.xml:258
#, no-c-format
msgid "Multiple qualifiers"
msgstr ""
#. Tag: para
-#: injection.xml:244
+#: injection.xml:260
#, fuzzy, no-c-format
msgid "An injection point may specify multiple qualifiers:"
msgstr "一个注入点甚至可以指定多个绑定注释:"
#. Tag: programlisting
-#: injection.xml:248
+#: injection.xml:264
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
@@ -634,7 +677,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:250
+#: injection.xml:266
#, fuzzy, no-c-format
msgid ""
"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
@@ -644,7 +687,7 @@
"入。"
#. Tag: programlisting
-#: injection.xml:255
+#: injection.xml:271
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Synchronous @Reliable\n"
@@ -659,13 +702,13 @@
"}]]>"
#. Tag: title
-#: injection.xml:260
+#: injection.xml:276
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: injection.xml:262
+#: injection.xml:278
#, no-c-format
msgid ""
"Alternatives are beans whose implementation is specific to a particular "
@@ -675,7 +718,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:266
+#: injection.xml:282
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
@@ -689,7 +732,7 @@
"}]]>"
#. Tag: para
-#: injection.xml:268
+#: injection.xml:284
#, no-c-format
msgid ""
"By default, <literal>@Alternative</literal> beans are disabled. We need to "
@@ -699,7 +742,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:274
+#: injection.xml:290
#, no-c-format
msgid ""
"<![CDATA[<beans\n"
@@ -715,7 +758,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:276
+#: injection.xml:292
#, no-c-format
msgid ""
"When an ambiguous dependency exists at an injection point, the container "
@@ -725,13 +768,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:285
+#: injection.xml:301
#, fuzzy, no-c-format
msgid "Fixing unsatisfied and ambiguous dependencies"
msgstr "修正没有满足条件的依赖"
#. Tag: para
-#: injection.xml:287
+#: injection.xml:303
#, fuzzy, no-c-format
msgid ""
"The typesafe resolution algorithm fails when, after considering the "
@@ -745,7 +788,7 @@
"法失败,那么Web Bean管理器无法识别究竟应该注入哪个Web Bean。"
#. Tag: para
-#: injection.xml:294
+#: injection.xml:310
#, no-c-format
msgid ""
"During the course of your development, you're going to encounter this "
@@ -753,13 +796,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:298
+#: injection.xml:314
#, no-c-format
msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:304
+#: injection.xml:320
#, no-c-format
msgid ""
"create a bean which implements the bean type and has all the qualifier types "
@@ -767,7 +810,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:309
+#: injection.xml:325
#, no-c-format
msgid ""
"make sure that the bean you already have is in the classpath of the module "
@@ -775,7 +818,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:314
+#: injection.xml:330
#, no-c-format
msgid ""
"explicitly enable an <literal>@Alternative</literal> bean that implements "
@@ -784,13 +827,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:321
+#: injection.xml:337
#, no-c-format
msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:327
+#: injection.xml:343
#, no-c-format
msgid ""
"introduce a qualifier to distinguish between the two implementations of the "
@@ -798,14 +841,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:332
+#: injection.xml:348
#, no-c-format
msgid ""
"disable one of the beans by annotating it <literal>@Alternative</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:337
+#: injection.xml:353
#, no-c-format
msgid ""
"move one of the implementations to a module that is not in the classpath of "
@@ -813,7 +856,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:343
+#: injection.xml:359
#, no-c-format
msgid ""
"disable one of two <literal>@Alternative</literal> beans that are trying to "
@@ -821,10 +864,10 @@
msgstr ""
#. Tag: para
-#: injection.xml:350
+#: injection.xml:366
#, no-c-format
msgid ""
-"See <ulink src=\"http://sfwk.org/Documentation/"
+"See <ulink url=\"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 "
@@ -832,13 +875,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:358
+#: injection.xml:374
#, no-c-format
msgid "Just remember: \"There can be only one.\""
msgstr ""
#. Tag: para
-#: injection.xml:361
+#: injection.xml:377
#, no-c-format
msgid ""
"On the other hand, if you really do have an optional or multivalued "
@@ -847,7 +890,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:366
+#: injection.xml:382
#, fuzzy, no-c-format
msgid ""
"Now there's one more issue you need to be aware of when using the dependency "
@@ -855,13 +898,13 @@
msgstr "使用Web Bean依赖注入的时候还需要注意一个问题。"
#. Tag: title
-#: injection.xml:373
+#: injection.xml:389
#, no-c-format
msgid "Client proxies"
msgstr "客户代理"
#. Tag: para
-#: injection.xml:375
+#: injection.xml:391
#, fuzzy, no-c-format
msgid ""
"Clients of an injected bean do not usually hold a direct reference to a bean "
@@ -870,7 +913,7 @@
msgstr "注入的Web Bean的客户通常不会直接拥有这个Web bean实例的引用。"
#. Tag: para
-#: injection.xml:380
+#: injection.xml:396
#, fuzzy, no-c-format
msgid ""
"Imagine that a bean bound to the application scope held a direct reference "
@@ -883,7 +926,7 @@
"范围的Web Bean实例!"
#. Tag: para
-#: injection.xml:386
+#: injection.xml:402
#, fuzzy, no-c-format
msgid ""
"Now imagine that a bean bound to the session scope holds a direct reference "
@@ -898,7 +941,7 @@
"和会话范围的Web Bean一起被序列化!"
#. Tag: para
-#: injection.xml:393
+#: injection.xml:409
#, fuzzy, no-c-format
msgid ""
"Therefore, unless a bean has the default scope <literal>@Dependent</"
@@ -917,7 +960,7 @@
"归地序列化注入到这个Web Bean中的其他的Web Bean。"
#. Tag: para
-#: injection.xml:401
+#: injection.xml:417
#, fuzzy, no-c-format
msgid ""
"Unfortunately, due to limitations of the Java language, some Java types "
@@ -931,20 +974,20 @@
"<literal>UnproxyableDependencyException</literal> 异常。"
#. Tag: para
-#: injection.xml:407
+#: injection.xml:423
#, fuzzy, no-c-format
msgid "The following Java types cannot be proxied by the container:"
msgstr "下面的Java类型无法被Web Bean管理器代理:"
#. Tag: para
-#: injection.xml:411
+#: injection.xml:427
#, fuzzy, no-c-format
msgid ""
"classes which don't have a non-private constructor with no parameters, and"
msgstr "没有无参非私有构造器的类,以及"
#. Tag: para
-#: injection.xml:414
+#: injection.xml:430
#, no-c-format
msgid ""
"classes which are declared <literal>final</literal> or have a "
@@ -954,26 +997,52 @@
"类,"
#. Tag: para
-#: injection.xml:419
+#: injection.xml:435
#, no-c-format
msgid "arrays and primitive types."
msgstr "数组和原始类型。"
#. Tag: para
-#: injection.xml:423
-#, fuzzy, no-c-format
+#: injection.xml:439
+#, 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 "
+"It's usually very easy to fix an unproxyable dependency problem. If an "
+"injection point of type <literal>X</literal> results in an unproxyable "
+"dependency, simply:"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:446
+#, no-c-format
+msgid "add a constructor with no parameters to <literal>X</literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:451
+#, no-c-format
+msgid ""
+"change the type of the injection point to <literal>Instance<X></"
+"literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:456
+#, no-c-format
+msgid ""
+"introduce an interface <literal>Y</literal>, implemented by the injected "
+"bean, and change the type of the injection point to <literal>Y</literal>, or"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:462
+#, no-c-format
+msgid ""
+"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:430
+#: injection.xml:469
#, no-c-format
msgid ""
"A future release of Weld will likely support a non-standard workaround for "
@@ -981,7 +1050,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:437
+#: injection.xml:476
#, no-c-format
msgid ""
"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
@@ -989,7 +1058,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:442
+#: injection.xml:481
#, no-c-format
msgid ""
"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
@@ -997,19 +1066,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:448
+#: injection.xml:487
#, no-c-format
msgid "But we didn't get around to implementing this yet."
msgstr ""
#. Tag: title
-#: injection.xml:457
+#: injection.xml:496
#, fuzzy, no-c-format
msgid "Obtaining a contextual instance by programmatic lookup"
msgstr "通过编程查找获得一个Web Bean"
#. Tag: para
-#: injection.xml:459
+#: injection.xml:498
#, no-c-format
msgid ""
"In certain situations, injection is not the most convenient way to obtain a "
@@ -1017,13 +1086,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:466
+#: injection.xml:505
#, no-c-format
msgid "the bean type or qualifiers vary dynamically at runtime, or"
msgstr ""
#. Tag: para
-#: injection.xml:471
+#: injection.xml:510
#, no-c-format
msgid ""
"depending upon the deployment, there may be no bean which satisfies the type "
@@ -1031,13 +1100,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:476
+#: injection.xml:515
#, no-c-format
msgid "we would like to iterate over all beans of a certain type."
msgstr ""
#. Tag: para
-#: injection.xml:482
+#: injection.xml:521
#, fuzzy, no-c-format
msgid ""
"In these situations, the application may obtain an instance of the interface "
@@ -1045,13 +1114,13 @@
msgstr "应用可以通过注入获得一个 <literal>Manager</literal> 接口实例:"
#. Tag: programlisting
-#: injection.xml:487
+#: injection.xml:526
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:489
+#: injection.xml:528
#, fuzzy, no-c-format
msgid ""
"The <literal>get()</literal> method of <literal>Instance</literal> produces "
@@ -1061,25 +1130,25 @@
"型"
#. Tag: programlisting
-#: injection.xml:493
+#: injection.xml:532
#, fuzzy, no-c-format
msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:495
+#: injection.xml:534
#, no-c-format
msgid "Qualifiers can be specified in one of two ways:"
msgstr ""
#. Tag: para
-#: injection.xml:501
+#: injection.xml:540
#, no-c-format
msgid "by annotating the <literal>Instance</literal> injection point, or"
msgstr ""
#. Tag: para
-#: injection.xml:504
+#: injection.xml:543
#, fuzzy, no-c-format
msgid ""
"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
@@ -1089,13 +1158,13 @@
"<literal>@PreDestroy</literal> 回调。"
#. Tag: para
-#: injection.xml:508
+#: injection.xml:547
#, no-c-format
msgid "Specifying the qualifiers at the injection point is much, much easier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:512
+#: injection.xml:551
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
@@ -1104,7 +1173,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:514
+#: injection.xml:553
#, no-c-format
msgid ""
"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
@@ -1112,7 +1181,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:519
+#: injection.xml:558
#, no-c-format
msgid ""
"Alternatively, we can specify the qualifier dynamically. First, we add the "
@@ -1121,14 +1190,14 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:524
+#: injection.xml:563
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:526
+#: injection.xml:565
#, no-c-format
msgid ""
"Next, we need to obtain an instance of our qualifier type. Since annotatons "
@@ -1139,7 +1208,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:533
+#: injection.xml:572
#, fuzzy, no-c-format
msgid ""
"<![CDATA[abstract class AsynchronousQualifier\n"
@@ -1150,13 +1219,13 @@
" implements CreditCard {}]]>"
#. Tag: para
-#: injection.xml:535
+#: injection.xml:574
#, no-c-format
msgid "In some cases, we can use an anonymous class:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:539
+#: injection.xml:578
#, fuzzy, no-c-format
msgid ""
"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
@@ -1168,14 +1237,14 @@
"AnnotationLiteral<CreditCard>(){});]]>"
#. Tag: para
-#: injection.xml:542
+#: injection.xml:581
#, no-c-format
msgid ""
"We can't use an anonymous class to implement a qualifier type with members."
msgstr ""
#. Tag: para
-#: injection.xml:547
+#: injection.xml:586
#, no-c-format
msgid ""
"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
@@ -1183,7 +1252,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:551
+#: injection.xml:590
#, no-c-format
msgid ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
@@ -1193,13 +1262,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:556
+#: injection.xml:595
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
msgstr " <literal>InjectionPoint</literal> 对象"
#. Tag: para
-#: injection.xml:558
+#: injection.xml:597
#, fuzzy, no-c-format
msgid ""
"There are certain kinds of dependent objects (beans with scope "
@@ -1211,7 +1280,7 @@
"需要知道它们所注入的对象或者注入点的信息,以便能够实现其功能。例如:"
#. Tag: para
-#: injection.xml:564
+#: injection.xml:603
#, no-c-format
msgid ""
"The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1219,7 +1288,7 @@
msgstr " <literal>Logger</literal>的日志分类取决于拥有它的类。"
#. Tag: para
-#: injection.xml:568
+#: injection.xml:607
#, no-c-format
msgid ""
"Injection of a HTTP parameter or header value depends upon what parameter or "
@@ -1227,7 +1296,7 @@
msgstr "一个HTTP参数和报头值的注入取决于注入点指定的参数或者报头名称。"
#. Tag: para
-#: injection.xml:572
+#: injection.xml:611
#, no-c-format
msgid ""
"Injection of the result of an EL expression evaluation depends upon the "
@@ -1235,7 +1304,7 @@
msgstr "表达式运算结果的注入取决于在注入点指定的表达式。"
#. Tag: para
-#: injection.xml:577
+#: injection.xml:616
#, fuzzy, no-c-format
msgid ""
"A bean with scope <literal>@Dependent</literal> may inject an instance of "
@@ -1246,7 +1315,7 @@
"<literal>InjectionPoint</literal> 实例并且访问这个注入点相关的元数据。"
#. Tag: para
-#: injection.xml:581
+#: injection.xml:620
#, no-c-format
msgid ""
"Let's look at an example. The following code is verbose, and vulnerable to "
@@ -1254,13 +1323,13 @@
msgstr "我们看一个例子。下面的代码很冗长脆弱,有重构问题:"
#. Tag: programlisting
-#: injection.xml:584
+#: injection.xml:623
#, 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:586
+#: injection.xml:625
#, no-c-format
msgid ""
"This clever little producer method lets you inject a JDK <literal>Logger</"
@@ -1270,7 +1339,7 @@
"一个日志分类:"
#. Tag: programlisting
-#: injection.xml:589
+#: injection.xml:628
#, no-c-format
msgid ""
"<![CDATA[class LogFactory {\n"
@@ -1292,19 +1361,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:591
+#: injection.xml:630
#, no-c-format
msgid "We can now write:"
msgstr "我们现在可以编写:"
#. Tag: programlisting
-#: injection.xml:593
+#: injection.xml:632
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Logger log;]]>"
msgstr "<![CDATA[@Current Logger log;]]>"
#. Tag: para
-#: injection.xml:595
+#: injection.xml:634
#, fuzzy, no-c-format
msgid ""
"Not convinced? Then here's a second example. To inject HTTP parameters, we "
@@ -1312,14 +1381,14 @@
msgstr "没被说服?我们还有第二个例子。要注入HTTP参数,我们需要定一个绑定类型:"
#. Tag: programlisting
-#: injection.xml:598
-#, no-c-format
+#: injection.xml:637
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@BindingType\n"
"@Retention(RUNTIME)\n"
"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
"public @interface HttpParam {\n"
-" @NonBinding public String value();\n"
+" @Nonbinding public String value();\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -1330,13 +1399,13 @@
"}]]>"
#. Tag: para
-#: injection.xml:600
+#: injection.xml:639
#, fuzzy, no-c-format
msgid "We would use this qualifier type at injection points as follows:"
msgstr "我们可以在注入点使用这个绑定类型:"
#. Tag: programlisting
-#: injection.xml:602
+#: injection.xml:641
#, no-c-format
msgid ""
"<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1346,21 +1415,21 @@
"@HttpParam(\"password\") String password;]]>"
#. Tag: para
-#: injection.xml:604
+#: injection.xml:643
#, no-c-format
msgid "The following producer method does the work:"
msgstr "下面的生产方法能够完成这个工作:"
#. Tag: programlisting
-#: injection.xml:606
-#, no-c-format
+#: injection.xml:645
+#, fuzzy, 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.getAnnotated().getAnnotation(HttpParam."
+"class).value());\n"
" }\n"
"\n"
"}]]>"
@@ -1376,18 +1445,18 @@
"}]]>"
#. Tag: para
-#: injection.xml:608
+#: injection.xml:647
#, 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>)"
+"<literal>@Nonbinding.</literal>)"
msgstr ""
"(注意 <literal>HttpParam</literal> 注释的成员 <literal>value()</literal> 将被"
"Web Bean管理器忽略,因为它拥有 <literal>@NonBinding.</literal> 注释)"
#. Tag: para
-#: injection.xml:611
+#: injection.xml:650
#, fuzzy, no-c-format
msgid ""
"The container provides a built-in bean that implements the "
@@ -1397,15 +1466,17 @@
"Bean:"
#. Tag: programlisting
-#: injection.xml:614
-#, no-c-format
+#: injection.xml:653
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface InjectionPoint { \n"
-" public Object getInstance(); \n"
-" public Bean<?> getBean(); \n"
-" public Member getMember(): \n"
-" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
-" public Set<T extends Annotation> getAnnotations(); \n"
+" public Type getType();\n"
+" public Set<Annotation> getQualifiers();\n"
+" public Bean<?> getBean();\n"
+" public Member getMember();\n"
+" public Annotated getAnnotated();\n"
+" public boolean isDelegate();\n"
+" public boolean isTransient();\n"
"}]]>"
msgstr ""
"<![CDATA[public interface InjectionPoint { \n"
@@ -1416,7 +1487,18 @@
" public Set<T extends Annotation> getAnnotations(); \n"
"}]]>"
+#, fuzzy
#~ 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> 即可。"
+
+#~ msgid ""
#~ "Web Beans supports three primary mechanisms for dependency injection:"
#~ msgstr "Web Beans支持三种主要的依赖注入机制:"
Modified: doc/trunk/reference/zh-CN/interceptors.po
===================================================================
--- doc/trunk/reference/zh-CN/interceptors.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/interceptors.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -461,7 +461,7 @@
"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:"
+"We can use the <literal>@Nonbinding</literal> annotation:"
msgstr ""
"但是如果我们只有一个拦截器,并且我们希望管理器在绑定拦截器的时候忽略 "
"<literal>requiresNew</literal> 的值,那该怎么办?我们可以使用 "
@@ -475,7 +475,7 @@
"@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"
Modified: doc/trunk/reference/zh-CN/next.po
===================================================================
--- doc/trunk/reference/zh-CN/next.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/next.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -25,10 +25,10 @@
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 "
+"remains the authority for information on CDI. The spec is 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-"
+"is available on the <ulink url=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
"299 page</ulink> at the JCP website."
msgstr ""
@@ -36,9 +36,9 @@
#: next.xml:14
#, fuzzy, no-c-format
msgid ""
-"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"The CDI reference implementation, Weld, is being developed at the <ulink url="
"\"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."
+"team and the CDI spec lead blog at <ulink url=\"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 "
@@ -52,9 +52,9 @@
#: next.xml:22
#, no-c-format
msgid ""
-"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"We encourage you to follow the <ulink url=\"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 url=\"http://seamframework.org/Weld/Development\">development</"
"ulink>. If you are reading this guide, you likely have something to offer."
msgstr ""
@@ -71,7 +71,7 @@
#: next.xml:35
#, no-c-format
msgid ""
-"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"Checkout source from <ulink url=\"http://anonsvn.jboss.org/repos/weld/doc/"
"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
"ulink> using SVN"
msgstr ""
@@ -88,8 +88,9 @@
#: 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)."
+"Edit the <literal>pom.xml</literal> file in the root of the checkout and "
+"remove the \"<literal>-SNAPSHOT</literal>\" from the version element (so you "
+"don't have to build other Weld modules)."
msgstr ""
#. Tag: para
@@ -117,7 +118,8 @@
#, 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"
+"You can find the HTML version in <literal>target/docbook/publish/en-US/html</"
+"literal>."
msgstr ""
#. Tag: para
Modified: doc/trunk/reference/zh-CN/part1.po
===================================================================
--- doc/trunk/reference/zh-CN/part1.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/part1.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -17,7 +17,7 @@
#: part1.xml:14
#, fuzzy, no-c-format
msgid ""
-"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"The <ulink url=\"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 "
@@ -329,7 +329,7 @@
#: part1.xml:197
#, no-c-format
msgid ""
-"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"Finally, CDI is a <ulink url=\"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/zh-CN/producermethods.po
===================================================================
--- doc/trunk/reference/zh-CN/producermethods.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/producermethods.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -219,14 +219,27 @@
"现在,当这个生产者方法被调用时,它返回的 <literal>PaymentStrategy</literal> "
"对象将被绑定到会话上下文中。这个生产者方法在同一个会话范围中不会被再次调用。"
+#. Tag: para
+#: producermethods.xml:95
+#, no-c-format
+msgid ""
+"A producer method does <emphasis>not</emphasis> inherit the scope of the "
+"bean that declares the method. There are two different beans here: the "
+"producer method, and the bean which declares it. The scope of the producer "
+"method determines how often the method will be called, and the lifecycle of "
+"the objects returned by the method. The scope of the bean that declares the "
+"producer method determines the lifecycle of the object upon which the "
+"producer method is invoked."
+msgstr ""
+
#. Tag: title
-#: producermethods.xml:97
+#: producermethods.xml:107
#, no-c-format
msgid "Injection into producer methods"
msgstr "注入到生产者方法中"
#. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:109
#, no-c-format
msgid ""
"There's one potential problem with the code above. The implementations of "
@@ -240,7 +253,7 @@
"法获得依赖注入的好处,也无法获得拦截器。"
#. Tag: para
-#: producermethods.xml:106
+#: producermethods.xml:116
#, fuzzy, no-c-format
msgid ""
"If this isn't what we want, we can use dependency injection into the "
@@ -249,7 +262,7 @@
"如果这不是我们想要的,我们可以对生产者方法使用依赖注入来获得Web Bean实例:"
#. Tag: programlisting
-#: producermethods.xml:111
+#: producermethods.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -277,7 +290,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:123
#, fuzzy, no-c-format
msgid ""
"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
@@ -296,7 +309,7 @@
"这种错误,因此使用生产者方法返回Web bean实例的时候一定要多加小心!"
#. Tag: para
-#: producermethods.xml:122
+#: producermethods.xml:132
#, fuzzy, no-c-format
msgid ""
"There's at least three ways we could go about fixing this bug. We could "
@@ -311,7 +324,7 @@
"<literal>@Dependent</literal> 或者 <literal>@RequestScoped</literal>。"
#. Tag: para
-#: producermethods.xml:129
+#: producermethods.xml:139
#, fuzzy, no-c-format
msgid ""
"But a more common solution is to use the special <literal>@New</literal> "
@@ -319,19 +332,19 @@
msgstr "不过更加常用的方法是使用特殊的 <literal>@New</literal> 绑定注释。"
#. Tag: title
-#: producermethods.xml:134
+#: producermethods.xml:144
#, no-c-format
msgid "Use of <literal>@New</literal> with producer methods"
msgstr "在生产者方法中使用 <literal>@New</literal> "
#. Tag: para
-#: producermethods.xml:136
+#: producermethods.xml:146
#, no-c-format
msgid "Consider the following producer method:"
msgstr "考虑到下面的生产者方法:"
#. Tag: programlisting
-#: producermethods.xml:138
+#: producermethods.xml:148
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -363,7 +376,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:140
+#: producermethods.xml:150
#, no-c-format
msgid ""
"Then a new <emphasis>dependent</emphasis> instance of "
@@ -379,13 +392,13 @@
"<literal>Preferences</literal> 一起被销毁。"
#. Tag: title
-#: producermethods.xml:150
+#: producermethods.xml:160
#, fuzzy, no-c-format
msgid "Disposer methods"
msgstr "生产者方法"
#. Tag: para
-#: producermethods.xml:152
+#: producermethods.xml:162
#, no-c-format
msgid ""
"Some producer methods return objects that require explicit destruction. For "
@@ -393,7 +406,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:157
+#: producermethods.xml:167
#, no-c-format
msgid ""
"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
@@ -402,7 +415,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:159
+#: producermethods.xml:169
#, no-c-format
msgid ""
"Destruction can be performed by a matching <emphasis>disposer method</"
@@ -410,7 +423,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:162
+#: producermethods.xml:172
#, no-c-format
msgid ""
"<![CDATA[void close(@Disposes Connection connection) {\n"
@@ -419,7 +432,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:164
+#: producermethods.xml:174
#, no-c-format
msgid ""
"The disposer method must have at least one parameter, annotated "
Modified: doc/trunk/reference/zh-CN/resources.po
===================================================================
--- doc/trunk/reference/zh-CN/resources.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/resources.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -66,6 +66,45 @@
#: resources.xml:33
#, no-c-format
msgid ""
+"The CDI specification uses the term <emphasis>resource</emphasis> to refer, "
+"generically, to any of the following kinds of object which might be "
+"available in the Java EE component environment:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:38
+#, no-c-format
+msgid ""
+"JDBC <literal>Datasource</literal>s, JMS <literal>Queue</literal>s, "
+"<literal>Topic</literal>s and <literal>ConnectionFactory</literal>s, "
+"JavaMail <literal>Session</literal>s and other transactional resources "
+"including JCA connectors,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"JPA <literal>EntityManager</literal>s and <literal>EntityManagerFactory</"
+"literal>s,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:46
+#, no-c-format
+msgid "remote EJBs, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid "web services"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:53
+#, 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>, "
@@ -73,7 +112,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:37
+#: resources.xml:57
#, no-c-format
msgid ""
"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
@@ -81,7 +120,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:39
+#: resources.xml:59
#, no-c-format
msgid ""
"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
@@ -90,7 +129,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:41
+#: resources.xml:61
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
@@ -98,7 +137,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:43
+#: resources.xml:63
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
@@ -106,7 +145,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:45
+#: resources.xml:65
#, no-c-format
msgid ""
"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
@@ -114,47 +153,69 @@
msgstr ""
#. Tag: para
-#: resources.xml:47
+#: resources.xml:67
#, no-c-format
msgid "The field may be static (but not final)."
msgstr ""
#. Tag: para
-#: resources.xml:49
+#: resources.xml:69
#, no-c-format
+msgid "A resource declaration really contains two pieces of information:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:73
+#, no-c-format
msgid ""
+"the JNDI name, EJB link, persistence unit name, or other metadata needed to "
+"obtain a reference to the resource from the component environment, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:77
+#, no-c-format
+msgid ""
+"the type and qualifiers that we will use to inject the reference into our "
+"beans."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:82
+#, 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</"
+"sense to declare your resources in a class annotated <literal>@Alternative</"
"literal>."
msgstr ""
#. Tag: title
-#: resources.xml:56
+#: resources.xml:90
#, no-c-format
msgid "Typesafe resource injection"
msgstr ""
#. Tag: para
-#: resources.xml:58
+#: resources.xml:92
#, no-c-format
msgid "These resources can now be injected in the usual way."
msgstr ""
#. Tag: programlisting
-#: resources.xml:62
+#: resources.xml:96
#, no-c-format
msgid "<![CDATA[@Inject Catalog catalog;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:63
+#: resources.xml:97
#, no-c-format
msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:64
+#: resources.xml:98
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManager "
@@ -162,7 +223,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:65
+#: resources.xml:99
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
@@ -170,13 +231,13 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:66
+#: resources.xml:100
#, no-c-format
msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
msgstr ""
#. Tag: para
-#: resources.xml:68
+#: resources.xml:102
#, no-c-format
msgid ""
"The bean type and qualifiers of the resource are determined by the producer "
@@ -184,7 +245,7 @@
msgstr ""
#. Tag: para
-#: resources.xml:72
+#: resources.xml:106
#, no-c-format
msgid ""
"It might seem like a pain to have to write these extra producer field "
@@ -196,25 +257,25 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:79
+#: resources.xml:113
#, no-c-format
msgid "@Inject @CustomerDatabase EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:81
+#: resources.xml:115
#, no-c-format
msgid "instead of"
msgstr ""
#. Tag: programlisting
-#: resources.xml:83
+#: resources.xml:117
#, no-c-format
msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:85
+#: resources.xml:119
#, 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/ri-spi.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -840,6 +840,18 @@
#. Tag: para
#: ri-spi.xml:497
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.ConversationAwareViewHandler</literal> as a "
+"delegating view handler."
+msgstr ""
+"如果你将Web Bean整合到一个Servlet环境中,对每个使用Servlet的 Web Bean应用,你"
+"需要以用户配置或者自动化形式将 <literal>org.jboss.webbeans.servlet."
+"WebBeansListener</literal> 注册为一个Servlet监听器。"
+
+#. Tag: para
+#: ri-spi.xml:502
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -851,7 +863,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:504
+#: ri-spi.xml:509
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -861,7 +873,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:511 ri-spi.xml:557
+#: ri-spi.xml:516 ri-spi.xml:562
#, no-c-format
msgid ""
"There are a number of ways you can obtain the bean manager for the module. "
@@ -871,7 +883,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:518
+#: ri-spi.xml:523
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must register "
@@ -886,19 +898,19 @@
"以安全地向所有Servlet部署注册。"
#. Tag: para
-#: ri-spi.xml:526
+#: ri-spi.xml:531
#, no-c-format
msgid "Weld only supports JSF 1.2 and above."
msgstr ""
#. Tag: term
-#: ri-spi.xml:533
+#: ri-spi.xml:538
#, no-c-format
msgid "<term>JSP</term>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:538
+#: ri-spi.xml:543
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must register "
@@ -910,7 +922,7 @@
"WebBeansListener</literal> 注册为一个Servlet监听器。"
#. Tag: para
-#: ri-spi.xml:543
+#: ri-spi.xml:548
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -921,7 +933,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:550
+#: ri-spi.xml:555
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -931,13 +943,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:567
+#: ri-spi.xml:572
#, no-c-format
msgid "Session Bean Interceptor"
msgstr "会话Bean拦截器"
#. Tag: para
-#: ri-spi.xml:571
+#: ri-spi.xml:576
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into an EJB environment you must register "
@@ -951,7 +963,7 @@
"SessionBeanInterceptor</literal> 注册为应用中所有EJB的EJB拦截器。"
#. Tag: para
-#: ri-spi.xml:578
+#: ri-spi.xml:583
#, no-c-format
msgid ""
"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -961,13 +973,13 @@
"最内部的拦截器。"
#. Tag: term
-#: ri-spi.xml:586
+#: ri-spi.xml:591
#, fuzzy, no-c-format
msgid "The <literal>weld-core.jar</literal>"
msgstr "<literal>webbeans-ri.jar</literal>"
#. Tag: para
-#: ri-spi.xml:590
+#: ri-spi.xml:595
#, no-c-format
msgid ""
"Weld can reside on an isolated classloader, or on a shared classloader. If "
@@ -979,7 +991,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:596
+#: ri-spi.xml:601
#, no-c-format
msgid ""
"You can provide your own implementation of <literal>Singleton</literal> and "
@@ -988,7 +1000,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:601
+#: ri-spi.xml:606
#, no-c-format
msgid ""
"Weld also provides an implementation of Thread Context Classloader per "
@@ -996,13 +1008,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:608
+#: ri-spi.xml:613
#, no-c-format
msgid "Binding the manager in JNDI"
msgstr ""
#. Tag: para
-#: ri-spi.xml:612
+#: ri-spi.xml:617
#, no-c-format
msgid ""
"You should bind the bean manager for the bean deployment archive into JNDI "
@@ -1013,13 +1025,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:622
+#: ri-spi.xml:627
#, no-c-format
msgid "Performing CDI injection on Java EE component classes"
msgstr ""
#. Tag: para
-#: ri-spi.xml:626
+#: ri-spi.xml:631
#, no-c-format
msgid ""
"The CDI specification requires the container to provide injection into non-"
@@ -1031,7 +1043,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:634
+#: ri-spi.xml:639
#, no-c-format
msgid ""
"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
@@ -1042,7 +1054,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:641
+#: ri-spi.xml:646
#, no-c-format
msgid ""
"To help the integrator, Weld provides <literal>WeldManager."
@@ -1051,7 +1063,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:646
+#: ri-spi.xml:651
#, no-c-format
msgid ""
"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
@@ -1079,7 +1091,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:647
+#: ri-spi.xml:652
#, no-c-format
msgid ""
"The container may intersperse other operations between these calls. Further, "
@@ -1088,7 +1100,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:651
+#: ri-spi.xml:656
#, no-c-format
msgid ""
"When performing injections on EJBs you must use the Weld-defined SPI, "
@@ -1098,7 +1110,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:656
+#: ri-spi.xml:661
#, no-c-format
msgid ""
"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
Modified: doc/trunk/reference/zh-CN/scopescontexts.po
===================================================================
--- doc/trunk/reference/zh-CN/scopescontexts.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/scopescontexts.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: master.xml\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -71,18 +71,23 @@
#: 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."
+"JPA entities aren't a great fit for this model. Entities have their whole "
+"own lifecycle and identity model which just doesn't map naturally to the "
+"model used in CDI. Therefore, we recommend against treating entities as CDI "
+"beans. You're certainly going to run into problems if you try to give an "
+"entity a scope other than the default scope <literal>@Dependent</literal>. "
+"The client proxy will get in the way if you try to pass an injected instance "
+"to the JPA <literal>EntityManager</literal>."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:41
+#: scopescontexts.xml:45
#, no-c-format
msgid "Scope types"
msgstr "范围类型"
#. Tag: para
-#: scopescontexts.xml:43
+#: scopescontexts.xml:47
#, fuzzy, no-c-format
msgid ""
"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
@@ -92,7 +97,7 @@
"新的范围类型注释来定一个新的范围:"
#. Tag: programlisting
-#: scopescontexts.xml:48
+#: scopescontexts.xml:52
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ScopeType\n"
@@ -106,7 +111,7 @@
"public @interface ClusterScoped {}]]>"
#. Tag: para
-#: scopescontexts.xml:50
+#: scopescontexts.xml:54
#, fuzzy, no-c-format
msgid ""
"Of course, that's the easy part of the job. For this scope type to be "
@@ -121,7 +126,7 @@
"个非常具备挑战的技术任务,这常常只能由开发编程框架的专家完成。"
#. Tag: para
-#: scopescontexts.xml:57
+#: scopescontexts.xml:61
#, fuzzy, no-c-format
msgid ""
"We can apply a scope type annotation to a bean implementation class to "
@@ -129,7 +134,7 @@
msgstr "我们可以在Web Bean实现类中应用范围类型注释来指定Web Bean的范围:"
#. Tag: programlisting
-#: scopescontexts.xml:61
+#: scopescontexts.xml:65
#, no-c-format
msgid ""
"<![CDATA[@ClusterScoped\n"
@@ -139,55 +144,55 @@
"public class SecondLevelCache { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:63
+#: scopescontexts.xml:67
#, fuzzy, no-c-format
msgid "Usually, you'll use one of CDI's built-in scopes."
msgstr "通常,你将会使用一个Web Bean内置的范围。"
#. Tag: title
-#: scopescontexts.xml:68
+#: scopescontexts.xml:72
#, no-c-format
msgid "Built-in scopes"
msgstr "内置范围"
#. Tag: para
-#: scopescontexts.xml:70
+#: scopescontexts.xml:74
#, fuzzy, no-c-format
msgid "CDI defines four built-in scopes:"
msgstr "Web Beans定义了四个内置范围:"
#. Tag: literal
-#: scopescontexts.xml:74
+#: scopescontexts.xml:78
#, no-c-format
msgid "@RequestScoped"
msgstr "@RequestScoped"
#. Tag: literal
-#: scopescontexts.xml:77
+#: scopescontexts.xml:81
#, no-c-format
msgid "@SessionScoped"
msgstr "@SessionScoped"
#. Tag: literal
-#: scopescontexts.xml:80
+#: scopescontexts.xml:84
#, no-c-format
msgid "@ApplicationScoped"
msgstr "@ApplicationScoped"
#. Tag: literal
-#: scopescontexts.xml:83
+#: scopescontexts.xml:87
#, no-c-format
msgid "@ConversationScoped"
msgstr "@ConversationScoped"
#. Tag: para
-#: scopescontexts.xml:87
+#: scopescontexts.xml:91
#, fuzzy, no-c-format
msgid "For a web application that uses CDI:"
msgstr "对于使用Web Beans的Web应用:"
#. Tag: para
-#: scopescontexts.xml:91
+#: scopescontexts.xml:95
#, no-c-format
msgid ""
"any servlet request has access to active request, session and application "
@@ -195,51 +200,63 @@
msgstr "任何Servlet请求可以访问激活的请求,会话和应用范围,并且"
#. Tag: para
-#: scopescontexts.xml:96
+#: scopescontexts.xml:100
#, no-c-format
msgid "any JSF request has access to an active conversation scope."
msgstr "任何JSF请求可以访问一个激活的对话范围"
#. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:105
#, no-c-format
msgid ""
-"A CDI extension can support the conversation scope for other frameworks as "
-"well."
+"A CDI extension can implement support for the conversation scope in other "
+"web frameworks."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:108
#, no-c-format
msgid "The request and application scopes are also active:"
msgstr "在下列情况下请求和应用范围是激活的:"
#. Tag: para
-#: scopescontexts.xml:108
+#: scopescontexts.xml:112
#, no-c-format
msgid "during invocations of EJB remote methods,"
msgstr "在EJB远程方法调用期间,"
#. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:115
+#, fuzzy, no-c-format
+msgid "during invocations of EJB asynchronous methods,"
+msgstr "在EJB远程方法调用期间,"
+
+#. Tag: para
+#: scopescontexts.xml:118
#, no-c-format
msgid "during EJB timeouts,"
msgstr "在EJB超时期间,"
#. Tag: para
-#: scopescontexts.xml:114
-#, no-c-format
-msgid "during message delivery to a message-driven bean, and"
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
+msgid "during message delivery to a message-driven bean,"
msgstr "在消息发送给消息驱动Bean的期间,"
#. Tag: para
-#: scopescontexts.xml:117
+#: scopescontexts.xml:124
+#, fuzzy, no-c-format
+msgid "during message delivery to a <literal>MessageListener</literal>, and"
+msgstr "在消息发送给消息驱动Bean的期间,"
+
+#. Tag: para
+#: scopescontexts.xml:127
#, no-c-format
msgid "during web service invocations."
msgstr "在Web Service调用期间。"
#. Tag: para
-#: scopescontexts.xml:121
+#: scopescontexts.xml:131
#, fuzzy, no-c-format
msgid ""
"If the application tries to invoke a bean with a scope that does not have an "
@@ -250,9 +267,18 @@
"管理器在运行时将抛出一个<literal>ContextNotActiveException</literal>异常。"
#. Tag: para
-#: scopescontexts.xml:126
+#: scopescontexts.xml:136
#, no-c-format
msgid ""
+"Managed beans with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal> must be serializable, since the "
+"container passivates the HTTP session from time to time."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:141
+#, no-c-format
+msgid ""
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
@@ -261,13 +287,13 @@
"时间来讨论他们。不过有一个范围是新的。"
#. Tag: title
-#: scopescontexts.xml:134
+#: scopescontexts.xml:149
#, no-c-format
msgid "The conversation scope"
msgstr "对话范围"
#. Tag: para
-#: scopescontexts.xml:136
+#: scopescontexts.xml:151
#, fuzzy, no-c-format
msgid ""
"The conversation scope is a bit like the traditional session scope in that "
@@ -280,13 +306,13 @@
"还有很多地方和会话范围不一样:"
#. Tag: para
-#: scopescontexts.xml:144
+#: scopescontexts.xml:159
#, no-c-format
msgid "is demarcated explicitly by the application, and"
msgstr "它通过应用显式地声明,并且"
#. Tag: para
-#: scopescontexts.xml:147
+#: scopescontexts.xml:162
#, no-c-format
msgid ""
"holds state associated with a particular web browser tab in a JSF "
@@ -295,7 +321,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:154
+#: scopescontexts.xml:169
#, fuzzy, no-c-format
msgid ""
"A conversation represents a task—a unit of work from the point of view "
@@ -307,7 +333,7 @@
"态由对话上下文维护。如果用户同时处理多个事情,就会有多个对话与之对应。"
#. Tag: para
-#: scopescontexts.xml:160
+#: scopescontexts.xml:175
#, fuzzy, no-c-format
msgid ""
"The conversation context is active during any JSF request. Most "
@@ -320,13 +346,13 @@
"<emphasis>长时对话</emphasis>。"
#. Tag: title
-#: scopescontexts.xml:167
+#: scopescontexts.xml:182
#, no-c-format
msgid "Conversation demarcation"
msgstr "对话划分"
#. Tag: para
-#: scopescontexts.xml:169
+#: scopescontexts.xml:184
#, fuzzy, no-c-format
msgid ""
"CDI provides a built-in bean for controlling the lifecycle of conversations "
@@ -336,13 +362,13 @@
"Web Bean可以通过注入来获得:"
#. Tag: programlisting
-#: scopescontexts.xml:174
+#: scopescontexts.xml:189
#, fuzzy, no-c-format
msgid "@Inject Conversation conversation;"
msgstr "@Current Conversation conversation;"
#. Tag: para
-#: scopescontexts.xml:176
+#: scopescontexts.xml:191
#, no-c-format
msgid ""
"To promote the conversation associated with the current request to a long-"
@@ -356,7 +382,7 @@
"<literal>end()</literal>方法。"
#. Tag: para
-#: scopescontexts.xml:182
+#: scopescontexts.xml:197
#, fuzzy, no-c-format
msgid ""
"In the following example, a conversation-scoped bean controls the "
@@ -364,7 +390,7 @@
msgstr "在下面的例子中,一个对话范围的Web Bean控制和它关联的对话:"
#. Tag: programlisting
-#: scopescontexts.xml:186
+#: scopescontexts.xml:201
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ConversationScoped @Stateful\n"
@@ -428,7 +454,7 @@
"}"
#. Tag: para
-#: scopescontexts.xml:188
+#: scopescontexts.xml:203
#, fuzzy, no-c-format
msgid ""
"This bean is able to control its own lifecycle through use of the "
@@ -439,13 +465,13 @@
"他一些Web Bean的生命周期完全依赖与其他对象。"
#. Tag: title
-#: scopescontexts.xml:196
+#: scopescontexts.xml:211
#, no-c-format
msgid "Conversation propagation"
msgstr "对话的传播"
#. Tag: para
-#: scopescontexts.xml:198
+#: scopescontexts.xml:213
#, fuzzy, no-c-format
msgid ""
"The conversation context automatically propagates with any JSF faces request "
@@ -456,7 +482,7 @@
"上下文将不会自动传播,例如通过一个链接来导航。"
#. Tag: para
-#: scopescontexts.xml:203
+#: scopescontexts.xml:218
#, fuzzy, no-c-format
msgid ""
"We can force the conversation to propagate with a non-faces request by "
@@ -472,13 +498,13 @@
"的名字<literal>conversation</literal>。"
#. Tag: para
-#: scopescontexts.xml:210
+#: scopescontexts.xml:225
#, no-c-format
msgid "Therefore, the following link propagates the conversation:"
msgstr "因此,下面的链接能够传播对话:"
#. Tag: programlisting
-#: scopescontexts.xml:214
+#: scopescontexts.xml:229
#, no-c-format
msgid ""
"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -488,13 +514,13 @@
">"
#. Tag: para
-#: scopescontexts.xml:216
+#: scopescontexts.xml:231
#, no-c-format
msgid "It's probably better to use one of the link components in JSF 2:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:220
+#: scopescontexts.xml:235
#, no-c-format
msgid ""
"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
@@ -503,7 +529,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:223
+#: scopescontexts.xml:238
#, fuzzy, no-c-format
msgid ""
"The conversation context propagates across redirects, making it very easy to "
@@ -517,13 +543,13 @@
"求参数。"
#. Tag: title
-#: scopescontexts.xml:233
+#: scopescontexts.xml:248
#, no-c-format
msgid "Conversation timeout"
msgstr "对话超时"
#. Tag: para
-#: scopescontexts.xml:235
+#: scopescontexts.xml:250
#, fuzzy, no-c-format
msgid ""
"The container is permitted to destroy a conversation and all state held in "
@@ -539,7 +565,7 @@
"活时间。"
#. Tag: para
-#: scopescontexts.xml:242
+#: scopescontexts.xml:257
#, fuzzy, no-c-format
msgid ""
"The <literal>Conversation</literal> object provides a method to set the "
@@ -550,54 +576,181 @@
"Bean管理器忽略原来的配置。"
#. Tag: programlisting
-#: scopescontexts.xml:247
+#: scopescontexts.xml:262
#, no-c-format
msgid "conversation.setTimeout(timeoutInMillis);"
msgstr "conversation.setTimeout(timeoutInMillis);"
#. Tag: title
-#: scopescontexts.xml:254
+#: scopescontexts.xml:269
+#, fuzzy, no-c-format
+msgid "The singleton pseudo-scope"
+msgstr "依赖的伪范围"
+
+#. Tag: para
+#: scopescontexts.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"In addition to the four built-in scopes, CDI also supports two "
+"<emphasis>pseudo-scopes</emphasis>. The first is the <emphasis>singleton "
+"pseudo-scope</emphasis>, which we specify using the annotation "
+"<literal>@Singleton</literal>."
+msgstr ""
+"除了内置的四个范围,Web Beans还提供了一个<emphasis>依赖的伪范围</emphasis>。"
+"这个范围是没有显式设置范围类型的Web Bean的默认范围。"
+
+#. Tag: para
+#: scopescontexts.xml:277
#, no-c-format
+msgid ""
+"Unlike the other scopes, which belong to the package <literal>javax."
+"enterprise.context</literal>, the <literal>@Singleton</literal> annotation "
+"is defined in the package <literal>javax.inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:283
+#, no-c-format
+msgid ""
+"You can guess what \"singleton\" means here. It means a bean that is "
+"instantiated once. Unfortunately, there's a little problem with this pseudo-"
+"scope. Beans with scope <literal>@Singleton</literal> don't have a proxy "
+"object. Clients hold a direct reference to the singleton instance. So we "
+"need to consider the case of a client that can be serialized, for example, "
+"any bean with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal>, any dependent object of a bean with "
+"scope <literal>@SessionScoped</literal> or <literal>@ConversationScoped</"
+"literal>, or any stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:292
+#, no-c-format
+msgid ""
+"Now, if the singleton instance is a simple, immutable, serializable object "
+"like a string, a number or a date, we probably don't mind too much if it "
+"gets duplicated via serialization. However, that makes it no stop being a "
+"true singleton, and we may as well have just declared it with the default "
+"scope."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:298
+#, no-c-format
+msgid ""
+"There are several ways to ensure that the singleton bean remains a singleton "
+"when its client gets serialized:"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:302
+#, no-c-format
+msgid ""
+"have the singleton bean implement <literal>writeResolve()</literal> and "
+"<literal>readReplace()</literal> (as defined by the Java serialization "
+"specification),"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:308
+#, no-c-format
+msgid ""
+"make sure the client keeps only a transient reference to the singleton bean, "
+"or"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:313
+#, no-c-format
+msgid ""
+"give the client a reference of type <literal>Instance<X></literal> "
+"where <literal>X</literal> is the bean type of the singleton bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:320
+#, no-c-format
+msgid ""
+"A fourth, better solution is to instead use <literal>@ApplicationScoped</"
+"literal>, allowing the container to proxy the bean, and take care of "
+"serialization problems automatically."
+msgstr ""
+
+#. Tag: title
+#: scopescontexts.xml:326
+#, no-c-format
msgid "The dependent pseudo-scope"
msgstr "依赖的伪范围"
#. Tag: para
-#: scopescontexts.xml:256
+#: scopescontexts.xml:328
#, fuzzy, no-c-format
msgid ""
-"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 "
-"bean which does not explicitly declare a scope type."
+"Finally, CDI features the so-called <emphasis>dependent pseudo-scope</"
+"emphasis>. This is the default scope for a bean which does not explicitly "
+"declare a scope type."
msgstr ""
"除了内置的四个范围,Web Beans还提供了一个<emphasis>依赖的伪范围</emphasis>。"
"这个范围是没有显式设置范围类型的Web Bean的默认范围。"
#. Tag: para
-#: scopescontexts.xml:261
+#: scopescontexts.xml:333
#, fuzzy, no-c-format
msgid ""
"For example, this bean has the scope type <literal>@Dependent</literal>:"
msgstr "例如,这个Web Bean有一个范围类型<literal>@Dependent</literal>:"
#. Tag: programlisting
-#: scopescontexts.xml:265
+#: scopescontexts.xml:337
#, no-c-format
msgid "<![CDATA[public class Calculator { ... }]]>"
msgstr "<![CDATA[public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:267
+#: scopescontexts.xml:339
#, no-c-format
msgid ""
-"An instances of a dependent bean is never shared between different clients "
-"or different injection points. It is strictly a <emphasis>dependent object</"
+"An instance 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:273
+#: scopescontexts.xml:345
+#, no-c-format
+msgid ""
+"If a Unified EL expression refers to a dependent bean by EL name, an "
+"instance of the bean is instantiated every time the expression is evaluated. "
+"The instance is not reused during any other expression evaluation."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:351
+#, no-c-format
+msgid ""
+"If you need to access a bean directly by EL name in a JSF page, you probably "
+"need to give it a scope other than <literal>@Dependent</literal>. Otherwise, "
+"any value that gets set to the bean by a JSF input will be lost immediately. "
+"That's why CDI features the <literal>@Model</literal> stereotype; it lets "
+"you give a bean a name, and set its scope to <literal>@RequestScoped</"
+"literal> in one stroke. If you need to access a bean that really "
+"<emphasis>has</emphasis> to have the scope <literal>@Dependent</literal> "
+"from a JSF page, inject it into a different bean, and expose it to EL via a "
+"getter method."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:361
+#, no-c-format
+msgid ""
+"Beans with scope <literal>@Dependent</literal> don't need a proxy object. "
+"The client holds a direct reference to its instance."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:366
#, fuzzy, no-c-format
msgid ""
"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
@@ -607,13 +760,13 @@
"EJB Bean已经被声明为一个其他范围的Web Bean也没问题。"
#. Tag: title
-#: scopescontexts.xml:281
+#: scopescontexts.xml:374
#, fuzzy, no-c-format
msgid "The <literal>@New</literal> qualifier"
msgstr "<literal>@New</literal>注释"
#. Tag: para
-#: scopescontexts.xml:283
+#: scopescontexts.xml:376
#, no-c-format
msgid ""
"The built-in qualifier <literal>@New</literal> allows us to obtain a "
@@ -621,13 +774,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:287
+#: scopescontexts.xml:380
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
msgstr "<![CDATA[@New Calculator calculator;]]>"
#. Tag: para
-#: scopescontexts.xml:289
+#: scopescontexts.xml:382
#, no-c-format
msgid ""
"The class must be a valid managed bean or session bean, but need not be an "
@@ -635,7 +788,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:291
+#: scopescontexts.xml:384
#, fuzzy, no-c-format
msgid ""
"This works even if <literal>Calculator</literal> is <emphasis>already</"
@@ -645,7 +798,7 @@
"型声明过的情况下也是如此。例如:"
#. Tag: programlisting
-#: scopescontexts.xml:296
+#: scopescontexts.xml:389
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped\n"
@@ -655,7 +808,7 @@
"public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:298
+#: scopescontexts.xml:391
#, no-c-format
msgid ""
"So the following injected attributes each get a different instance of "
@@ -664,7 +817,7 @@
"所以下面注入的属性,每个都获得一个不同的 <literal>Calculator</literal>实例:"
#. Tag: programlisting
-#: scopescontexts.xml:302
+#: scopescontexts.xml:395
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class PaymentCalc {\n"
@@ -680,7 +833,7 @@
"}]]>"
#. Tag: para
-#: scopescontexts.xml:304
+#: scopescontexts.xml:397
#, no-c-format
msgid ""
"The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -694,7 +847,7 @@
"literal>类上。"
#. Tag: para
-#: scopescontexts.xml:310
+#: scopescontexts.xml:403
#, no-c-format
msgid ""
"This feature is particularly useful with producer methods, as we'll see in "
Modified: doc/trunk/reference/zh-CN/weldexamples.po
===================================================================
--- doc/trunk/reference/zh-CN/weldexamples.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-CN/weldexamples.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -144,7 +144,7 @@
"<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"
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"XML"
"\"><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN"
"\"\n"
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
@@ -524,7 +524,7 @@
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."
+"can open the example natively using the <ulink url=\"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.."
@@ -620,8 +620,9 @@
"<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."
+"<ulink url=\"http://localhost:9090\">http://localhost:9090</ulink> to view "
+"the app. To debug choose <emphasis>Debug as Java Application</emphasis> "
+"instead."
msgstr ""
#. Tag: title
@@ -663,8 +664,9 @@
#: 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>."
+"to deploy the example to Tomcat. You can then access application at <ulink "
+"url=\"http://localhost:8080/weld-numberguess-wicket\">http://localhost:8080/"
+"weld-numberguess-wicket</ulink>."
msgstr ""
#. Tag: para
@@ -976,7 +978,7 @@
"\"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"
+"public class Game\n"
"{\n"
"\n"
" public static final int MAX_NUM_GUESSES = 10;\n"
@@ -1078,19 +1080,18 @@
"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"
+"to get the random number at the start of each game. Note that it can't use "
+"<literal>Instance.get()</literal> like the JSF example does because there "
+"will not be any active contexts like there are 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"
@@ -1545,7 +1546,6 @@
#, 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>."
+"information on Weld, please visit <ulink url=\"http://www.seamframework.org/"
+"Weld\">http://www.seamframework.org/Weld</ulink>."
msgstr ""
Modified: doc/trunk/reference/zh-TW/beans.po
===================================================================
--- doc/trunk/reference/zh-TW/beans.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/beans.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -484,14 +484,14 @@
#, 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."
+"context until the context is destroyed. There is no way to manually remove a "
+"bean from a context. If you don't want the bean to sit in the session "
+"indefinitely, consider using another scope with a shorted lifespan, such as "
+"the request or conversation scope."
msgstr ""
#. Tag: para
-#: beans.xml:272
+#: beans.xml:273
#, no-c-format
msgid ""
"If a scope is not explicitly specified, then the bean belongs to a special "
@@ -501,19 +501,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:278
+#: beans.xml:279
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:283
+#: beans.xml:284
#, no-c-format
msgid "EL name"
msgstr ""
#. Tag: para
-#: beans.xml:285
+#: beans.xml:286
#, no-c-format
msgid ""
"If you want to reference a bean in non-Java code that supports Unified EL "
@@ -522,7 +522,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:290
+#: beans.xml:291
#, no-c-format
msgid ""
"The EL name is specified using the <literal>@Named</literal> annotation, as "
@@ -530,7 +530,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:294
+#: beans.xml:295
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named(\"cart\")\n"
@@ -538,13 +538,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:296
+#: beans.xml:297
#, no-c-format
msgid "Now we can easily use the bean in any JSF or JSP page:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:298
+#: beans.xml:299
#, no-c-format
msgid ""
"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
@@ -553,7 +553,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:301
+#: beans.xml:302
#, no-c-format
msgid ""
"The <literal>@Named</literal> annotation is not what makes the class a bean. "
@@ -563,7 +563,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:308
+#: beans.xml:309
#, no-c-format
msgid ""
"We can let CDI choose a name for us by leaving off the value of the "
@@ -571,7 +571,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:312
+#: beans.xml:313
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Named\n"
@@ -579,7 +579,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:314
+#: beans.xml:315
#, no-c-format
msgid ""
"The name defaults to the unqualified class name, decapitalized; in this "
@@ -587,13 +587,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:324
+#: beans.xml:325
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: beans.xml:326
+#: beans.xml:327
#, no-c-format
msgid ""
"We've already seen how qualifiers let us choose between multiple "
@@ -606,7 +606,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:334
+#: beans.xml:335
#, no-c-format
msgid ""
"<![CDATA[public @Alternative\n"
@@ -614,33 +614,33 @@
msgstr ""
#. Tag: para
-#: beans.xml:336
+#: beans.xml:337
#, 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 "
+"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
+#: beans.xml:345
#, no-c-format
msgid ""
"We cover alternatives in more detail in <xref linkend=\"alternatives\"/>."
msgstr ""
#. Tag: title
-#: beans.xml:351
+#: beans.xml:352
#, no-c-format
msgid "Interceptor binding types"
msgstr ""
#. Tag: para
-#: beans.xml:353
+#: beans.xml:354
#, no-c-format
msgid ""
"You might be familiar with the use of interceptors in EJB 3.0. In Java EE 6, "
@@ -651,7 +651,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:360
+#: beans.xml:361
#, no-c-format
msgid ""
"The way that interceptors were defined in Java EE 5 was counter-intuitive. "
@@ -668,7 +668,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:371
+#: beans.xml:372
#, no-c-format
msgid ""
"CDI provides a new approach to binding interceptors to beans that introduces "
@@ -678,7 +678,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:377
+#: beans.xml:378
#, no-c-format
msgid ""
"An interceptor binding type is a user-defined annotation that is itself "
@@ -688,7 +688,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:382
+#: beans.xml:383
#, no-c-format
msgid ""
"<![CDATA[@InterceptorBinding\n"
@@ -699,7 +699,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:384
+#: beans.xml:385
#, no-c-format
msgid ""
"The interceptor that implements transaction management declares this "
@@ -707,7 +707,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:388
+#: beans.xml:389
#, no-c-format
msgid ""
"<![CDATA[public @Transactional @Interceptor\n"
@@ -715,7 +715,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:390
+#: beans.xml:391
#, no-c-format
msgid ""
"We can apply the interceptor to a bean by annotating the bean class with the "
@@ -723,7 +723,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:394
+#: beans.xml:395
#, no-c-format
msgid ""
"<![CDATA[public @SessionScoped @Transactional\n"
@@ -731,7 +731,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:396
+#: beans.xml:397
#, no-c-format
msgid ""
"Notice that <literal>ShoppingCart</literal> and "
@@ -740,18 +740,18 @@
msgstr ""
#. Tag: para
-#: beans.xml:401
+#: beans.xml:402
#, 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 "
+"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
+#: beans.xml:409
#, no-c-format
msgid ""
"We'll discuss interceptors, and their cousins, decorators, in <xref linkend="
@@ -759,13 +759,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:418
+#: beans.xml:419
#, no-c-format
msgid "What kinds of classes are beans?"
msgstr ""
#. Tag: para
-#: beans.xml:420
+#: beans.xml:421
#, no-c-format
msgid ""
"We've already seen two types of beans: JavaBeans and EJB session beans. Is "
@@ -774,13 +774,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:427
+#: beans.xml:428
#, no-c-format
msgid "Managed beans"
msgstr ""
#. Tag: para
-#: beans.xml:429
+#: beans.xml:430
#, no-c-format
msgid ""
"A managed bean is a Java class. The basic lifecycle and semantics of a "
@@ -792,19 +792,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:440
+#: beans.xml:441
#, no-c-format
msgid "It is not a non-static inner class."
msgstr ""
#. Tag: para
-#: beans.xml:443
+#: beans.xml:444
#, no-c-format
msgid "It is a concrete class, or is annotated <literal>@Decorator</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:446
+#: beans.xml:447
#, no-c-format
msgid ""
"It is not annotated with an EJB component-defining annotation or declared as "
@@ -812,7 +812,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:452
+#: beans.xml:453
#, no-c-format
msgid ""
"It does not implement <literal>javax.enterprise.inject.spi.Extension</"
@@ -820,25 +820,25 @@
msgstr ""
#. Tag: para
-#: beans.xml:455
+#: beans.xml:456
#, no-c-format
msgid "It has an appropriate constructor—either:"
msgstr ""
#. Tag: para
-#: beans.xml:460
+#: beans.xml:461
#, no-c-format
msgid "the class has a constructor with no parameters, or"
msgstr ""
#. Tag: para
-#: beans.xml:463
+#: beans.xml:464
#, no-c-format
msgid "the class declares a constructor annotated <literal>@Inject</literal>."
msgstr ""
#. Tag: para
-#: beans.xml:471
+#: beans.xml:472
#, no-c-format
msgid ""
"The unrestricted set of bean types for a managed bean contains the bean "
@@ -847,7 +847,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:474
+#: beans.xml:475
#, no-c-format
msgid ""
"If a managed bean has a public field, it must have the default scope "
@@ -855,7 +855,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:476
+#: beans.xml:477
#, no-c-format
msgid ""
"Managed beans support the <literal>@PostConstruct</literal> and "
@@ -863,7 +863,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:479
+#: beans.xml:480
#, no-c-format
msgid ""
"Session beans are also, technically, managed beans. However, since they have "
@@ -873,13 +873,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:488
+#: beans.xml:489
#, no-c-format
msgid "Session beans"
msgstr ""
#. Tag: para
-#: beans.xml:490
+#: beans.xml:491
#, no-c-format
msgid ""
"Session beans belong to the EJB specification. They have a special "
@@ -892,7 +892,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:499
+#: beans.xml:500
#, no-c-format
msgid ""
"Message-driven and entity beans are by nature non-contextual objects and may "
@@ -904,7 +904,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:507
+#: beans.xml:508
#, no-c-format
msgid ""
"The unrestricted set of bean types for a session bean contains all local "
@@ -916,7 +916,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:515
+#: beans.xml:516
#, no-c-format
msgid ""
"There's no reason to explicitly declare the scope of a stateless session "
@@ -927,7 +927,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:519
+#: beans.xml:520
#, no-c-format
msgid ""
"Stateful session beans may define a <emphasis>remove method</emphasis>, "
@@ -940,7 +940,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:527
+#: beans.xml:528
#, no-c-format
msgid ""
"So, when should we use a session bean instead of a plain managed bean? "
@@ -948,19 +948,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:534
+#: beans.xml:535
#, no-c-format
msgid "method-level transaction management and security,"
msgstr ""
#. Tag: para
-#: beans.xml:537
+#: beans.xml:538
#, no-c-format
msgid "concurrency management,"
msgstr ""
#. Tag: para
-#: beans.xml:540
+#: beans.xml:541
#, no-c-format
msgid ""
"instance-level passivation for stateful session beans and instance-pooling "
@@ -968,19 +968,19 @@
msgstr ""
#. Tag: para
-#: beans.xml:544
+#: beans.xml:545
#, no-c-format
msgid "remote or web service invocation, or"
msgstr ""
#. Tag: para
-#: beans.xml:547
+#: beans.xml:548
#, no-c-format
msgid "timers and asynchronous methods,"
msgstr ""
#. Tag: para
-#: beans.xml:551
+#: beans.xml:552
#, no-c-format
msgid ""
"When we don't need any of these things, an ordinary managed bean will serve "
@@ -988,7 +988,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:553
+#: beans.xml:554
#, no-c-format
msgid ""
"Many beans (including any <literal>@SessionScoped</literal> or "
@@ -998,7 +998,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:559
+#: beans.xml:560
#, no-c-format
msgid ""
"Beans which hold references to heavy-weight resources, or hold a lot of "
@@ -1008,7 +1008,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:565
+#: beans.xml:566
#, no-c-format
msgid ""
"Finally, it's usually obvious when method-level transaction management, "
@@ -1017,7 +1017,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:570
+#: beans.xml:571
#, no-c-format
msgid ""
"The point we're trying to make is: use a session bean when you need the "
@@ -1030,7 +1030,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:578
+#: beans.xml:579
#, no-c-format
msgid ""
"On the other hand, don't be scared to use session beans just because you've "
@@ -1043,13 +1043,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:589
+#: beans.xml:590
#, no-c-format
msgid "Producer methods"
msgstr ""
#. Tag: para
-#: beans.xml:591
+#: beans.xml:592
#, no-c-format
msgid ""
"Not everything that needs to be injected can be boiled down to a bean class "
@@ -1061,7 +1061,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:599
+#: beans.xml:600
#, no-c-format
msgid ""
"A <emphasis>producer method</emphasis> is a method that acts as a source of "
@@ -1072,7 +1072,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:606
+#: beans.xml:607
#, no-c-format
msgid ""
"A producer method is declared by annotating a method of a bean class with "
@@ -1080,7 +1080,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:611
+#: beans.xml:612
#, no-c-format
msgid ""
"<![CDATA[@ApplicationScoped\n"
@@ -1096,7 +1096,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:613
+#: beans.xml:614
#, no-c-format
msgid ""
"We can't write a bean class that is itself a random number. But we can "
@@ -1111,25 +1111,25 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:622
+#: beans.xml:623
#, no-c-format
msgid "<![CDATA[@Inject @Random int randomNumber;]]>"
msgstr ""
#. Tag: para
-#: beans.xml:624
+#: beans.xml:625
#, no-c-format
msgid "Even in a Unified EL expression:"
msgstr ""
#. Tag: programlisting
-#: beans.xml:628
+#: beans.xml:629
#, no-c-format
msgid "<![CDATA[<p>Your raffle number is #{randomNumber}.</p>]]>"
msgstr ""
#. Tag: para
-#: beans.xml:630
+#: beans.xml:631
#, no-c-format
msgid ""
"A producer method must be a non-abstract method of a managed bean class or "
@@ -1139,13 +1139,13 @@
msgstr ""
#. Tag: para
-#: beans.xml:636
+#: beans.xml:637
#, no-c-format
msgid "The bean types of a producer method depend upon the method return type:"
msgstr ""
#. Tag: para
-#: beans.xml:642
+#: beans.xml:643
#, no-c-format
msgid ""
"If the return type is an interface, the unrestricted set of bean types "
@@ -1154,7 +1154,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:648
+#: beans.xml:649
#, no-c-format
msgid ""
"If a return type is primitive or is a Java array type, the unrestricted set "
@@ -1163,7 +1163,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:654
+#: beans.xml:655
#, no-c-format
msgid ""
"If the return type is a class, the unrestricted set of bean types contains "
@@ -1172,7 +1172,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:661
+#: beans.xml:662
#, no-c-format
msgid ""
"If the producer method has method parameters, the container will look for a "
@@ -1181,7 +1181,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:667
+#: beans.xml:668
#, no-c-format
msgid ""
"<![CDATA[@Produces Set<Roles> getRoles(User user) {\n"
@@ -1190,7 +1190,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:669
+#: beans.xml:670
#, no-c-format
msgid ""
"We'll talk much more about producer methods in <xref linkend="
@@ -1198,13 +1198,13 @@
msgstr ""
#. Tag: title
-#: beans.xml:674
+#: beans.xml:675
#, no-c-format
msgid "Producer fields"
msgstr ""
#. Tag: para
-#: beans.xml:676
+#: beans.xml:677
#, no-c-format
msgid ""
"A <emphasis>producer field</emphasis> is a simpler alternative to a producer "
@@ -1214,7 +1214,7 @@
msgstr ""
#. Tag: programlisting
-#: beans.xml:682
+#: beans.xml:683
#, no-c-format
msgid ""
"<![CDATA[public class Shop {\n"
@@ -1224,7 +1224,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:684
+#: beans.xml:685
#, no-c-format
msgid ""
"The rules for determining the bean types of a producer field parallel the "
@@ -1232,7 +1232,7 @@
msgstr ""
#. Tag: para
-#: beans.xml:688
+#: beans.xml:689
#, no-c-format
msgid ""
"A producer field is really just a shortcut that lets us avoid writing a "
@@ -1242,3 +1242,405 @@
"linkend=\"resources\"/>. Because we can't wait to get to work on some "
"examples."
msgstr ""
+
+#. Tag: title
+#: beans.xml:701
+#, no-c-format
+msgid "The (minimal) bean descriptor"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:703
+#, no-c-format
+msgid ""
+"First, it's important to understand that the XML bean descriptor in CDI "
+"(beans.xml) is not there to define beans in XML, like in other popular bean "
+"containers. Rather, you use this file to enable CDI services for the current "
+"bean archive that is difficult to define consistently in Java or which you "
+"don't want to define in Java (e.g., to accomodate testing)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:710
+#, no-c-format
+msgid ""
+"For example, the XML is used to enable interceptors (which are disabled by "
+"default) and define interceptor ordering. So the bean descriptor "
+"<emphasis>complements</emphasis> the metadata that is provided in the Java "
+"language syntax. (You may still want to define beans in XML for other "
+"reasons, but that is the concern of an extension)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:717
+#, no-c-format
+msgid ""
+"Let's first ask why the beans.xml is required, then look at what services it "
+"is used used to enable."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:722
+#, no-c-format
+msgid "Why is beans.xml required?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:724
+#, no-c-format
+msgid ""
+"You may be wondering, if beans are not described using XML, why do we need "
+"beans.xml at all, particularly if you don't have anything that you would "
+"need the bean descriptor to enable (alternatives, interceptors or "
+"decorators)?"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:730
+#, no-c-format
+msgid "There are two things about CDI that we need to keep in mind:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:736
+#, no-c-format
+msgid ""
+"CDI does not require any special declaration for a Java class to be injected "
+"- that's right, no annotation or XML declaration at all!"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:742
+#, no-c-format
+msgid ""
+"CDI does not define any special kind of module - CDI beans can be deployed "
+"in a library JAR, EJB JAR, WAR, RAR, or JVM classpath directory."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:749
+#, no-c-format
+msgid ""
+"The CDI specification calls the process of identifying beans in modules "
+"<emphasis>bean discovery</emphasis>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:753
+#, no-c-format
+msgid ""
+"So there are potentially a lot of classes in the classpath which might be "
+"beans! We don't want to force the container to scan every one of those "
+"classes at startup and build its internal metamodel for each of them. This "
+"really could make bean discovery very slow."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:759
+#, no-c-format
+msgid ""
+"But there's another reason we need to give the user some control over which "
+"classes are available for injection. We don't want every class in the "
+"classpath to potentially match an injection point, including classes that "
+"were never intended to be injected into things. This would force the "
+"developer to have to use qualifiers much more often to disambiguate "
+"injection points."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:766
+#, no-c-format
+msgid "So we have two choices. We could have the developer:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:772
+#, no-c-format
+msgid "explicitly exclude modules which do not contain beans, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:775
+#, no-c-format
+msgid "explicitly declare modules which do contain beans."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:779
+#, no-c-format
+msgid ""
+"It should be clear that the second option is a much better way to go. Thus, "
+"CDI has the notion of a bean archive. A bean archive is just a module that "
+"has a file named beans.xml in the META-INF directory. The container looks "
+"for beans in bean archives. It ignores other modules."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:785
+#, no-c-format
+msgid ""
+"Now, you might be wondering if we've got the granularity wrong here. Why "
+"should module be the right criteria to use for including/excluding a class. "
+"Why not consider:"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:792
+#, no-c-format
+msgid "a class-level annotation,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:795
+#, no-c-format
+msgid "the package,"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:798
+#, no-c-format
+msgid "some type it implements or extends, or"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:801
+#, no-c-format
+msgid "some naming convention."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:805
+#, no-c-format
+msgid ""
+"We've got the first option covered. Annotate a bean <literal>@Alternative</"
+"literal>, or with an alternative stereotype, and it will be considered "
+"disabled by CDI, as long as you don't explicitly enable it in beans.xml. "
+"That's not quite the same thing as excluding the class from scanning "
+"altogether, but it's close. (One difference is that a portable extension "
+"with still get a <literal>ProcessAnnotatedType</literal> event for that "
+"class)."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:813
+#, no-c-format
+msgid ""
+"A future version of CDI might allow you to declare excluded packages in "
+"beans.xml. Excluding a bean by type or naming convention isn't really that "
+"appealing. In the world of CDI, we use stereotypes for identifying "
+"architectural roles. We don't use marker interfaces or naming conventions. "
+"Names really shouldn't affect functionality as it is too fragile."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:820
+#, no-c-format
+msgid "Enough theory, what elements are available in beans.xml?"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:826
+#, no-c-format
+msgid "Bean descriptor schema"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:828
+#, no-c-format
+msgid ""
+"If you don't need to activate any interceptors, decorators or alternatives "
+"(you just have plain beans that you need to use in an archive), the beans."
+"xml file can be <emphasis>empty</emphasis>. If you do have one of these "
+"requirements, then you need to start popularing the descriptor."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:834
+#, no-c-format
+msgid ""
+"The root element of a beans.xml file is <literal>beans</literal>, with the "
+"following <ulink url=\"http://anonsvn.jboss.org/repos/weld/api/trunk/cdi/src/"
+"main/resources/beans.xsd\">schema</ulink>:"
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:839
+#, no-c-format
+msgid ""
+"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<beans 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"
+"</beans>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:841
+#, no-c-format
+msgid ""
+"The <literal>beans</literal> element can have one or more of each of the "
+"following children:"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:847
+#, no-c-format
+msgid "interceptors"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:850
+#, no-c-format
+msgid "decorators"
+msgstr ""
+
+#. Tag: literal
+#: beans.xml:853
+#, no-c-format
+msgid "alternatives"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:857
+#, no-c-format
+msgid "Let's look at each element in detail."
+msgstr ""
+
+#. Tag: title
+#: beans.xml:862
+#, no-c-format
+msgid "<interceptors>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:864
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled interceptors bound via interceptor "
+"bindings. An interceptor must be explicitly enabled by listing the fully "
+"qualified class name in a child <class> element of <"
+"interceptors>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:870
+#, no-c-format
+msgid ""
+"There may be zero or more interceptor class elements. The order of the class "
+"declarations determines the interceptor ordering. Interceptors which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an interceptor "
+"class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:877
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.intercept.SecurityInterceptor</class>\n"
+" <class>com.acme.intercept.TransactionInterceptor</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:883
+#, no-c-format
+msgid "<decorators>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:885
+#, no-c-format
+msgid ""
+"By default, a bean archive has no enabled decorators. A decorator must be "
+"explicitly enabled by listing the fully qualified class name in a child <"
+"class> element of <decorators>."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:891
+#, no-c-format
+msgid ""
+"There may be zero or more decorator class elements. The order of the class "
+"declarations determines the decorator ordering. Decorators which occur "
+"earlier in the list are called first. The same class may not be listed "
+"twice. And of course, the class must exist and it must be an decorator class."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:898
+#, no-c-format
+msgid ""
+"<![CDATA[<interceptors>\n"
+" <class>com.acme.decorate.BigAccountDecorator</class>\n"
+" <class>com.acme.decorate.SpecialGiftDecorator</class>\n"
+"</interceptors>]]>"
+msgstr ""
+
+#. Tag: title
+#: beans.xml:903
+#, no-c-format
+msgid "<alternatives>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:905
+#, no-c-format
+msgid ""
+"An alternative is a bean that must be explicitly declared in the beans.xml "
+"file if it should be available for lookup, injection or EL resolution. By "
+"default, a bean archive has no active alternatives. An alternative must be "
+"explicitly declared using the fully qualified bean class name or stereotype "
+"class name in either a child <class> or <stereotype> element of "
+"<alternatives>, respectively."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:913
+#, no-c-format
+msgid ""
+"An alternative is selected for the bean archive if either: the alternative "
+"is a managed bean or session bean and the bean class of the bean is listed, "
+"or the alternative is a producer method, field or resource, and the bean "
+"class that declares the method or field is listed, or any "
+"<literal>@Alternative</literal> stereotype of the alternative is listed."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:920
+#, no-c-format
+msgid ""
+"There may be zero or more alternative bean class elements. The same class "
+"may not be listed twice. And of course, the class must exist and it must be "
+"an alternative bean class."
+msgstr ""
+
+#. Tag: para
+#: beans.xml:925
+#, no-c-format
+msgid ""
+"There may also be zero or more <literal>@Alternative</literal> stereotype "
+"elements. The same stereotype may not be listed twice. And of course, the "
+"stereotype class must exist and it must be an stereotype annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: beans.xml:931
+#, no-c-format
+msgid ""
+"<![CDATA[<stereotypes>\n"
+" <class>com.acme.business.MockPaymentProcessor</class>\n"
+" <stereotype>com.acme.stereotype.Mock</stereotype>\n"
+"</stereotypes>]]>"
+msgstr ""
+
+#. Tag: para
+#: beans.xml:935
+#, no-c-format
+msgid ""
+"And that's it! A very simple schema, used only to activate and order CDI "
+"services."
+msgstr ""
Modified: doc/trunk/reference/zh-TW/dependencies.po
===================================================================
--- doc/trunk/reference/zh-TW/dependencies.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/dependencies.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -24,7 +24,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/"
+"is currently maintained in the <ulink url=\"https://jira.jboss.org/jira/"
"browse/WELD-222\">WELD-222</ulink> issue report as well as here in this "
"appendix."
msgstr ""
Modified: doc/trunk/reference/zh-TW/ee.po
===================================================================
--- doc/trunk/reference/zh-TW/ee.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/ee.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: ee\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -68,7 +68,7 @@
#: ee.xml:32
#, no-c-format
msgid ""
-"the default <ulink src=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
+"the default <ulink url=\"http://jcp.org/en/jsr/detail?id=303\">Bean "
"Validation</ulink> <literal>ValidationFactory</literal>, and"
msgstr ""
@@ -80,14 +80,49 @@
"literal>."
msgstr ""
+#. Tag: para
+#: ee.xml:45
+#, no-c-format
+msgid ""
+"The CDI specification does not require the servlet context objects, "
+"<literal>HttpServletRequest</literal>, <literal>HttpSession</literal> and "
+"<literal>ServletContext</literal> to be exposed as injectable beans. If you "
+"really want to be able to inject these objects, it's easy to create a "
+"portable extension to expose them as beans. However, we recommend that "
+"direct access to these objects be limited to servlets, servlet filters and "
+"servlet event listeners, where they may be obtained in the usual way as "
+"defined by the Java Servlets spec. The <literal>FacesContext</literal> is "
+"also not injectable. You can get at it by calling <literal>FacesContext."
+"getCurrentInstance()</literal>."
+msgstr ""
+
+#. Tag: para
+#: ee.xml:57
+#, no-c-format
+msgid ""
+"Oh, you <emphasis>really</emphasis> want to inject the "
+"<literal>FacesContext</literal>? Alright then, try this producer method:"
+msgstr ""
+
+#. Tag: programlisting
+#: ee.xml:61
+#, no-c-format
+msgid ""
+"<![CDATA[class FacesContextProducer {\n"
+" @Produces @RequestScoped FacesContext getFacesContext() {\n"
+" return FacesContext.getCurrentInstance();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
#. Tag: title
-#: ee.xml:47
+#: ee.xml:67
#, fuzzy, no-c-format
msgid "Injecting Java EE resources into a bean"
msgstr "將 Java EE 資源注入 Web Bean 中"
#. Tag: para
-#: ee.xml:49
+#: ee.xml:69
#, fuzzy, no-c-format
msgid ""
"All managed beans may take advantage of Java EE component environment "
@@ -102,7 +137,7 @@
"時我們並未詳細討論到:"
#. Tag: programlisting
-#: ee.xml:56
+#: ee.xml:76
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @Interceptor\n"
@@ -124,7 +159,7 @@
"}]]>"
#. Tag: programlisting
-#: ee.xml:58
+#: ee.xml:78
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped\n"
@@ -145,7 +180,7 @@
"}]]>"
#. Tag: para
-#: ee.xml:60
+#: ee.xml:80
#, fuzzy, no-c-format
msgid ""
"The Java EE <literal>@PostConstruct</literal> and <literal>@PreDestroy</"
@@ -158,7 +193,7 @@
"literal> 這個 method 會在<emphasis>所有</emphasis>注入被進行後才會被調用。"
#. Tag: para
-#: ee.xml:66
+#: ee.xml:86
#, no-c-format
msgid ""
"Of course, we advise that component environment injection be used to define "
@@ -166,13 +201,13 @@
msgstr ""
#. Tag: title
-#: ee.xml:74
+#: ee.xml:94
#, fuzzy, no-c-format
msgid "Calling a bean from a servlet"
msgstr "透過一個 Servlet 來調用 Web Bean"
#. Tag: para
-#: ee.xml:76
+#: ee.xml:96
#, fuzzy, no-c-format
msgid ""
"It's easy to use a bean from a servlet in Java EE 6. Simply inject the bean "
@@ -182,7 +217,7 @@
"位或是 initializer method 注入來注入 Web Bean 即可。"
#. Tag: programlisting
-#: ee.xml:81
+#: ee.xml:101
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class Login extends HttpServlet {\n"
@@ -229,7 +264,7 @@
"}"
#. Tag: para
-#: ee.xml:83
+#: ee.xml:103
#, fuzzy, no-c-format
msgid ""
"Since instances of servlets are shared across all incoming threads, the bean "
@@ -242,13 +277,13 @@
"routing method 調用。"
#. Tag: title
-#: ee.xml:92
+#: ee.xml:112
#, fuzzy, no-c-format
msgid "Calling a bean from a message-driven bean"
msgstr "透過訊息導向的 Bean 來調用 Web Bean"
#. Tag: para
-#: ee.xml:94
+#: ee.xml:114
#, no-c-format
msgid ""
"CDI injection applies to all EJBs, even when they aren't managed beans. In "
@@ -257,13 +292,13 @@
msgstr ""
#. Tag: para
-#: ee.xml:99
+#: ee.xml:119
#, fuzzy, no-c-format
msgid "You can even use CDI interceptor bindings for message-driven Beans."
msgstr "針對於訊息導向的 Bean,您甚至可使用 Web Bean 攔截器綁定。"
#. Tag: programlisting
-#: ee.xml:101
+#: ee.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Transactional @MessageDriven\n"
@@ -289,7 +324,7 @@
"}"
#. Tag: para
-#: ee.xml:103
+#: ee.xml:123
#, fuzzy, no-c-format
msgid ""
"Please note that there is no session or conversation context available when "
@@ -303,19 +338,19 @@
"Web Bean 可使用。"
#. Tag: para
-#: ee.xml:109
+#: ee.xml:129
#, no-c-format
msgid "But how about beans which <emphasis>send</emphasis> JMS messages?"
msgstr ""
#. Tag: title
-#: ee.xml:116
+#: ee.xml:136
#, no-c-format
msgid "JMS endpoints"
msgstr "JMS 端點"
#. Tag: para
-#: ee.xml:118
+#: ee.xml:138
#, no-c-format
msgid ""
"Sending messages using JMS can be quite complex, because of the number of "
@@ -338,7 +373,7 @@
"己各別的生命週期和執行緒模型(threading model)。"
#. Tag: para
-#: ee.xml:127
+#: ee.xml:147
#, no-c-format
msgid ""
"You can use producer fields and methods to prepare all of these resources "
@@ -346,7 +381,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:131
+#: ee.xml:151
#, no-c-format
msgid ""
"<![CDATA[public class OrderResources {\n"
@@ -395,7 +430,7 @@
msgstr ""
#. Tag: para
-#: ee.xml:133
+#: ee.xml:153
#, no-c-format
msgid ""
"In this example, we can just inject the prepared <literal>MessageProducer</"
@@ -403,7 +438,7 @@
msgstr ""
#. Tag: programlisting
-#: ee.xml:138
+#: ee.xml:158
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject Order order;\n"
@@ -427,7 +462,7 @@
"}"
#. Tag: para
-#: ee.xml:144
+#: ee.xml:164
#, fuzzy, no-c-format
msgid ""
"The lifecycle of the injected JMS objects is completely controlled by the "
@@ -435,13 +470,13 @@
msgstr "被注入的 JMS 物件的生命週期完全由 Web Bean 管理員所控制。"
#. Tag: title
-#: ee.xml:151
+#: ee.xml:171
#, no-c-format
msgid "Packaging and deployment"
msgstr "封裝和建置"
#. Tag: para
-#: ee.xml:153
+#: ee.xml:173
#, fuzzy, no-c-format
msgid ""
"CDI doesn't define any special deployment archive. You can package beans in "
@@ -462,7 +497,7 @@
"archive 中的 Web Bean 將無法使用於應用程式中。"
#. Tag: para
-#: ee.xml:162
+#: ee.xml:182
#, fuzzy, no-c-format
msgid ""
"In an embeddable EJB container, beans may be deployed in any location in "
Modified: doc/trunk/reference/zh-TW/environments.po
===================================================================
--- doc/trunk/reference/zh-TW/environments.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/environments.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -383,133 +383,270 @@
"available:"
msgstr ""
-#. Tag: literal
-#: environments.xml:215
+#. Tag: para
+#: environments.xml:214
#, no-c-format
-msgid "POJOs (no EJBs)"
+msgid ""
+"Managed beans with <literal>@PostConstruct</literal> and "
+"<literal>@PreDestroy</literal> lifecycle callbacks"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:220
#, no-c-format
-msgid "Typesafe Dependency Injection"
+msgid "Dependency injection with qualifiers and alternatives"
msgstr ""
-#. Tag: literal
+#. Tag: para
#: environments.xml:225
#, no-c-format
-msgid "Application and Dependent Contexts"
+msgid ""
+"<literal>@Application</literal>, <literal>@Dependent</literal> and "
+"<literal>@Singleton</literal> scopes"
msgstr ""
-#. Tag: literal
-#: environments.xml:230
+#. Tag: para
+#: environments.xml:231
#, no-c-format
-msgid "Qualifiers"
+msgid "Interceptors and decorators"
msgstr ""
-#. Tag: literal
-#: environments.xml:235
+#. Tag: para
+#: environments.xml:236
#, no-c-format
msgid "Stereotypes"
msgstr ""
-#. Tag: literal
-#: environments.xml:240
+#. Tag: para
+#: environments.xml:241
#, no-c-format
-msgid "Typesafe Event Model"
+msgid "Events"
msgstr ""
-#. Tag: title
+#. Tag: para
#: environments.xml:246
#, no-c-format
+msgid "Portable extension support"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:252
+#, no-c-format
+msgid "EJB beans are not supported."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:257
+#, no-c-format
msgid "CDI SE Module"
msgstr ""
#. Tag: para
-#: environments.xml:248
+#: environments.xml:259
#, 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:"
+"automatically registering all simple beans found on the classpath. The "
+"command line parameters can be injected using either of the following:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:255
+#: environments.xml:264
#, no-c-format
+msgid "<![CDATA[@Inject @Parameters List<String> params;]]>"
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:266
+#, no-c-format
+msgid "<![CDATA[@Inject @Parameters String[] paramsArray;]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:268
+#, no-c-format
+msgid "The second form is useful for compatibility with existing classes."
+msgstr ""
+
+#. Tag: para
+#: environments.xml:273
+#, no-c-format
msgid ""
-"<![CDATA[@Inject @Parameters List<String> params;\n"
-"@Inject @Parameters String[] paramsArray; // useful for compatability with "
-"existing classes]]>"
+"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 ""
#. Tag: para
-#: environments.xml:257
+#: environments.xml:282
#, no-c-format
msgid "Here's an example of a simple CDI SE application:"
msgstr ""
#. Tag: programlisting
-#: environments.xml:261
+#: environments.xml:286
#, no-c-format
msgid ""
-"<![CDATA[@ApplicationScoped\n"
+"<![CDATA[@Singleton\n"
"public class HelloWorld\n"
"{\n"
-" @Inject @Parameters List<String> parameters;\n"
-"\n"
-" public void printHello(@Observes ContainerInitialized event) {\n"
+" public void printHello(@Observes ContainerInitialized event, @Parameters "
+"List<String> parameters) {\n"
" System.out.println(\"Hello \" + parameters.get(0));\n"
" }\n"
"}]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:292
+#, no-c-format
+msgid "Bootstrapping CDI SE"
+msgstr ""
+
#. Tag: para
-#: environments.xml:263
+#: environments.xml:294
#, no-c-format
+msgid "CDI SE applications can be bootstrapped in the following ways."
+msgstr ""
+
+#. Tag: title
+#: environments.xml:300
+#, no-c-format
+msgid "The ContainerInitialized Event"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:302
+#, no-c-format
msgid ""
-"CDI SE applications can be bootstrapped by running the StartMain class like "
-"so:"
+"Thanks to the power of CDI's typesafe event model, application developers "
+"need not write any bootstrapping code. The Weld SE module comes with a built-"
+"in main method which will bootstrap CDI for you and then fire a "
+"<literal>ContainerInitialized</literal> event. The entry point for your "
+"application code would therefore be a simple bean which observes the "
+"<literal>ContainerInitialized</literal> event, as in the previous example."
msgstr ""
+#. Tag: para
+#: environments.xml:310
+#, no-c-format
+msgid ""
+"In this case your application can be started by calling the provided main "
+"method like so:"
+msgstr ""
+
#. Tag: programlisting
-#: environments.xml:267
+#: environments.xml:313
#, no-c-format
msgid "<![CDATA[java org.jboss.weld.environments.se.StartMain <args>]]>"
msgstr ""
+#. Tag: title
+#: environments.xml:319
+#, no-c-format
+msgid "Programatic Bootstrap API"
+msgstr ""
+
#. Tag: para
-#: environments.xml:269
+#: environments.xml:321
#, 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:"
+"For added flexibility, CDI SE also comes with a bootstrap API which can be "
+"called from within your application in order to initialize CDI and obtain "
+"references to your application's beans and events. The API consists of two "
+"classes: <literal>Weld</literal> and <literal>WeldContainer</literal>."
msgstr ""
#. Tag: programlisting
-#: environments.xml:276
+#: environments.xml:327
#, no-c-format
msgid ""
-"<![CDATA[public class PerformSetup {\n"
-" public void setup(@Observes AfterBeanDiscovery event) {\n"
-" event.addContext( ThreadContext.INSTANCE );\n"
-" }\n"
+"<![CDATA[public class Weld\n"
+"{\n"
+"\n"
+" /** Boots Weld and creates and returns a WeldContainer instance, through "
+"which\n"
+" * beans and events can be accesed. */\n"
+" public WeldContainer initialize() {...}\n"
+"\n"
+" /** Convenience method for shutting down the container. */\n"
+" public void shutdown() {...}\n"
+"\n"
"}]]>"
msgstr ""
+#. Tag: programlisting
+#: environments.xml:329
+#, no-c-format
+msgid ""
+"<![CDATA[public class WeldContainer\n"
+"{\n"
+"\n"
+" /** Provides access to all beans within the application. */\n"
+" public Instance<Object> instance() {...}\n"
+"\n"
+" /** Provides access to all events within the application. */\n"
+" public Event<Object> event() {...}\n"
+"\n"
+" /** Provides direct access to the BeanManager. */\n"
+" public BeanManager getBeanManager() {...}\n"
+"\n"
+"}]]>"
+msgstr ""
+
#. Tag: para
-#: environments.xml:279
+#: environments.xml:331
#, 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>."
+"Here's an example application main method which uses this API to initialize "
+"a bean of type <literal>MyApplicationBean</literal>."
msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:334
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.instance().select(MyApplicationBean.class).get();\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:336
+#, no-c-format
+msgid ""
+"Alternatively the application could be started by firing a custom event "
+"which would then be observed by another simple bean. The following example "
+"fires <literal>MyEvent</literal> on startup."
+msgstr ""
+
+#. Tag: programlisting
+#: environments.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[public static void main(String[] args) {\n"
+" WeldContainer weld = new Weld().initialize();\n"
+" weld.event().select(MyEvent.class).fire( new MyEvent() );\n"
+" weld.shutdown();\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: environments.xml:348
+#, no-c-format
+msgid "Setting the Classpath"
+msgstr ""
+
+#. Tag: para
+#: environments.xml:350
+#, no-c-format
+msgid ""
+"Weld SE comes packaged as a 'shaded' jar which includes the CDI API, Weld "
+"Core and all dependant classes bundled into a single jar. Therefore the only "
+"Weld jar you need on the classpath, in addition to your application's "
+"classes and dependant jars, is the Weld SE jar."
+msgstr ""
Modified: doc/trunk/reference/zh-TW/example.po
===================================================================
--- doc/trunk/reference/zh-TW/example.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/example.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: example\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -28,14 +28,16 @@
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:"
+"request-scoped bean to hold the username and password entered during login, "
+"with constraints defined using annotations from the Bean Validation "
+"specification:"
msgstr ""
"現在我們將採用一個完整的範例來描述這些概念。我們將要為一個使用 JSF 的應用程式"
"實做用戶的登錄/登出。首先,我們將要定義一個 Web Bean 來在登錄時保持已輸入的用"
"戶名稱與密碼:"
#. Tag: programlisting
-#: example.xml:11
+#: example.xml:12
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Named @RequestScoped\n"
@@ -43,9 +45,11 @@
" private String username;\n"
" private String password;\n"
" \n"
+" @NotNull @Length(min=3, max=25)\n"
" public String getUsername() { return username; }\n"
" public void setUsername(String username) { this.username = username; }\n"
" \n"
+" @NotNull @Length(min=6, max=20)\n"
" public String getPassword() { return password; }\n"
" public void setPassword(String password) { this.password = password; }\n"
"}]]>"
@@ -65,21 +69,23 @@
"}]]>"
#. Tag: para
-#: example.xml:13
+#: example.xml:14
#, 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
+#: example.xml:16
#, 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"
+" <f:validateBean>\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"
+" </f:validateBean>\n"
" </h:panelGrid>\n"
" <h:commandButton value=\"Login\" action=\"#{login.login}\" rendered=\"#{!"
"login.loggedIn}\"/>\n"
@@ -101,9 +107,52 @@
"</h:form>]]>"
#. Tag: para
-#: example.xml:17
+#: example.xml:18
+#, no-c-format
+msgid "Users are represented by a JPA entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: example.xml:22
#, fuzzy, no-c-format
msgid ""
+"<![CDATA[@Entity\n"
+"public class User {\n"
+" private @NotNull @Length(min=3, max=25) @Id String username;\n"
+" private @NotNull @Length(min=6, max=20) String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" public String setPassword(String password) { this.password = password; }\n"
+"}]]>"
+msgstr ""
+"<![CDATA[@Named @RequestScoped\n"
+"public class Credentials {\n"
+" \n"
+" private String username;\n"
+" private String password;\n"
+" \n"
+" public String getUsername() { return username; }\n"
+" public void setUsername(String username) { this.username = username; }\n"
+" \n"
+" public String getPassword() { return password; }\n"
+" public void setPassword(String password) { this.password = password; }\n"
+" \n"
+"}]]>"
+
+#. Tag: para
+#: example.xml:24
+#, no-c-format
+msgid ""
+"(Note that we're also going to need a <literal>persistence.xml</literal> "
+"file to configure the JPA persistence unit containing <literal>User</"
+"literal>.)"
+msgstr ""
+
+#. Tag: para
+#: example.xml:29
+#, 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:"
@@ -113,7 +162,7 @@
"Web Bean:"
#. Tag: programlisting
-#: example.xml:22
+#: example.xml:34
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@SessionScoped @Named\n"
@@ -192,7 +241,7 @@
"}]]>"
#. Tag: para
-#: example.xml:24
+#: example.xml:36
#, no-c-format
msgid ""
"<literal>@LoggedIn</literal> and <literal>@UserDatabase</literal> are custom "
@@ -200,7 +249,7 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:26
+#: example.xml:38
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -214,7 +263,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: programlisting
-#: example.xml:28
+#: example.xml:40
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -228,7 +277,7 @@
"public @interface LoggedIn {}]]>"
#. Tag: para
-#: example.xml:30
+#: example.xml:42
#, no-c-format
msgid ""
"We need an adaptor bean to expose our typesafe <literal>EntityManager</"
@@ -236,16 +285,17 @@
msgstr ""
#. Tag: programlisting
-#: example.xml:34
+#: example.xml:46
#, no-c-format
msgid ""
-"<![CDATA[public class UserDatabaseProducer {\n"
-" @Produces @UserDatabase @PersistenceContext EntityManager userDatabase;\n"
+"<![CDATA[class UserDatabaseProducer {\n"
+" @Produces @UserDatabase @PersistenceContext \n"
+" static EntityManager userDatabase;\n"
"}]]>"
msgstr ""
#. Tag: para
-#: example.xml:36
+#: example.xml:48
#, fuzzy, no-c-format
msgid ""
"Now <literal>DocumentEditor</literal>, or any other bean, can easily inject "
@@ -253,7 +303,7 @@
msgstr "現在,任何其它 Web Bean 都可輕易地注入目前的用戶:"
#. Tag: programlisting
-#: example.xml:38
+#: example.xml:50
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class DocumentEditor {\n"
@@ -281,13 +331,13 @@
"}]]>"
#. Tag: para
-#: example.xml:40
+#: example.xml:52
#, no-c-format
msgid "Or we can reference the current user in a JSF view:"
msgstr ""
#. Tag: programlisting
-#: example.xml:42
+#: example.xml:54
#, no-c-format
msgid ""
"<![CDATA[<h:panelGroup rendered=\"#{login.loggedIn}\">\n"
@@ -296,7 +346,7 @@
msgstr ""
#. Tag: para
-#: example.xml:44
+#: example.xml:56
#, fuzzy, no-c-format
msgid ""
"Hopefully, this example gave you a taste of the CDI programming model. In "
Modified: doc/trunk/reference/zh-TW/extend.po
===================================================================
--- doc/trunk/reference/zh-TW/extend.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/extend.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: extend\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -95,52 +95,228 @@
"some other source"
msgstr ""
+#. Tag: title
+#: extend.xml:58
+#, fuzzy, no-c-format
+msgid "Creating an <literal>Extension</literal>"
+msgstr "<literal>Bean</literal> class"
+
#. Tag: para
-#: extend.xml:57
+#: extend.xml:60
+#, no-c-format
+msgid ""
+"The first step in creating a portable extension is to write a class that "
+"implements <literal>Extension</literal>. This marker interface does not "
+"define any methods, but it's needed to satisfy the requirements of Java SE's "
+"service provider architecture."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:66
+#, no-c-format
+msgid "class MyExtension implements Extension { ... }"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:68
+#, no-c-format
+msgid ""
+"Next, we need to register our extension as a service provider by creating a "
+"file named <literal>META-INF/services/javax.enterprise.inject.spi.Extension</"
+"literal>, which contains the name of our extension class:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:74
+#, no-c-format
+msgid "org.mydomain.extension.MyExtension"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:76
+#, no-c-format
+msgid ""
+"An extension is not a bean, exactly, since it is instantiated by the "
+"container during the initialization process, before any beans or contexts "
+"exist. However, it can be injected into other beans once the initialization "
+"process is complete."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:82
+#, no-c-format
+msgid ""
+"@Inject \n"
+"MyBean(MyExtension myExtension) {\n"
+" myExtension.doSomething();\n"
+"}"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:84
+#, no-c-format
+msgid ""
+"And, like beans, extensions can have observer methods. Usually, the observer "
+"methods observe <emphasis>container lifecycle events</emphasis>."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:92
+#, no-c-format
+msgid "Container lifecycle events"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:94
+#, no-c-format
+msgid ""
+"During the initialization process, the container fires a series of events, "
+"including:"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:101
+#, no-c-format
+msgid "BeforeBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:106
+#, no-c-format
+msgid "ProcessAnnotatedType"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:110
+#, no-c-format
+msgid ""
+"<literal>ProcessInjectionTarget</literal> and <literal>ProcessProducer</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:115
+#, no-c-format
+msgid ""
+"<literal>ProcessBean</literal> and <literal>ProcessObserverMethod</literal>"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:121
+#, no-c-format
+msgid "AfterBeanDiscovery"
+msgstr ""
+
+#. Tag: literal
+#: extend.xml:126
+#, no-c-format
+msgid "AfterDeploymentValidation"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:131
+#, no-c-format
+msgid "Extensions may observe these events:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:135
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" void beforeBeanDiscovery(@Observes BeforeBeanDiscovery bbd) {\n"
+" Logger.global.debug(\"beginning the scanning process\");\n"
+" }\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" Logger.global.debug(\"scanning type: \" + pat.getAnnotatedType()."
+"getJavaClass().getName());\n"
+" } \n"
+"\n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd) {\n"
+" Logger.global.debug(\"finished the scanning process\");\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:137
+#, no-c-format
+msgid ""
+"In fact, the extension can do a lot more than just observe. The extension is "
+"permitted to modify the container's metamodel and more. Here's a very simple "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:142
+#, no-c-format
+msgid ""
+"<![CDATA[class MyExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" //tell the container to ignore the type if it is annotated @Ignore\n"
+" if ( pat.getAnnotatedType().isAnnotionPresent(Ignore.class) ) pat.veto"
+"(); \n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:144
#, fuzzy, no-c-format
-msgid ""
-"The nerve center for extending CDI is the <literal>BeanManager</literal> "
-"object."
+msgid "The observer method may inject a <literal>BeanManager</literal>"
msgstr "延伸 Web Bean 的神經中樞為 <literal>Manager</literal> 這個物件。"
+#. Tag: programlisting
+#: extend.xml:148
+#, no-c-format
+msgid ""
+"<![CDATA[<T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> "
+"pat, BeanManager beanManager) { ... }]]>"
+msgstr ""
+
#. Tag: title
-#: extend.xml:62
+#: extend.xml:153
#, fuzzy, no-c-format
msgid "The <literal>BeanManager</literal> object"
msgstr "<literal>Manager</literal> 物件"
#. Tag: para
-#: extend.xml:64
+#: extend.xml:155
#, fuzzy, no-c-format
msgid ""
-"The <literal>BeanManager</literal> interface lets us obtain beans, "
+"The nerve center for extending CDI is the <literal>BeanManager</literal> "
+"object. 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:69
+#: extend.xml:161
#, no-c-format
msgid ""
-"<![CDATA[public interface Manager {\n"
+"<![CDATA[public interface BeanManager {\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(Type beanType, Annotation... qualifiers);\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"
-" public <T> Set<ObserverMethod<?, T>> resolveObserverMethods(T event, "
-"Annotation... bindings);\n"
+" public void fireEvent(Object event, Annotation... qualifiers);\n"
+" public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(T event, "
+"Annotation... qualifiers);\n"
" public List<Decorator<?>> resolveDecorators(Set<Type> types, "
-"Annotation... bindings);\n"
+"Annotation... qualifiers);\n"
" public List<Interceptor<?>> resolveInterceptors(InterceptionType type, "
"Annotation... interceptorBindings);\n"
" public boolean isScope(Class<? extends Annotation> annotationType);\n"
@@ -149,11 +325,11 @@
" public boolean isPassivatingScope(Class<? extends Annotation> "
"annotationType);\n"
" public boolean isQualifier(Class<? extends Annotation> annotationType);\n"
-" public boolean isInterceptorBindingType(Class<? extends Annotation> "
+" public boolean isInterceptorBinding(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> getInterceptorBindingDefinition(Class<? extends "
+"Annotation> bindingType);\n"
" public Set<Annotation> getStereotypeDefinition(Class<? extends "
"Annotation> stereotype);\n"
" public Context getContext(Class<? extends Annotation> scopeType);\n"
@@ -167,20 +343,21 @@
msgstr ""
#. Tag: para
-#: extend.xml:71
+#: extend.xml:163
#, fuzzy, no-c-format
msgid ""
-"We can obtain an instance of <literal>BeanManager</literal> via injection:"
+"Any bean or other Java EE component which supports injection can obtain an "
+"instance of <literal>BeanManager</literal> via injection:"
msgstr "我們可透過注入來取得 <literal>Manager</literal> 的一個 instance:"
#. Tag: programlisting
-#: extend.xml:73
+#: extend.xml:166
#, fuzzy, no-c-format
-msgid "@Inject BeanManager beanManager"
+msgid "@Inject BeanManager beanManager;"
msgstr "@Current Manager 管理員"
#. Tag: para
-#: extend.xml:75
+#: extend.xml:168
#, no-c-format
msgid ""
"Java EE components may obtain an instance of <literal>BeanManager</literal> "
@@ -190,7 +367,7 @@
msgstr ""
#. Tag: para
-#: extend.xml:81
+#: extend.xml:174
#, fuzzy, no-c-format
msgid ""
"Let's study some of the interfaces exposed by the <literal>BeanManager</"
@@ -198,25 +375,99 @@
msgstr "延伸 Web Bean 的神經中樞為 <literal>Manager</literal> 這個物件。"
#. Tag: title
-#: extend.xml:86
+#: extend.xml:179
#, fuzzy, no-c-format
+msgid "The <literal>InjectionTarget</literal> interface"
+msgstr "<literal>Context</literal> 介面"
+
+#. Tag: para
+#: extend.xml:181
+#, no-c-format
+msgid ""
+"The first thing that a framework developer is going to look for in the "
+"portable extension SPI is a way to inject CDI beans into objects which are "
+"not under the control of CDI. The <literal>InjectionTarget</literal> "
+"interface makes this very easy."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:188
+#, no-c-format
+msgid ""
+"We recommend that frameworks let CDI take over the job of actually "
+"instantiating the framework-controlled objects. That way, the framework-"
+"controlled objects can take advantage of constructor injection. However, if "
+"the framework requires use of a constructor with a special signature, the "
+"framework will need to instatiate the object itself, and so only method and "
+"field injection will be supported."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:196
+#, no-c-format
+msgid ""
+"<![CDATA[//get the BeanManager from JNDI\n"
+"BeanManager beanManager = (BeanManager) new InitialContext().lookup(\"java:"
+"comp/BeanManager\");\n"
+"\n"
+"//CDI uses an AnnotatedType object to read the annotations of a class\n"
+"AnnotatedType<SomeFrameworkComponent> type = beanManager.createAnnotatedType"
+"(SomeFrameworkComponent.class);\n"
+"\n"
+"//The extension uses an InjectionTarget to delegate instantiation, "
+"dependency injection \n"
+"//and lifecycle callbacks to the CDI container\n"
+"InjectionTarget<SomeFrameworkComponent> it = beanManager."
+"createInjectionTarget(type);\n"
+"\n"
+"//each instance needs its own CDI CreationalContext\n"
+"CreationalContext ctx = beanManager.createCreationalContext(null);\n"
+"\n"
+"//instantiate the framework component and inject its dependencies\n"
+"SomeFrameworkComponent instance = it.produce(ctx); //call the constructor\n"
+"it.inject(instance, ctx); //call initializer methods and perform field "
+"injection\n"
+"it.postConstruct(instance); //call the @PostConstruct method\n"
+"\n"
+"...\n"
+"\n"
+"//destroy the framework component instance and clean up dependent objects\n"
+"it.preDestroy(instance); //call the @PreDestroy method\n"
+"it.dispose(instance); //it is now safe to discard the instance\n"
+"ctx.release(); //clean up dependent objects\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: extend.xml:201
+#, fuzzy, no-c-format
msgid "The <literal>Bean</literal> interface"
msgstr "<literal>Context</literal> 介面"
#. Tag: para
-#: extend.xml:88
+#: extend.xml:203
#, 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."
+"<literal>BeanManager</literal> object for every bean in the application. "
+"There are even <literal>Bean</literal> objects representing interceptors, "
+"decorators and producer methods."
msgstr ""
"<literal>Bean</literal> 這個 abstract class 的 instance 代表 Web Bean。應用程"
"式中的每個 Web Bean 都會有個與 <literal>Manager</literal> 物件註冊的 "
"<literal>Bean</literal> instance。"
+#. Tag: para
+#: extend.xml:210
+#, no-c-format
+msgid ""
+"The <literal>Bean</literal> interface exposes all the interesting things we "
+"dicussed in <xref linkend=\"bean-anatomy\"/>."
+msgstr ""
+
#. Tag: programlisting
-#: extend.xml:94
+#: extend.xml:215
#, no-c-format
msgid ""
"<![CDATA[public interface Bean<T> extends Contextual<T> {\n"
@@ -233,16 +484,28 @@
msgstr ""
#. Tag: para
-#: extend.xml:96
+#: extend.xml:217
+#, no-c-format
+msgid "There's an easy way to find out what beans exist in the application:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:221
+#, no-c-format
+msgid ""
+"<![CDATA[Set<Bean<?>> allBeans = beanManager.getBeans(Obect.class, new "
+"AnnotationLiteral<Any>() {});]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:223
#, 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."
+"The <literal>Bean</literal> interface makes it possible for a portable "
+"extension 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 規格定義(基本與企"
@@ -250,25 +513,480 @@
"我們可使用 <literal>Bean</literal> class 來允許另一個架構所管理的物件被注入 "
"Web Bean 之中。"
+#. Tag: title
+#: extend.xml:233
+#, fuzzy, no-c-format
+msgid "Registering a <literal>Bean</literal>"
+msgstr "<literal>Bean</literal> class"
+
#. Tag: para
-#: extend.xml:104
-#, fuzzy, no-c-format
+#: extend.xml:235
+#, no-c-format
msgid ""
-"There are two subinterfaces of <literal>Bean</literal> defined by the CDI "
-"specification: <literal>Interceptor</literal> and <literal>Decorator</"
-"literal>."
+"The most common kind of CDI portable extension registers a bean (or beans) "
+"with the container."
msgstr ""
-"Web Bean 規格定義了 <literal>Bean</literal> 的兩個 subclass:"
-"<literal>Interceptor</literal> 和 <literal>Decorator</literal>。"
+#. Tag: para
+#: extend.xml:239
+#, no-c-format
+msgid ""
+"In this example, we make a framework class, <literal>SecurityManager</"
+"literal> available for injection. To make things a bit more interesting, "
+"we're going to delegate back to the container's <literal>InjectionTarget</"
+"literal> to perform instantiation and injection upon the "
+"<literal>SecurityManager</literal> instance."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:246
+#, no-c-format
+msgid ""
+"<![CDATA[public class SecurityManagerExtension implements Extension {\n"
+" \n"
+" void afterBeanDiscovery(@Observes AfterBeanDiscovery abd, BeanManager "
+"bm) {\n"
+" \n"
+" //use this to read annotations of the class\n"
+" AnnotatedType<SecurityManager> at = bm.createAnnotatedType"
+"(SecurityManager.class); \n"
+"\n"
+" //use this to instantiate the class and inject dependencies\n"
+" final InjectionTarget<SecurityManager> it = bm.createInjectionTarget"
+"(at); \n"
+"\n"
+" abd.addBean( new Bean<SecurityManager>() {\n"
+"\n"
+" @Override\n"
+" public Class<?> getBeanClass() {\n"
+" return SecurityManager.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public String getName() {\n"
+" return \"securityManager\";\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getQualifiers() {\n"
+" Set<Annotation> qualifiers = new HashSet<Annotation>();\n"
+" qualifiers.add( new AnnotationLiteral<Default>() {} );\n"
+" qualifiers.add( new AnnotationLiteral<Any>() {} );\n"
+" return qualifiers;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<? extends Annotation> getScope() {\n"
+" return SessionScoped.class;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Class<? extends Annotation>> getStereotypes() {\n"
+" return Collections.emptySet();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypes() {\n"
+" Set<Type> types = new HashSet<Type>();\n"
+" types.add(SecurityManager.class);\n"
+" types.add(Object.class);\n"
+" return types;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAlternative() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isNullable() {\n"
+" return false;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public SecurityManager create(CreationalContext<SecurityManager> "
+"ctx) {\n"
+" SecurityManager instance = it.produce(ctx);\n"
+" it.inject(instance, ctx);\n"
+" it.postConstruct(instance);\n"
+" return instance;\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void destroy(SecurityManager instance, \n"
+" CreationalContext<SecurityManager> ctx) {\n"
+" it.preDestroy(instance);\n"
+" it.dispose(instance);\n"
+" ctx.release();\n"
+" }\n"
+" \n"
+" } );\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:248
+#, no-c-format
+msgid ""
+"But a portable extension can also mess with beans that are discovered "
+"automatically by the container."
+msgstr ""
+
#. Tag: title
-#: extend.xml:112
+#: extend.xml:255
#, no-c-format
+msgid "Wrapping an <literal>AnnotatedType</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:257
+#, no-c-format
+msgid ""
+"One of the most interesting things that an extension class can do is process "
+"the annotations of a bean class <emphasis>before</emphasis> the container "
+"builds its metamodel."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:262
+#, no-c-format
+msgid ""
+"Let's start with an example of an extension that provides support for the "
+"use of <literal>@Named</literal> at the package level. The package-level "
+"name is used to qualify the EL names of all beans defined in that package. "
+"The portable extension uses the <literal>ProcessAnnotatedType</literal> "
+"event to wrap the <literal>AnnotatedType</literal> object and override the "
+"<literal>value()</literal> of the <literal>@Named</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:270
+#, no-c-format
+msgid ""
+"<![CDATA[public class QualifiedNameExtension implements Extension {\n"
+"\n"
+" <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) {\n"
+"\n"
+" //wrap this to override the annotations of the class\n"
+" final AnnotatedType<X> at = pat.getAnnotatedType();\n"
+" \n"
+" AnnotatedType<X> wrapped = new AnnotatedType<X>() {\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedConstructor<X>> getConstructors() {\n"
+" return at.getConstructors();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedField<? super X>> getFields() {\n"
+" return at.getFields();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Class<X> getJavaClass() {\n"
+" return at.getJavaClass();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<AnnotatedMethod<? super X>> getMethods() {\n"
+" return at.getMethods();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public <T extends Annotation> T getAnnotation(final Class<T> "
+"annType) {\n"
+" if ( Named.class.equals(annType) ) {\n"
+" class NamedLiteral \n"
+" extends AnnotationLiteral<Named> \n"
+" implements Named {\n"
+" @Override\n"
+" public String value() {\n"
+" Package pkg = at.getClass().getPackage();\n"
+" String unqualifiedName = at.getAnnotation(Named."
+"class).value();\n"
+" final String qualifiedName;\n"
+" if ( pkg.isAnnotationPresent(Named.class) ) {\n"
+" qualifiedName = pkg.getAnnotation(Named."
+"class).value() \n"
+" + '.' + unqualifiedName;\n"
+" }\n"
+" else {\n"
+" qualifiedName = unqualifiedName;\n"
+" }\n"
+" return qualifiedName;\n"
+" }\n"
+" }\n"
+" return (T) new NamedLiteral();\n"
+" }\n"
+" else {\n"
+" return at.getAnnotation(annType);\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Annotation> getAnnotations() {\n"
+" return at.getAnnotations();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Type getBaseType() {\n"
+" return at.getBaseType();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<Type> getTypeClosure() {\n"
+" return at.getTypeClosure();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annType) {\n"
+" return at.isAnnotationPresent(annType);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:272
+#, no-c-format
+msgid ""
+"Here's a second example, which adds the <literal>@Alternative</literal> "
+"annotation to any class which implements a certain <literal>Service</"
+"literal> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[class ServiceAlternativeExtension implements Extension {\n"
+" \n"
+" <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> pat) {\n"
+" \n"
+" final AnnotatedType<T> type = pat.getAnnotatedType();\n"
+" \n"
+" if ( Service.class.isAssignableFrom( type.getJavaClass() ) ) {\n"
+" \n"
+" //if the class implements Service, make it an @Alternative\n"
+" AnnotatedType<T> wrapped = new AnnotatedType<T>() {\n"
+" \n"
+" @Override\n"
+" public boolean isAnnotationPresent(Class<? extends Annotation> "
+"annotationType) {\n"
+" return annotationType.equals(Alternative.class) ? \n"
+" true : type.isAnnotationPresent(annotationType);\n"
+" }\n"
+" \n"
+" //remaining methods of AnnotatedType\n"
+" ...\n"
+" }\n"
+" \n"
+" pat.setAnnotatedType(wrapped);\n"
+" }\n"
+" } \n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:283
+#, no-c-format
+msgid ""
+"The <literal>AnnotatedType</literal> is not the only thing that can be "
+"wrapped by an extension."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:288
+#, no-c-format
+msgid "Wrapping an <literal>InjectionTarget</literal>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:290
+#, no-c-format
+msgid ""
+"The <literal>InjectionTarget</literal> interface exposes operations for "
+"producing and disposing an instance of a component, injecting its "
+"dependencies and invoking its lifecycle callbacks. A portable extension may "
+"wrap the <literal>InjectionTarget</literal> for any Java EE component that "
+"supports injection, allowing it to intercept any of these operations when "
+"they are invoked by the container."
+msgstr ""
+
+#. Tag: para
+#: extend.xml:297
+#, no-c-format
+msgid ""
+"Here's a CDI portable extension that reads values from properties files and "
+"configures fields of Java EE components, including servlets, EJBs, managed "
+"beans, interceptors and more. In this example, properties for a class such "
+"as <literal>org.mydomain.blog.Blogger</literal> go in a resource named "
+"<literal>org/mydomain/blog/Blogger.properties</literal>, and the name of a "
+"property must match the name of the field to be configured. So "
+"<literal>Blogger.properties</literal> could contain:"
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:305
+#, no-c-format
+msgid ""
+"firstName=Gavin\n"
+"lastName=King"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:307
+#, no-c-format
+msgid ""
+"The portable extension works by wrapping the containers "
+"<literal>InjectionTarget</literal> and setting field values from the "
+"<literal>inject()</literal> method."
+msgstr ""
+
+#. Tag: programlisting
+#: extend.xml:310
+#, no-c-format
+msgid ""
+"<![CDATA[public class ConfigExtension implements Extension {\n"
+"\n"
+" <X> void processInjectionTarget(@Observes ProcessInjectionTarget<X> "
+"pit) {\n"
+" \n"
+" //wrap this to intercept the component lifecycle\n"
+" final InjectionTarget<X> it = pit.getInjectionTarget();\n"
+" \n"
+" final Map<Field, Object> configuredValues = new HashMap<Field, "
+"Object>();\n"
+" \n"
+" //use this to read annotations of the class and its members\n"
+" AnnotatedType<X> at = pit.getAnnotatedType();\n"
+" \n"
+" //read the properties file\n"
+" String propsFileName = at.getClass().getSimpleName() + \".properties"
+"\";\n"
+" InputStream stream = at.getJavaClass().getResourceAsStream"
+"(propsFileName);\n"
+" if (stream!=null) {\n"
+" \n"
+" try {\n"
+" Properties props = new Properties();\n"
+" props.load(stream);\n"
+" for (Map.Entry<Object, Object> property : props.entrySet()) "
+"{\n"
+" String fieldName = property.getKey().toString();\n"
+" Object value = property.getValue();\n"
+" try {\n"
+" Field field = at.getJavaClass().getField"
+"(fieldName);\n"
+" field.setAccessible(true);\n"
+" if ( field.getType().isAssignableFrom( value.getClass"
+"() ) ) {\n"
+" configuredValues.put(field, value);\n"
+" }\n"
+" else {\n"
+" //TODO: do type conversion automatically\n"
+" pit.addDefinitionError( new InjectionException(\n"
+" \"field is not of type String: \" + "
+"field ) );\n"
+" }\n"
+" }\n"
+" catch (NoSuchFieldException nsfe) {\n"
+" pit.addDefinitionError(nsfe);\n"
+" }\n"
+" finally {\n"
+" stream.close();\n"
+" }\n"
+" }\n"
+" }\n"
+" catch (IOException ioe) {\n"
+" pit.addDefinitionError(ioe);\n"
+" }\n"
+" }\n"
+" \n"
+" InjectionTarget<X> wrapped = new InjectionTarget<X>() {\n"
+"\n"
+" @Override\n"
+" public void inject(X instance, CreationalContext<X> ctx) {\n"
+" it.inject(instance, ctx);\n"
+" \n"
+" //set the values onto the new instance of the component\n"
+" for (Map.Entry<Field, Object> configuredValue: "
+"configuredValues.entrySet()) {\n"
+" try {\n"
+" configuredValue.getKey().set(instance, "
+"configuredValue.getValue());\n"
+" }\n"
+" catch (Exception e) {\n"
+" throw new InjectionException(e);\n"
+" }\n"
+" }\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void postConstruct(X instance) {\n"
+" it.postConstruct(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void preDestroy(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public void dispose(X instance) {\n"
+" it.dispose(instance);\n"
+" }\n"
+"\n"
+" @Override\n"
+" public Set<InjectionPoint> getInjectionPoints() {\n"
+" return it.getInjectionPoints();\n"
+" }\n"
+"\n"
+" @Override\n"
+" public X produce(CreationalContext<X> ctx) {\n"
+" return it.produce(ctx);\n"
+" }\n"
+" \n"
+" };\n"
+" \n"
+" pit.setInjectionTarget(wrapped);\n"
+" \n"
+" }\n"
+" \n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: extend.xml:312
+#, no-c-format
+msgid ""
+"There's a lot more to the portable extension SPI than what we've discussed "
+"here. Check out the CDI spec or Javadoc for more information. For now, we'll "
+"just mention one more extension point."
+msgstr ""
+
+#. Tag: title
+#: extend.xml:320
+#, no-c-format
msgid "The <literal>Context</literal> interface"
msgstr "<literal>Context</literal> 介面"
#. Tag: para
-#: extend.xml:114
+#: extend.xml:322
#, fuzzy, no-c-format
msgid ""
"The <literal>Context</literal> interface supports addition of new scopes to "
@@ -278,7 +996,7 @@
"建功能進行延伸。"
#. Tag: programlisting
-#: extend.xml:119
+#: extend.xml:327
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface Context {\n"
@@ -300,7 +1018,7 @@
"}"
#. Tag: para
-#: extend.xml:121
+#: extend.xml:329
#, fuzzy, no-c-format
msgid ""
"For example, we might implement <literal>Context</literal> to add a business "
@@ -310,6 +1028,15 @@
"比方說,我們可能會實做 <literal>Context</literal> 來新增一個商業流程功能至 "
"Web Bean,或是為一個使用 Wicket 的應用程式新增對話功能上的支援。"
+#, fuzzy
+#~ 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> 的兩個 subclass:"
+#~ "<literal>Interceptor</literal> 和 <literal>Decorator</literal>。"
+
#~ msgid "Extending Web Beans"
#~ msgstr "延伸 Web Bean"
@@ -432,9 +1159,6 @@
#~ "\n"
#~ "}]]>"
-#~ msgid "The <literal>Bean</literal> class"
-#~ msgstr "<literal>Bean</literal> class"
-
#~ msgid ""
#~ "public abstract class Bean<T> {\n"
#~ " \n"
Modified: doc/trunk/reference/zh-TW/extensions.po
===================================================================
--- doc/trunk/reference/zh-TW/extensions.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/extensions.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -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-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-03-28 17:09+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -37,61 +37,51 @@
#, 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."
+"of a logger object into any CDI bean. Simply create an injection point of "
+"type <literal>org.slf4j.Logger</literal> and an appropriate logger object "
+"will be injected into any instance of the bean."
msgstr ""
#. Tag: programlisting
-#: extensions.xml:26
+#: extensions.xml:25
#, no-c-format
msgid ""
-"<![CDATA[import org.jboss.weld.annotation.Logger;\n"
-"import org.jboss.weld.log.Log;\n"
+"<![CDATA[import org.slf4j.Logger;\n"
+"import javax.inject.Inject;\n"
"\n"
"public class Checkout {\n"
-" private @Inject @Logger Log log;\n"
+" private @Inject Logger log;\n"
"\n"
" public void invoiceItems() {\n"
" ShoppingCart cart;\n"
" ...\n"
-" log.debug(\"Items invoiced for {0}\", cart);\n"
+" log.debug(\"Items invoiced for {}\", cart);\n"
" }\n"
"}]]>"
msgstr ""
#. Tag: para
-#: extensions.xml:28
+#: 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 "
-"<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."
+"The example shows how objects can be interpolated into a message. If you use "
+"this approach, you do not need to surround a call to the logger with a "
+"condition like <literal>if ( log.isDebugEnabled() )</literal> to avoid "
+"string concatenation."
msgstr ""
#. Tag: para
-#: extensions.xml:41
+#: extensions.xml:34
#, 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 "
+"You can add Weld logging 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:46
+#: extensions.xml:39
#, no-c-format
msgid ""
"If you are using Weld as your JSR-299 implementation, there's no need to "
Modified: doc/trunk/reference/zh-TW/gettingstarted.po
===================================================================
--- doc/trunk/reference/zh-TW/gettingstarted.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/gettingstarted.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: ri\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -156,9 +156,9 @@
#: gettingstarted.xml:83
#, no-c-format
msgid ""
-"To deploy the examples to JBoss AS, you'll need <ulink src=\"http://jboss."
+"To deploy the examples to JBoss AS, you'll need <ulink url=\"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="
+"JBoss AS 5.2 line isn't yet available, you can download a <ulink url="
"\"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 "
@@ -192,7 +192,7 @@
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."
+"<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:"
@@ -269,21 +269,24 @@
#, no-c-format
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 "
+"<ulink url=\"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
-#, no-c-format
+#, fuzzy, no-c-format
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>."
msgstr ""
+"在此我們將設置 context 路徑,它能提供給我們一個網址(<ulink url=\"http://"
+"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
+"translator</ulink>)。"
#. Tag: para
#: gettingstarted.xml:152
@@ -365,7 +368,7 @@
#, 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/"
+"bored, read the log messages), and visit <ulink url=\"http://localhost:8080/"
"weld-translator\">http://localhost:8080/weld-translator</ulink> to begin "
"pseudo-translating."
msgstr ""
@@ -401,10 +404,10 @@
#: gettingstarted.xml:221
#, no-c-format
msgid ""
-"To deploy the examples to GlassFish, you'll need the final <ulink src="
+"To deploy the examples to GlassFish, you'll need the final <ulink url="
"\"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/"
+"download a <ulink url=\"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, "
@@ -465,7 +468,7 @@
#: gettingstarted.xml:255
#, no-c-format
msgid ""
-"You deploy applications to GlassFish using the <ulink src=\"http://"
+"You deploy applications to GlassFish using the <ulink url=\"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 "
@@ -483,14 +486,14 @@
#, no-c-format
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 "
+"URL <ulink url=\"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://"
+"start it. You can see the examples running at either <ulink url=\"http://"
"localhost:7070/weld-numberguess\">http://localhost:7070/weld-numberguess</"
-"ulink> or <ulink src=\"http://localhost:7070/weld-translator\">http://"
+"ulink> or <ulink url=\"http://localhost:7070/weld-translator\">http://"
"localhost:7070/weld-translator</ulink>, depending on which example you "
"deployed."
msgstr ""
@@ -535,7 +538,7 @@
#, 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."
+"need to download Tomcat 6.0.18 or later from <ulink url=\"http://tomcat."
"apache.org/download-60.cgi\">tomcat.apache.org</ulink> and extract it."
msgstr ""
"接下來,請由 <ulink url=\"http://seamframework.org/Download\">seamframework."
@@ -680,7 +683,7 @@
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://"
+"pinpoint the random number at the local URL <ulink url=\"http://"
"localhost:8080/weld-numberguess\">http://localhost:8080/weld-numberguess</"
"ulink>!"
msgstr ""
@@ -867,7 +870,7 @@
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://"
+"URL: <ulink url=\"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 ""
@@ -947,7 +950,7 @@
"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"
+"application at the following local URL: <ulink url=\"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 ""
Modified: doc/trunk/reference/zh-TW/injection.po
===================================================================
--- doc/trunk/reference/zh-TW/injection.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/injection.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: injection\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -544,12 +544,55 @@
#. Tag: title
#: injection.xml:216
+#, fuzzy, no-c-format
+msgid ""
+"The built-in qualifiers <literal>@Default</literal> and <literal>@Any</"
+"literal>"
+msgstr ""
+"基本的 Web Bean 只支援 <literal>@PostConstruct</literal> 和 "
+"<literal>@PreDestroy</literal> callback。"
+
+#. Tag: para
+#: injection.xml:218
#, no-c-format
+msgid ""
+"Whenever a bean or injection point does not explicitly declare a qualifier, "
+"the container assumes the qualifier <literal>@Default</literal>. From time "
+"to time, you'll need to decare an injection point without specifying a "
+"qualifier. There's a qualifier for that too. All beans have the qualifier "
+"<literal>@Any</literal>. Therefore, by explicitly specifying <literal>@Any</"
+"literal> at an injection point, you suppress the default qualifier, without "
+"otherwise restricting the beans that are eligible for injection."
+msgstr ""
+
+#. Tag: para
+#: injection.xml:225
+#, no-c-format
+msgid ""
+"This is especially useful if you want to iterate over all beans with a "
+"certain bean type. For example:"
+msgstr ""
+
+#. Tag: programlisting
+#: injection.xml:226
+#, no-c-format
+msgid ""
+"<![CDATA[@Inject \n"
+"void initServices(@Any Instance<Service> services) { \n"
+" for (Service service: services) {\n"
+" service.init();\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: injection.xml:232
+#, no-c-format
msgid "Qualifiers with members"
msgstr ""
#. Tag: para
-#: injection.xml:218
+#: injection.xml:234
#, no-c-format
msgid ""
"Java annotations can have members. We can use annotation members to further "
@@ -560,7 +603,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:224
+#: injection.xml:240
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -578,14 +621,14 @@
"}]]>"
#. Tag: para
-#: injection.xml:226
+#: injection.xml:242
#, no-c-format
msgid ""
"Then we select one of the possible member values when appling the qualifier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:230
+#: injection.xml:246
#, fuzzy, no-c-format
msgid ""
"<![CDATA[private @Inject @PayBy(CHECK) PaymentProcessor checkPayment;]]>"
@@ -593,17 +636,17 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:232
+#: injection.xml:248
#, 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>."
+"annotating the member <literal>@Nonbinding</literal>."
msgstr ""
"您可藉由標記 <literal>@NonBinding</literal> 這個 member 來讓 Web Bean 管理員"
"忽略某個綁定標記類型的成員。"
#. Tag: programlisting
-#: injection.xml:237
+#: injection.xml:253
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Qualifier\n"
@@ -611,7 +654,7 @@
"@Target({METHOD, FIELD, PARAMETER, TYPE})\n"
"public @interface PayBy {\n"
" PaymentMethod value();\n"
-" @NonBinding String comment() default \"\";\n"
+" @Nonbinding String comment() default \"\";\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -622,19 +665,19 @@
"}]]>"
#. Tag: title
-#: injection.xml:242
+#: injection.xml:258
#, no-c-format
msgid "Multiple qualifiers"
msgstr ""
#. Tag: para
-#: injection.xml:244
+#: injection.xml:260
#, fuzzy, no-c-format
msgid "An injection point may specify multiple qualifiers:"
msgstr "一個注入點甚至有可能會指定多重綁定標記:"
#. Tag: programlisting
-#: injection.xml:248
+#: injection.xml:264
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Synchronous @Reliable PaymentProcessor "
@@ -643,7 +686,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:250
+#: injection.xml:266
#, fuzzy, no-c-format
msgid ""
"Then only a bean which has <emphasis>both</emphasis> qualifier annotations "
@@ -653,7 +696,7 @@
"入。"
#. Tag: programlisting
-#: injection.xml:255
+#: injection.xml:271
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Synchronous @Reliable\n"
@@ -668,13 +711,13 @@
"}]]>"
#. Tag: title
-#: injection.xml:260
+#: injection.xml:276
#, no-c-format
msgid "Alternatives"
msgstr ""
#. Tag: para
-#: injection.xml:262
+#: injection.xml:278
#, no-c-format
msgid ""
"Alternatives are beans whose implementation is specific to a particular "
@@ -684,7 +727,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:266
+#: injection.xml:282
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Alternative @Synchronous @Asynchronous\n"
@@ -698,7 +741,7 @@
"}]]>"
#. Tag: para
-#: injection.xml:268
+#: injection.xml:284
#, no-c-format
msgid ""
"By default, <literal>@Alternative</literal> beans are disabled. We need to "
@@ -708,7 +751,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:274
+#: injection.xml:290
#, no-c-format
msgid ""
"<![CDATA[<beans\n"
@@ -724,7 +767,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:276
+#: injection.xml:292
#, no-c-format
msgid ""
"When an ambiguous dependency exists at an injection point, the container "
@@ -734,13 +777,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:285
+#: injection.xml:301
#, fuzzy, no-c-format
msgid "Fixing unsatisfied and ambiguous dependencies"
msgstr "修正相依性不足(unsatisfied dependencies)的問題"
#. Tag: para
-#: injection.xml:287
+#: injection.xml:303
#, fuzzy, no-c-format
msgid ""
"The typesafe resolution algorithm fails when, after considering the "
@@ -755,7 +798,7 @@
"解析演算法便會失敗。"
#. Tag: para
-#: injection.xml:294
+#: injection.xml:310
#, no-c-format
msgid ""
"During the course of your development, you're going to encounter this "
@@ -763,13 +806,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:298
+#: injection.xml:314
#, no-c-format
msgid "To fix an <emphasis>unsatisfied dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:304
+#: injection.xml:320
#, no-c-format
msgid ""
"create a bean which implements the bean type and has all the qualifier types "
@@ -777,7 +820,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:309
+#: injection.xml:325
#, no-c-format
msgid ""
"make sure that the bean you already have is in the classpath of the module "
@@ -785,7 +828,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:314
+#: injection.xml:330
#, no-c-format
msgid ""
"explicitly enable an <literal>@Alternative</literal> bean that implements "
@@ -794,13 +837,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:321
+#: injection.xml:337
#, no-c-format
msgid "To fix an <emphasis>ambiguous dependency</emphasis>, either:"
msgstr ""
#. Tag: para
-#: injection.xml:327
+#: injection.xml:343
#, no-c-format
msgid ""
"introduce a qualifier to distinguish between the two implementations of the "
@@ -808,14 +851,14 @@
msgstr ""
#. Tag: para
-#: injection.xml:332
+#: injection.xml:348
#, no-c-format
msgid ""
"disable one of the beans by annotating it <literal>@Alternative</literal>,"
msgstr ""
#. Tag: para
-#: injection.xml:337
+#: injection.xml:353
#, no-c-format
msgid ""
"move one of the implementations to a module that is not in the classpath of "
@@ -823,7 +866,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:343
+#: injection.xml:359
#, no-c-format
msgid ""
"disable one of two <literal>@Alternative</literal> beans that are trying to "
@@ -831,10 +874,10 @@
msgstr ""
#. Tag: para
-#: injection.xml:350
+#: injection.xml:366
#, no-c-format
msgid ""
-"See <ulink src=\"http://sfwk.org/Documentation/"
+"See <ulink url=\"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 "
@@ -842,13 +885,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:358
+#: injection.xml:374
#, no-c-format
msgid "Just remember: \"There can be only one.\""
msgstr ""
#. Tag: para
-#: injection.xml:361
+#: injection.xml:377
#, no-c-format
msgid ""
"On the other hand, if you really do have an optional or multivalued "
@@ -857,7 +900,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:366
+#: injection.xml:382
#, fuzzy, no-c-format
msgid ""
"Now there's one more issue you need to be aware of when using the dependency "
@@ -865,13 +908,13 @@
msgstr "當您在 Web Bean 中使用依賴注入時,您還需要注意一個問題。"
#. Tag: title
-#: injection.xml:373
+#: injection.xml:389
#, no-c-format
msgid "Client proxies"
msgstr "客戶端代理伺服器(Client proxies)"
#. Tag: para
-#: injection.xml:375
+#: injection.xml:391
#, fuzzy, no-c-format
msgid ""
"Clients of an injected bean do not usually hold a direct reference to a bean "
@@ -881,7 +924,7 @@
"一個已注入的 Web Bean 的客戶端通常不會持有一個 Web Bean instance 的直接參照。"
#. Tag: para
-#: injection.xml:380
+#: injection.xml:396
#, fuzzy, no-c-format
msgid ""
"Imagine that a bean bound to the application scope held a direct reference "
@@ -894,7 +937,7 @@
"享。不過,各個請求都應要看見一個不同的請求 scope Web Bean 的 instance!"
#. Tag: para
-#: injection.xml:386
+#: injection.xml:402
#, fuzzy, no-c-format
msgid ""
"Now imagine that a bean bound to the session scope holds a direct reference "
@@ -910,7 +953,7 @@
"scope 的 Web Bean 一起被序列化!"
#. Tag: para
-#: injection.xml:393
+#: injection.xml:409
#, fuzzy, no-c-format
msgid ""
"Therefore, unless a bean has the default scope <literal>@Dependent</"
@@ -930,7 +973,7 @@
"context)的 Web Bean 被序列化至磁碟。"
#. Tag: para
-#: injection.xml:401
+#: injection.xml:417
#, fuzzy, no-c-format
msgid ""
"Unfortunately, due to limitations of the Java language, some Java types "
@@ -944,20 +987,20 @@
"傳一個 <literal>UnproxyableDependencyException</literal>。"
#. Tag: para
-#: injection.xml:407
+#: injection.xml:423
#, fuzzy, no-c-format
msgid "The following Java types cannot be proxied by the container:"
msgstr "下列 Java 類型無法被 Web Bean 管理員代理:"
#. Tag: para
-#: injection.xml:411
+#: injection.xml:427
#, fuzzy, no-c-format
msgid ""
"classes which don't have a non-private constructor with no parameters, and"
msgstr "沒有非私密 constructor 的無參數 class,以及"
#. Tag: para
-#: injection.xml:414
+#: injection.xml:430
#, no-c-format
msgid ""
"classes which are declared <literal>final</literal> or have a "
@@ -967,26 +1010,52 @@
"method 的 class、"
#. Tag: para
-#: injection.xml:419
+#: injection.xml:435
#, no-c-format
msgid "arrays and primitive types."
msgstr "陣列(array)與基本型別(primitive type)。"
#. Tag: para
-#: injection.xml:423
-#, fuzzy, no-c-format
+#: injection.xml:439
+#, 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 "
+"It's usually very easy to fix an unproxyable dependency problem. If an "
+"injection point of type <literal>X</literal> results in an unproxyable "
+"dependency, simply:"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:446
+#, no-c-format
+msgid "add a constructor with no parameters to <literal>X</literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:451
+#, no-c-format
+msgid ""
+"change the type of the injection point to <literal>Instance<X></"
+"literal>,"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:456
+#, no-c-format
+msgid ""
+"introduce an interface <literal>Y</literal>, implemented by the injected "
+"bean, and change the type of the injection point to <literal>Y</literal>, or"
+msgstr ""
+
+#. Tag: para
+#: injection.xml:462
+#, no-c-format
+msgid ""
+"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:430
+#: injection.xml:469
#, no-c-format
msgid ""
"A future release of Weld will likely support a non-standard workaround for "
@@ -994,7 +1063,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:437
+#: injection.xml:476
#, no-c-format
msgid ""
"Sun, IcedTea, Mac: <literal>Unsafe.allocateInstance()</literal> (The most "
@@ -1002,7 +1071,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:442
+#: injection.xml:481
#, no-c-format
msgid ""
"IBM, JRockit: <literal>ReflectionFactory.newConstructorForSerialization()</"
@@ -1010,19 +1079,19 @@
msgstr ""
#. Tag: para
-#: injection.xml:448
+#: injection.xml:487
#, no-c-format
msgid "But we didn't get around to implementing this yet."
msgstr ""
#. Tag: title
-#: injection.xml:457
+#: injection.xml:496
#, fuzzy, no-c-format
msgid "Obtaining a contextual instance by programmatic lookup"
msgstr "透過程式性的搜尋來取得一個 Web Bean"
#. Tag: para
-#: injection.xml:459
+#: injection.xml:498
#, no-c-format
msgid ""
"In certain situations, injection is not the most convenient way to obtain a "
@@ -1030,13 +1099,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:466
+#: injection.xml:505
#, no-c-format
msgid "the bean type or qualifiers vary dynamically at runtime, or"
msgstr ""
#. Tag: para
-#: injection.xml:471
+#: injection.xml:510
#, no-c-format
msgid ""
"depending upon the deployment, there may be no bean which satisfies the type "
@@ -1044,13 +1113,13 @@
msgstr ""
#. Tag: para
-#: injection.xml:476
+#: injection.xml:515
#, no-c-format
msgid "we would like to iterate over all beans of a certain type."
msgstr ""
#. Tag: para
-#: injection.xml:482
+#: injection.xml:521
#, fuzzy, no-c-format
msgid ""
"In these situations, the application may obtain an instance of the interface "
@@ -1059,13 +1128,13 @@
"應用程式可透過注入來取得 <literal>Manager</literal> 這個介面的一個 instance:"
#. Tag: programlisting
-#: injection.xml:487
+#: injection.xml:526
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:489
+#: injection.xml:528
#, fuzzy, no-c-format
msgid ""
"The <literal>get()</literal> method of <literal>Instance</literal> produces "
@@ -1075,25 +1144,25 @@
"deployment type"
#. Tag: programlisting
-#: injection.xml:493
+#: injection.xml:532
#, fuzzy, no-c-format
msgid "<![CDATA[PaymentProcessor p = paymentProcessorSource.get();]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:495
+#: injection.xml:534
#, no-c-format
msgid "Qualifiers can be specified in one of two ways:"
msgstr ""
#. Tag: para
-#: injection.xml:501
+#: injection.xml:540
#, no-c-format
msgid "by annotating the <literal>Instance</literal> injection point, or"
msgstr ""
#. Tag: para
-#: injection.xml:504
+#: injection.xml:543
#, fuzzy, no-c-format
msgid ""
"by passing qualifiers to the <literal>select()</literal> of <literal>Event</"
@@ -1103,13 +1172,13 @@
"<literal>@PreDestroy</literal> callback。"
#. Tag: para
-#: injection.xml:508
+#: injection.xml:547
#, no-c-format
msgid "Specifying the qualifiers at the injection point is much, much easier:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:512
+#: injection.xml:551
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Asynchronous Instance<PaymentProcessor> "
@@ -1118,7 +1187,7 @@
"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:514
+#: injection.xml:553
#, no-c-format
msgid ""
"Now, the <literal>PaymentProcessor</literal> returned by <literal>get()</"
@@ -1126,7 +1195,7 @@
msgstr ""
#. Tag: para
-#: injection.xml:519
+#: injection.xml:558
#, no-c-format
msgid ""
"Alternatively, we can specify the qualifier dynamically. First, we add the "
@@ -1135,14 +1204,14 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:524
+#: injection.xml:563
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Inject @Any Instance<PaymentProcessor> paymentProcessorSource;]]>"
msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
-#: injection.xml:526
+#: injection.xml:565
#, no-c-format
msgid ""
"Next, we need to obtain an instance of our qualifier type. Since annotatons "
@@ -1153,7 +1222,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:533
+#: injection.xml:572
#, fuzzy, no-c-format
msgid ""
"<![CDATA[abstract class AsynchronousQualifier\n"
@@ -1164,13 +1233,13 @@
" implements CreditCard {}]]>"
#. Tag: para
-#: injection.xml:535
+#: injection.xml:574
#, no-c-format
msgid "In some cases, we can use an anonymous class:"
msgstr ""
#. Tag: programlisting
-#: injection.xml:539
+#: injection.xml:578
#, fuzzy, no-c-format
msgid ""
"<![CDATA[PaymentProcessor p = paymentProcessorSource\n"
@@ -1182,14 +1251,14 @@
"AnnotationLiteral<CreditCard>(){});]]>"
#. Tag: para
-#: injection.xml:542
+#: injection.xml:581
#, no-c-format
msgid ""
"We can't use an anonymous class to implement a qualifier type with members."
msgstr ""
#. Tag: para
-#: injection.xml:547
+#: injection.xml:586
#, no-c-format
msgid ""
"Now, finally, we can pass the qualifier to the <literal>select()</literal> "
@@ -1197,7 +1266,7 @@
msgstr ""
#. Tag: programlisting
-#: injection.xml:551
+#: injection.xml:590
#, no-c-format
msgid ""
"<![CDATA[Annotation qualifier = synchronously ?\n"
@@ -1207,13 +1276,13 @@
msgstr ""
#. Tag: title
-#: injection.xml:556
+#: injection.xml:595
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
msgstr "<literal>InjectionPoint</literal> 物件"
#. Tag: para
-#: injection.xml:558
+#: injection.xml:597
#, fuzzy, no-c-format
msgid ""
"There are certain kinds of dependent objects (beans with scope "
@@ -1226,7 +1295,7 @@
"本應進行的工作。比方說:"
#. Tag: para
-#: injection.xml:564
+#: injection.xml:603
#, no-c-format
msgid ""
"The log category for a <literal>Logger</literal> depends upon the class of "
@@ -1234,7 +1303,7 @@
msgstr "<literal>Logger</literal> 的 log category 取決於擁有它的物件的 class。"
#. Tag: para
-#: injection.xml:568
+#: injection.xml:607
#, no-c-format
msgid ""
"Injection of a HTTP parameter or header value depends upon what parameter or "
@@ -1243,7 +1312,7 @@
"HTTP 參數或是 header value 的注入取決於在注入點所指定的參數或標頭名稱。"
#. Tag: para
-#: injection.xml:572
+#: injection.xml:611
#, no-c-format
msgid ""
"Injection of the result of an EL expression evaluation depends upon the "
@@ -1253,7 +1322,7 @@
"式。"
#. Tag: para
-#: injection.xml:577
+#: injection.xml:616
#, fuzzy, no-c-format
msgid ""
"A bean with scope <literal>@Dependent</literal> may inject an instance of "
@@ -1265,7 +1334,7 @@
"metadata。"
#. Tag: para
-#: injection.xml:581
+#: injection.xml:620
#, no-c-format
msgid ""
"Let's look at an example. The following code is verbose, and vulnerable to "
@@ -1275,13 +1344,13 @@
"點:"
#. Tag: programlisting
-#: injection.xml:584
+#: injection.xml:623
#, 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:586
+#: injection.xml:625
#, no-c-format
msgid ""
"This clever little producer method lets you inject a JDK <literal>Logger</"
@@ -1291,7 +1360,7 @@
"<literal>Logger</literal>:"
#. Tag: programlisting
-#: injection.xml:589
+#: injection.xml:628
#, no-c-format
msgid ""
"<![CDATA[class LogFactory {\n"
@@ -1313,19 +1382,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:591
+#: injection.xml:630
#, no-c-format
msgid "We can now write:"
msgstr "現在我們可寫入:"
#. Tag: programlisting
-#: injection.xml:593
+#: injection.xml:632
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject Logger log;]]>"
msgstr "<![CDATA[@Current Logger log;]]>"
#. Tag: para
-#: injection.xml:595
+#: injection.xml:634
#, fuzzy, no-c-format
msgid ""
"Not convinced? Then here's a second example. To inject HTTP parameters, we "
@@ -1335,14 +1404,14 @@
"綁定類型:"
#. Tag: programlisting
-#: injection.xml:598
-#, no-c-format
+#: injection.xml:637
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[@BindingType\n"
"@Retention(RUNTIME)\n"
"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
"public @interface HttpParam {\n"
-" @NonBinding public String value();\n"
+" @Nonbinding public String value();\n"
"}]]>"
msgstr ""
"<![CDATA[@BindingType\n"
@@ -1353,13 +1422,13 @@
"}]]>"
#. Tag: para
-#: injection.xml:600
+#: injection.xml:639
#, fuzzy, no-c-format
msgid "We would use this qualifier type at injection points as follows:"
msgstr "我們可如下在注入點使用此綁定類型:"
#. Tag: programlisting
-#: injection.xml:602
+#: injection.xml:641
#, no-c-format
msgid ""
"<![CDATA[@HttpParam(\"username\") String username;\n"
@@ -1369,21 +1438,21 @@
"@HttpParam(\"password\") String password;]]>"
#. Tag: para
-#: injection.xml:604
+#: injection.xml:643
#, no-c-format
msgid "The following producer method does the work:"
msgstr "下列 producer method 可完成此工作:"
#. Tag: programlisting
-#: injection.xml:606
-#, no-c-format
+#: injection.xml:645
+#, fuzzy, 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.getAnnotated().getAnnotation(HttpParam."
+"class).value());\n"
" }\n"
"\n"
"}]]>"
@@ -1399,19 +1468,19 @@
"}]]>"
#. Tag: para
-#: injection.xml:608
+#: injection.xml:647
#, 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>)"
+"<literal>@Nonbinding.</literal>)"
msgstr ""
"(請注意,<literal>HttpParam</literal> 標記的 <literal>value()</literal> 成員"
"已被 Web Bean 管理員忽略掉,因為它已被標記為 <literal>@NonBinding.</"
"literal>)"
#. Tag: para
-#: injection.xml:611
+#: injection.xml:650
#, fuzzy, no-c-format
msgid ""
"The container provides a built-in bean that implements the "
@@ -1421,15 +1490,17 @@
"Bean:"
#. Tag: programlisting
-#: injection.xml:614
-#, no-c-format
+#: injection.xml:653
+#, fuzzy, no-c-format
msgid ""
"<![CDATA[public interface InjectionPoint { \n"
-" public Object getInstance(); \n"
-" public Bean<?> getBean(); \n"
-" public Member getMember(): \n"
-" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
-" public Set<T extends Annotation> getAnnotations(); \n"
+" public Type getType();\n"
+" public Set<Annotation> getQualifiers();\n"
+" public Bean<?> getBean();\n"
+" public Member getMember();\n"
+" public Annotated getAnnotated();\n"
+" public boolean isDelegate();\n"
+" public boolean isTransient();\n"
"}]]>"
msgstr ""
"<![CDATA[public interface InjectionPoint { \n"
@@ -1440,7 +1511,18 @@
" public Set<T extends Annotation> getAnnotations(); \n"
"}]]>"
+#, fuzzy
#~ 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> 通常相當容易。只"
+#~ "要將一個無參數的 constructor 附加至注入的 class、採用一個介面,或將已注入"
+#~ "的 Web Bean 的 scope 更改為 <literal>@Dependent</literal> 即可。"
+
+#~ msgid ""
#~ "Web Beans supports three primary mechanisms for dependency injection:"
#~ msgstr "Web Bean 支援了三個主要的依賴注入機制:"
Modified: doc/trunk/reference/zh-TW/interceptors.po
===================================================================
--- doc/trunk/reference/zh-TW/interceptors.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/interceptors.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: interceptors\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -466,7 +466,7 @@
"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:"
+"We can use the <literal>@Nonbinding</literal> annotation:"
msgstr ""
"當綁定攔截器時,若我們只有一個攔截器而我們希望管理員忽略 "
"<literal>requiresNew</literal> 的值時該怎麼辦呢?這時我們可使用 "
@@ -480,7 +480,7 @@
"@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"
Modified: doc/trunk/reference/zh-TW/next.po
===================================================================
--- doc/trunk/reference/zh-TW/next.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/next.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: next\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -28,10 +28,10 @@
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 "
+"remains the authority for information on CDI. The spec is 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-"
+"is available on the <ulink url=\"http://jcp.org/en/jsr/detail?id=299\">JSR-"
"299 page</ulink> at the JCP website."
msgstr ""
@@ -39,9 +39,9 @@
#: next.xml:14
#, fuzzy, no-c-format
msgid ""
-"The CDI reference implementation, Weld, is being developed at the <ulink src="
+"The CDI reference implementation, Weld, is being developed at the <ulink url="
"\"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."
+"team and the CDI spec lead blog at <ulink url=\"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 "
@@ -55,9 +55,9 @@
#: next.xml:22
#, no-c-format
msgid ""
-"We encourage you to follow the <ulink src=\"https://lists.jboss.org/mailman/"
+"We encourage you to follow the <ulink url=\"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 url=\"http://seamframework.org/Weld/Development\">development</"
"ulink>. If you are reading this guide, you likely have something to offer."
msgstr ""
@@ -74,7 +74,7 @@
#: next.xml:35
#, no-c-format
msgid ""
-"Checkout source from <ulink src=\"http://anonsvn.jboss.org/repos/weld/doc/"
+"Checkout source from <ulink url=\"http://anonsvn.jboss.org/repos/weld/doc/"
"trunk/reference\">http://anonsvn.jboss.org/repos/weld/doc/trunk/reference</"
"ulink> using SVN"
msgstr ""
@@ -91,8 +91,9 @@
#: 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)."
+"Edit the <literal>pom.xml</literal> file in the root of the checkout and "
+"remove the \"<literal>-SNAPSHOT</literal>\" from the version element (so you "
+"don't have to build other Weld modules)."
msgstr ""
#. Tag: para
@@ -120,7 +121,8 @@
#, 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"
+"You can find the HTML version in <literal>target/docbook/publish/en-US/html</"
+"literal>."
msgstr ""
#. Tag: para
Modified: doc/trunk/reference/zh-TW/part1.po
===================================================================
--- doc/trunk/reference/zh-TW/part1.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/part1.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: part1\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -20,7 +20,7 @@
#: part1.xml:14
#, fuzzy, no-c-format
msgid ""
-"The <ulink src=\"http://jcp.org/en/jsr/detail?id=299\">JSR-299</ulink> "
+"The <ulink url=\"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 "
@@ -343,7 +343,7 @@
#: part1.xml:197
#, no-c-format
msgid ""
-"Finally, CDI is a <ulink src=\"http://jcp.org\">Java Community Process</"
+"Finally, CDI is a <ulink url=\"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/zh-TW/producermethods.po
===================================================================
--- doc/trunk/reference/zh-TW/producermethods.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/producermethods.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: producermethods\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -225,14 +225,27 @@
"將會被綁定至 session context。Producer method 將不會在相同的 session 中再次被"
"調用。"
+#. Tag: para
+#: producermethods.xml:95
+#, no-c-format
+msgid ""
+"A producer method does <emphasis>not</emphasis> inherit the scope of the "
+"bean that declares the method. There are two different beans here: the "
+"producer method, and the bean which declares it. The scope of the producer "
+"method determines how often the method will be called, and the lifecycle of "
+"the objects returned by the method. The scope of the bean that declares the "
+"producer method determines the lifecycle of the object upon which the "
+"producer method is invoked."
+msgstr ""
+
#. Tag: title
-#: producermethods.xml:97
+#: producermethods.xml:107
#, no-c-format
msgid "Injection into producer methods"
msgstr "注入 producer method"
#. Tag: para
-#: producermethods.xml:99
+#: producermethods.xml:109
#, no-c-format
msgid ""
"There's one potential problem with the code above. The implementations of "
@@ -247,7 +260,7 @@
"攔截器。"
#. Tag: para
-#: producermethods.xml:106
+#: producermethods.xml:116
#, fuzzy, no-c-format
msgid ""
"If this isn't what we want, we can use dependency injection into the "
@@ -257,7 +270,7 @@
"Bean 的 instance:"
#. Tag: programlisting
-#: producermethods.xml:111
+#: producermethods.xml:121
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -285,7 +298,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:113
+#: producermethods.xml:123
#, fuzzy, no-c-format
msgid ""
"Wait, what if <literal>CreditCardPaymentStrategy</literal> is a request-"
@@ -306,7 +319,7 @@
"外小心!"
#. Tag: para
-#: producermethods.xml:122
+#: producermethods.xml:132
#, fuzzy, no-c-format
msgid ""
"There's at least three ways we could go about fixing this bug. We could "
@@ -321,7 +334,7 @@
"<literal>@Dependent</literal> 或 <literal>@RequestScoped</literal>。"
#. Tag: para
-#: producermethods.xml:129
+#: producermethods.xml:139
#, fuzzy, no-c-format
msgid ""
"But a more common solution is to use the special <literal>@New</literal> "
@@ -329,19 +342,19 @@
msgstr "不過較普遍的解決方式就是使用特殊的 <literal>@New</literal> 綁定標記。"
#. Tag: title
-#: producermethods.xml:134
+#: producermethods.xml:144
#, no-c-format
msgid "Use of <literal>@New</literal> with producer methods"
msgstr "使用 <literal>@New</literal> 和 producer method"
#. Tag: para
-#: producermethods.xml:136
+#: producermethods.xml:146
#, no-c-format
msgid "Consider the following producer method:"
msgstr "考慮下列 producer method:"
#. Tag: programlisting
-#: producermethods.xml:138
+#: producermethods.xml:148
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@Produces @Preferred @SessionScoped\n"
@@ -373,7 +386,7 @@
"}]]>"
#. Tag: para
-#: producermethods.xml:140
+#: producermethods.xml:150
#, no-c-format
msgid ""
"Then a new <emphasis>dependent</emphasis> instance of "
@@ -390,13 +403,13 @@
"件不會被毀掉。"
#. Tag: title
-#: producermethods.xml:150
+#: producermethods.xml:160
#, fuzzy, no-c-format
msgid "Disposer methods"
msgstr "Producer method"
#. Tag: para
-#: producermethods.xml:152
+#: producermethods.xml:162
#, no-c-format
msgid ""
"Some producer methods return objects that require explicit destruction. For "
@@ -404,7 +417,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:157
+#: producermethods.xml:167
#, no-c-format
msgid ""
"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
@@ -413,7 +426,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:159
+#: producermethods.xml:169
#, no-c-format
msgid ""
"Destruction can be performed by a matching <emphasis>disposer method</"
@@ -421,7 +434,7 @@
msgstr ""
#. Tag: programlisting
-#: producermethods.xml:162
+#: producermethods.xml:172
#, no-c-format
msgid ""
"<![CDATA[void close(@Disposes Connection connection) {\n"
@@ -430,7 +443,7 @@
msgstr ""
#. Tag: para
-#: producermethods.xml:164
+#: producermethods.xml:174
#, no-c-format
msgid ""
"The disposer method must have at least one parameter, annotated "
Modified: doc/trunk/reference/zh-TW/resources.po
===================================================================
--- doc/trunk/reference/zh-TW/resources.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/resources.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -66,6 +66,45 @@
#: resources.xml:33
#, no-c-format
msgid ""
+"The CDI specification uses the term <emphasis>resource</emphasis> to refer, "
+"generically, to any of the following kinds of object which might be "
+"available in the Java EE component environment:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:38
+#, no-c-format
+msgid ""
+"JDBC <literal>Datasource</literal>s, JMS <literal>Queue</literal>s, "
+"<literal>Topic</literal>s and <literal>ConnectionFactory</literal>s, "
+"JavaMail <literal>Session</literal>s and other transactional resources "
+"including JCA connectors,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:43
+#, no-c-format
+msgid ""
+"JPA <literal>EntityManager</literal>s and <literal>EntityManagerFactory</"
+"literal>s,"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:46
+#, no-c-format
+msgid "remote EJBs, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:49
+#, no-c-format
+msgid "web services"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:53
+#, 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>, "
@@ -73,7 +112,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:37
+#: resources.xml:57
#, no-c-format
msgid ""
"<![CDATA[@Produces @WebServiceRef(lookup=\"java:app/service/Catalog\")\n"
@@ -81,7 +120,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:39
+#: resources.xml:59
#, no-c-format
msgid ""
"<![CDATA[@Produces @Resource(lookup=\"java:global/env/jdbc/CustomerDatasource"
@@ -90,7 +129,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:41
+#: resources.xml:61
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceContext(unitName=\"CustomerDatabase\")\n"
@@ -98,7 +137,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:43
+#: resources.xml:63
#, no-c-format
msgid ""
"<![CDATA[@Produces @PersistenceUnit(unitName=\"CustomerDatabase\") \n"
@@ -106,7 +145,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:45
+#: resources.xml:65
#, no-c-format
msgid ""
"<![CDATA[@Produces @EJB(ejbLink=\"../their.jar#PaymentService\") \n"
@@ -114,47 +153,69 @@
msgstr ""
#. Tag: para
-#: resources.xml:47
+#: resources.xml:67
#, no-c-format
msgid "The field may be static (but not final)."
msgstr ""
#. Tag: para
-#: resources.xml:49
+#: resources.xml:69
#, no-c-format
+msgid "A resource declaration really contains two pieces of information:"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:73
+#, no-c-format
msgid ""
+"the JNDI name, EJB link, persistence unit name, or other metadata needed to "
+"obtain a reference to the resource from the component environment, and"
+msgstr ""
+
+#. Tag: para
+#: resources.xml:77
+#, no-c-format
+msgid ""
+"the type and qualifiers that we will use to inject the reference into our "
+"beans."
+msgstr ""
+
+#. Tag: para
+#: resources.xml:82
+#, 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</"
+"sense to declare your resources in a class annotated <literal>@Alternative</"
"literal>."
msgstr ""
#. Tag: title
-#: resources.xml:56
+#: resources.xml:90
#, no-c-format
msgid "Typesafe resource injection"
msgstr ""
#. Tag: para
-#: resources.xml:58
+#: resources.xml:92
#, no-c-format
msgid "These resources can now be injected in the usual way."
msgstr ""
#. Tag: programlisting
-#: resources.xml:62
+#: resources.xml:96
#, no-c-format
msgid "<![CDATA[@Inject Catalog catalog;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:63
+#: resources.xml:97
#, no-c-format
msgid "<![CDATA[@Inject @CustomerDatabase Datasource customerDatabase;]]>"
msgstr ""
#. Tag: programlisting
-#: resources.xml:64
+#: resources.xml:98
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManager "
@@ -162,7 +223,7 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:65
+#: resources.xml:99
#, no-c-format
msgid ""
"<![CDATA[@Inject @CustomerDatabase EntityManagerFactory "
@@ -170,13 +231,13 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:66
+#: resources.xml:100
#, no-c-format
msgid "<![CDATA[@Inject PaymentService paymentService;]]>"
msgstr ""
#. Tag: para
-#: resources.xml:68
+#: resources.xml:102
#, no-c-format
msgid ""
"The bean type and qualifiers of the resource are determined by the producer "
@@ -184,7 +245,7 @@
msgstr ""
#. Tag: para
-#: resources.xml:72
+#: resources.xml:106
#, no-c-format
msgid ""
"It might seem like a pain to have to write these extra producer field "
@@ -196,25 +257,25 @@
msgstr ""
#. Tag: programlisting
-#: resources.xml:79
+#: resources.xml:113
#, no-c-format
msgid "@Inject @CustomerDatabase EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:81
+#: resources.xml:115
#, no-c-format
msgid "instead of"
msgstr ""
#. Tag: programlisting
-#: resources.xml:83
+#: resources.xml:117
#, no-c-format
msgid "@PersistenceContext(unitName=\"CustomerDatabase\") EntityManager"
msgstr ""
#. Tag: para
-#: resources.xml:85
+#: resources.xml:119
#, 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 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/ri-spi.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: ri-spi\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -807,6 +807,18 @@
#. Tag: para
#: ri-spi.xml:497
+#, fuzzy, no-c-format
+msgid ""
+"If you are integrating Weld into a JSF environment you must register "
+"<literal>org.jboss.weld.jsf.ConversationAwareViewHandler</literal> as a "
+"delegating view handler."
+msgstr ""
+"若您要將 Web Bean 整合入一個 Servlet 環境中,您就必須為各個使用 Servlet 的 "
+"Web Bean 應用程式透過自動的方式,或是用戶配置來將 <literal>org.jboss."
+"webbeans.servlet.WebBeansListener</literal> 註冊為一個 Servlet listener,"
+
+#. Tag: para
+#: ri-spi.xml:502
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -818,7 +830,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:504
+#: ri-spi.xml:509
#, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must obtain the bean "
@@ -828,7 +840,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:511 ri-spi.xml:557
+#: ri-spi.xml:516 ri-spi.xml:562
#, no-c-format
msgid ""
"There are a number of ways you can obtain the bean manager for the module. "
@@ -838,7 +850,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:518
+#: ri-spi.xml:523
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSF environment you must register "
@@ -852,19 +864,19 @@
"webbeans.servlet.WebBeansListener</literal> 註冊為一個 Servlet listener,"
#. Tag: para
-#: ri-spi.xml:526
+#: ri-spi.xml:531
#, no-c-format
msgid "Weld only supports JSF 1.2 and above."
msgstr ""
#. Tag: term
-#: ri-spi.xml:533
+#: ri-spi.xml:538
#, no-c-format
msgid "<term>JSP</term>"
msgstr ""
#. Tag: para
-#: ri-spi.xml:538
+#: ri-spi.xml:543
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must register "
@@ -876,7 +888,7 @@
"webbeans.servlet.WebBeansListener</literal> 註冊為一個 Servlet listener,"
#. Tag: para
-#: ri-spi.xml:543
+#: ri-spi.xml:548
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -887,7 +899,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:550
+#: ri-spi.xml:555
#, no-c-format
msgid ""
"If you are integrating Weld into a JSP environment you must obtain the bean "
@@ -897,13 +909,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:567
+#: ri-spi.xml:572
#, no-c-format
msgid "Session Bean Interceptor"
msgstr "Session Bean 攔截器"
#. Tag: para
-#: ri-spi.xml:571
+#: ri-spi.xml:576
#, fuzzy, no-c-format
msgid ""
"If you are integrating Weld into an EJB environment you must register "
@@ -918,7 +930,7 @@
"註冊為一個 EJB 攔截器。"
#. Tag: para
-#: ri-spi.xml:578
+#: ri-spi.xml:583
#, no-c-format
msgid ""
"You must register the <literal>SessionBeanInterceptor</literal> as the inner "
@@ -926,13 +938,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:586
+#: ri-spi.xml:591
#, fuzzy, no-c-format
msgid "The <literal>weld-core.jar</literal>"
msgstr "<literal>webbeans-ri.jar</literal>"
#. Tag: para
-#: ri-spi.xml:590
+#: ri-spi.xml:595
#, no-c-format
msgid ""
"Weld can reside on an isolated classloader, or on a shared classloader. If "
@@ -944,7 +956,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:596
+#: ri-spi.xml:601
#, no-c-format
msgid ""
"You can provide your own implementation of <literal>Singleton</literal> and "
@@ -953,7 +965,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:601
+#: ri-spi.xml:606
#, no-c-format
msgid ""
"Weld also provides an implementation of Thread Context Classloader per "
@@ -961,13 +973,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:608
+#: ri-spi.xml:613
#, no-c-format
msgid "Binding the manager in JNDI"
msgstr ""
#. Tag: para
-#: ri-spi.xml:612
+#: ri-spi.xml:617
#, no-c-format
msgid ""
"You should bind the bean manager for the bean deployment archive into JNDI "
@@ -978,13 +990,13 @@
msgstr ""
#. Tag: term
-#: ri-spi.xml:622
+#: ri-spi.xml:627
#, no-c-format
msgid "Performing CDI injection on Java EE component classes"
msgstr ""
#. Tag: para
-#: ri-spi.xml:626
+#: ri-spi.xml:631
#, no-c-format
msgid ""
"The CDI specification requires the container to provide injection into non-"
@@ -996,7 +1008,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:634
+#: ri-spi.xml:639
#, no-c-format
msgid ""
"The CDI specification also requires that a <literal>ProcessInjectionTarget</"
@@ -1007,7 +1019,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:641
+#: ri-spi.xml:646
#, no-c-format
msgid ""
"To help the integrator, Weld provides <literal>WeldManager."
@@ -1016,7 +1028,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:646
+#: ri-spi.xml:651
#, no-c-format
msgid ""
"<![CDATA[// Fire ProcessInjectionTarget, returning the InjectionTarget\n"
@@ -1044,7 +1056,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:647
+#: ri-spi.xml:652
#, no-c-format
msgid ""
"The container may intersperse other operations between these calls. Further, "
@@ -1053,7 +1065,7 @@
msgstr ""
#. Tag: para
-#: ri-spi.xml:651
+#: ri-spi.xml:656
#, no-c-format
msgid ""
"When performing injections on EJBs you must use the Weld-defined SPI, "
@@ -1063,7 +1075,7 @@
msgstr ""
#. Tag: programlisting
-#: ri-spi.xml:656
+#: ri-spi.xml:661
#, no-c-format
msgid ""
"<![CDATA[// Obtain the EjbDescriptor for the EJB\n"
Modified: doc/trunk/reference/zh-TW/scopescontexts.po
===================================================================
--- doc/trunk/reference/zh-TW/scopescontexts.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/scopescontexts.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: scopescontexts\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-11-11 15:00+0000\n"
+"POT-Creation-Date: 2010-01-06 12:17+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"
@@ -76,18 +76,23 @@
#: 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."
+"JPA entities aren't a great fit for this model. Entities have their whole "
+"own lifecycle and identity model which just doesn't map naturally to the "
+"model used in CDI. Therefore, we recommend against treating entities as CDI "
+"beans. You're certainly going to run into problems if you try to give an "
+"entity a scope other than the default scope <literal>@Dependent</literal>. "
+"The client proxy will get in the way if you try to pass an injected instance "
+"to the JPA <literal>EntityManager</literal>."
msgstr ""
#. Tag: title
-#: scopescontexts.xml:41
+#: scopescontexts.xml:45
#, no-c-format
msgid "Scope types"
msgstr "Scope type"
#. Tag: para
-#: scopescontexts.xml:43
+#: scopescontexts.xml:47
#, fuzzy, no-c-format
msgid ""
"CDI features an <emphasis>extensible context model</emphasis>. It's possible "
@@ -97,7 +102,7 @@
"型)</emphasis>。您可藉由建立新的 scope 類型標記來定義新的 scope:"
#. Tag: programlisting
-#: scopescontexts.xml:48
+#: scopescontexts.xml:52
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ScopeType\n"
@@ -111,7 +116,7 @@
"public @interface ClusterScoped {}]]>"
#. Tag: para
-#: scopescontexts.xml:50
+#: scopescontexts.xml:54
#, fuzzy, no-c-format
msgid ""
"Of course, that's the easy part of the job. For this scope type to be "
@@ -127,7 +132,7 @@
"(framework development)上。"
#. Tag: para
-#: scopescontexts.xml:57
+#: scopescontexts.xml:61
#, fuzzy, no-c-format
msgid ""
"We can apply a scope type annotation to a bean implementation class to "
@@ -137,7 +142,7 @@
"scope:"
#. Tag: programlisting
-#: scopescontexts.xml:61
+#: scopescontexts.xml:65
#, no-c-format
msgid ""
"<![CDATA[@ClusterScoped\n"
@@ -147,55 +152,55 @@
"public class SecondLevelCache { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:63
+#: scopescontexts.xml:67
#, fuzzy, no-c-format
msgid "Usually, you'll use one of CDI's built-in scopes."
msgstr "您通常會使用到其中一個 Web Bean 的內建 scope。"
#. Tag: title
-#: scopescontexts.xml:68
+#: scopescontexts.xml:72
#, no-c-format
msgid "Built-in scopes"
msgstr "內建 scope"
#. Tag: para
-#: scopescontexts.xml:70
+#: scopescontexts.xml:74
#, fuzzy, no-c-format
msgid "CDI defines four built-in scopes:"
msgstr "Web Bean 定義了四個內建的 scope:"
#. Tag: literal
-#: scopescontexts.xml:74
+#: scopescontexts.xml:78
#, no-c-format
msgid "@RequestScoped"
msgstr "@RequestScoped"
#. Tag: literal
-#: scopescontexts.xml:77
+#: scopescontexts.xml:81
#, no-c-format
msgid "@SessionScoped"
msgstr "@SessionScoped"
#. Tag: literal
-#: scopescontexts.xml:80
+#: scopescontexts.xml:84
#, no-c-format
msgid "@ApplicationScoped"
msgstr "@ApplicationScoped"
#. Tag: literal
-#: scopescontexts.xml:83
+#: scopescontexts.xml:87
#, no-c-format
msgid "@ConversationScoped"
msgstr "@ConversationScoped"
#. Tag: para
-#: scopescontexts.xml:87
+#: scopescontexts.xml:91
#, fuzzy, no-c-format
msgid "For a web application that uses CDI:"
msgstr "使用 Web Bean 的網站應用程式:"
#. Tag: para
-#: scopescontexts.xml:91
+#: scopescontexts.xml:95
#, no-c-format
msgid ""
"any servlet request has access to active request, session and application "
@@ -204,51 +209,63 @@
"任何 servlet 請求都可存取 active request、session 和應用程式 scope,另外"
#. Tag: para
-#: scopescontexts.xml:96
+#: scopescontexts.xml:100
#, no-c-format
msgid "any JSF request has access to an active conversation scope."
msgstr "任何 JSF 請求也都能存取一個現行的 conversation scope。"
#. Tag: para
-#: scopescontexts.xml:101
+#: scopescontexts.xml:105
#, no-c-format
msgid ""
-"A CDI extension can support the conversation scope for other frameworks as "
-"well."
+"A CDI extension can implement support for the conversation scope in other "
+"web frameworks."
msgstr ""
#. Tag: para
-#: scopescontexts.xml:104
+#: scopescontexts.xml:108
#, no-c-format
msgid "The request and application scopes are also active:"
msgstr "請求和應用程式 scope 在下列情況中會是有效的:"
#. Tag: para
-#: scopescontexts.xml:108
+#: scopescontexts.xml:112
#, no-c-format
msgid "during invocations of EJB remote methods,"
msgstr "當調用 EJB 的遠端 method 時、"
#. Tag: para
-#: scopescontexts.xml:111
+#: scopescontexts.xml:115
+#, fuzzy, no-c-format
+msgid "during invocations of EJB asynchronous methods,"
+msgstr "當調用 EJB 的遠端 method 時、"
+
+#. Tag: para
+#: scopescontexts.xml:118
#, no-c-format
msgid "during EJB timeouts,"
msgstr "當 EJB 逾時時、"
#. Tag: para
-#: scopescontexts.xml:114
-#, no-c-format
-msgid "during message delivery to a message-driven bean, and"
+#: scopescontexts.xml:121
+#, fuzzy, no-c-format
+msgid "during message delivery to a message-driven bean,"
msgstr "當訊息傳送給訊息導向的 bean 時,以及"
#. Tag: para
-#: scopescontexts.xml:117
+#: scopescontexts.xml:124
+#, fuzzy, no-c-format
+msgid "during message delivery to a <literal>MessageListener</literal>, and"
+msgstr "當訊息傳送給訊息導向的 bean 時,以及"
+
+#. Tag: para
+#: scopescontexts.xml:127
#, no-c-format
msgid "during web service invocations."
msgstr "當進行網路服務調用時。"
#. Tag: para
-#: scopescontexts.xml:121
+#: scopescontexts.xml:131
#, fuzzy, no-c-format
msgid ""
"If the application tries to invoke a bean with a scope that does not have an "
@@ -260,9 +277,18 @@
"literal>。"
#. Tag: para
-#: scopescontexts.xml:126
+#: scopescontexts.xml:136
#, no-c-format
msgid ""
+"Managed beans with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal> must be serializable, since the "
+"container passivates the HTTP session from time to time."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:141
+#, no-c-format
+msgid ""
"Three of the four built-in scopes should be extremely familiar to every Java "
"EE developer, so let's not waste time discussing them here. One of the "
"scopes, however, is new."
@@ -271,13 +297,13 @@
"我們將不花時間在此討論它們。不過在這之中有個 scope 則是新的。"
#. Tag: title
-#: scopescontexts.xml:134
+#: scopescontexts.xml:149
#, no-c-format
msgid "The conversation scope"
msgstr "conversation scope"
#. Tag: para
-#: scopescontexts.xml:136
+#: scopescontexts.xml:151
#, fuzzy, no-c-format
msgid ""
"The conversation scope is a bit like the traditional session scope in that "
@@ -290,13 +316,13 @@
"scope 不同的地方在於:"
#. Tag: para
-#: scopescontexts.xml:144
+#: scopescontexts.xml:159
#, no-c-format
msgid "is demarcated explicitly by the application, and"
msgstr "conversation scope 已被應用程式明確區分,並且"
#. Tag: para
-#: scopescontexts.xml:147
+#: scopescontexts.xml:162
#, no-c-format
msgid ""
"holds state associated with a particular web browser tab in a JSF "
@@ -305,7 +331,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:154
+#: scopescontexts.xml:169
#, fuzzy, no-c-format
msgid ""
"A conversation represents a task—a unit of work from the point of view "
@@ -318,7 +344,7 @@
"就會有多個 conversation。"
#. Tag: para
-#: scopescontexts.xml:160
+#: scopescontexts.xml:175
#, fuzzy, no-c-format
msgid ""
"The conversation context is active during any JSF request. Most "
@@ -331,13 +357,13 @@
"狀態,它便需要被明確地轉為 <emphasis>long-running conversation</emphasis>。"
#. Tag: title
-#: scopescontexts.xml:167
+#: scopescontexts.xml:182
#, no-c-format
msgid "Conversation demarcation"
msgstr "Conversation demarcation(對話區分)"
#. Tag: para
-#: scopescontexts.xml:169
+#: scopescontexts.xml:184
#, fuzzy, no-c-format
msgid ""
"CDI provides a built-in bean for controlling the lifecycle of conversations "
@@ -347,13 +373,13 @@
"conversation 的生命週期。這個 Web Bean 能透過注入下列來取得:"
#. Tag: programlisting
-#: scopescontexts.xml:174
+#: scopescontexts.xml:189
#, fuzzy, no-c-format
msgid "@Inject Conversation conversation;"
msgstr "@Current Conversation conversation;"
#. Tag: para
-#: scopescontexts.xml:176
+#: scopescontexts.xml:191
#, no-c-format
msgid ""
"To promote the conversation associated with the current request to a long-"
@@ -368,7 +394,7 @@
"()</literal>。"
#. Tag: para
-#: scopescontexts.xml:182
+#: scopescontexts.xml:197
#, fuzzy, no-c-format
msgid ""
"In the following example, a conversation-scoped bean controls the "
@@ -378,7 +404,7 @@
"conversation:"
#. Tag: programlisting
-#: scopescontexts.xml:186
+#: scopescontexts.xml:201
#, fuzzy, no-c-format
msgid ""
"<![CDATA[@ConversationScoped @Stateful\n"
@@ -442,7 +468,7 @@
"}"
#. Tag: para
-#: scopescontexts.xml:188
+#: scopescontexts.xml:203
#, fuzzy, no-c-format
msgid ""
"This bean is able to control its own lifecycle through use of the "
@@ -453,13 +479,13 @@
"生命週期。不過有些其它 Web Bean 的生命週期完全取決於另一個物件。"
#. Tag: title
-#: scopescontexts.xml:196
+#: scopescontexts.xml:211
#, no-c-format
msgid "Conversation propagation"
msgstr "Conversation propagation(傳播)"
#. Tag: para
-#: scopescontexts.xml:198
+#: scopescontexts.xml:213
#, fuzzy, no-c-format
msgid ""
"The conversation context automatically propagates with any JSF faces request "
@@ -470,7 +496,7 @@
"傳播。它不會隨著 non-face 的請求(例如透過連結來瀏覽)自動地傳播。"
#. Tag: para
-#: scopescontexts.xml:203
+#: scopescontexts.xml:218
#, fuzzy, no-c-format
msgid ""
"We can force the conversation to propagate with a non-faces request by "
@@ -487,13 +513,13 @@
"為 <literal>conversation</literal>。"
#. Tag: para
-#: scopescontexts.xml:210
+#: scopescontexts.xml:225
#, no-c-format
msgid "Therefore, the following link propagates the conversation:"
msgstr "因此,下列連結會傳播 conversation:"
#. Tag: programlisting
-#: scopescontexts.xml:214
+#: scopescontexts.xml:229
#, no-c-format
msgid ""
"<![CDATA[<a href=\"/addProduct.jsp?cid=#{conversation.id}\">Add Product</a>]]"
@@ -503,13 +529,13 @@
">"
#. Tag: para
-#: scopescontexts.xml:216
+#: scopescontexts.xml:231
#, no-c-format
msgid "It's probably better to use one of the link components in JSF 2:"
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:220
+#: scopescontexts.xml:235
#, no-c-format
msgid ""
"<![CDATA[<h:link outcome=\"/addProduct.xhtml value=\"Add Product\">\n"
@@ -518,7 +544,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:223
+#: scopescontexts.xml:238
#, fuzzy, no-c-format
msgid ""
"The conversation context propagates across redirects, making it very easy to "
@@ -532,13 +558,13 @@
"況下,Web Bean 管理員會自動地新增一個請求參數至重定向 URL。"
#. Tag: title
-#: scopescontexts.xml:233
+#: scopescontexts.xml:248
#, no-c-format
msgid "Conversation timeout"
msgstr "Conversation timeout(逾時)"
#. Tag: para
-#: scopescontexts.xml:235
+#: scopescontexts.xml:250
#, fuzzy, no-c-format
msgid ""
"The container is permitted to destroy a conversation and all state held in "
@@ -554,7 +580,7 @@
"經過的休止狀態時間。"
#. Tag: para
-#: scopescontexts.xml:242
+#: scopescontexts.xml:257
#, fuzzy, no-c-format
msgid ""
"The <literal>Conversation</literal> object provides a method to set the "
@@ -565,55 +591,183 @@
"這是個給 Web Bean 管理員的提示,您可忽略該設定。"
#. Tag: programlisting
-#: scopescontexts.xml:247
+#: scopescontexts.xml:262
#, no-c-format
msgid "conversation.setTimeout(timeoutInMillis);"
msgstr "conversation.setTimeout(timeoutInMillis);"
#. Tag: title
-#: scopescontexts.xml:254
+#: scopescontexts.xml:269
+#, fuzzy, no-c-format
+msgid "The singleton pseudo-scope"
+msgstr "dependent pseudo-scope"
+
+#. Tag: para
+#: scopescontexts.xml:271
+#, fuzzy, no-c-format
+msgid ""
+"In addition to the four built-in scopes, CDI also supports two "
+"<emphasis>pseudo-scopes</emphasis>. The first is the <emphasis>singleton "
+"pseudo-scope</emphasis>, which we specify using the annotation "
+"<literal>@Singleton</literal>."
+msgstr ""
+"除了這四個內建的 scope,Web Bean 還提供了一項稱為 <emphasis>dependent pseudo-"
+"scope</emphasis> 的功能。這是個未明確宣告 scope 類型的 Web Bean 的預設 "
+"scope。"
+
+#. Tag: para
+#: scopescontexts.xml:277
#, no-c-format
+msgid ""
+"Unlike the other scopes, which belong to the package <literal>javax."
+"enterprise.context</literal>, the <literal>@Singleton</literal> annotation "
+"is defined in the package <literal>javax.inject</literal>."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:283
+#, no-c-format
+msgid ""
+"You can guess what \"singleton\" means here. It means a bean that is "
+"instantiated once. Unfortunately, there's a little problem with this pseudo-"
+"scope. Beans with scope <literal>@Singleton</literal> don't have a proxy "
+"object. Clients hold a direct reference to the singleton instance. So we "
+"need to consider the case of a client that can be serialized, for example, "
+"any bean with scope <literal>@SessionScoped</literal> or "
+"<literal>@ConversationScoped</literal>, any dependent object of a bean with "
+"scope <literal>@SessionScoped</literal> or <literal>@ConversationScoped</"
+"literal>, or any stateful session bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:292
+#, no-c-format
+msgid ""
+"Now, if the singleton instance is a simple, immutable, serializable object "
+"like a string, a number or a date, we probably don't mind too much if it "
+"gets duplicated via serialization. However, that makes it no stop being a "
+"true singleton, and we may as well have just declared it with the default "
+"scope."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:298
+#, no-c-format
+msgid ""
+"There are several ways to ensure that the singleton bean remains a singleton "
+"when its client gets serialized:"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:302
+#, no-c-format
+msgid ""
+"have the singleton bean implement <literal>writeResolve()</literal> and "
+"<literal>readReplace()</literal> (as defined by the Java serialization "
+"specification),"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:308
+#, no-c-format
+msgid ""
+"make sure the client keeps only a transient reference to the singleton bean, "
+"or"
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:313
+#, no-c-format
+msgid ""
+"give the client a reference of type <literal>Instance<X></literal> "
+"where <literal>X</literal> is the bean type of the singleton bean."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:320
+#, no-c-format
+msgid ""
+"A fourth, better solution is to instead use <literal>@ApplicationScoped</"
+"literal>, allowing the container to proxy the bean, and take care of "
+"serialization problems automatically."
+msgstr ""
+
+#. Tag: title
+#: scopescontexts.xml:326
+#, no-c-format
msgid "The dependent pseudo-scope"
msgstr "dependent pseudo-scope"
#. Tag: para
-#: scopescontexts.xml:256
+#: scopescontexts.xml:328
#, fuzzy, no-c-format
msgid ""
-"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 "
-"bean which does not explicitly declare a scope type."
+"Finally, CDI features the so-called <emphasis>dependent pseudo-scope</"
+"emphasis>. This is the default scope for a 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:261
+#: scopescontexts.xml:333
#, fuzzy, no-c-format
msgid ""
"For example, this bean has the scope type <literal>@Dependent</literal>:"
msgstr "比方說,這個 Web Bean 的 scope 類型為 <literal>@Dependent</literal>:"
#. Tag: programlisting
-#: scopescontexts.xml:265
+#: scopescontexts.xml:337
#, no-c-format
msgid "<![CDATA[public class Calculator { ... }]]>"
msgstr "<![CDATA[public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:267
+#: scopescontexts.xml:339
#, no-c-format
msgid ""
-"An instances of a dependent bean is never shared between different clients "
-"or different injection points. It is strictly a <emphasis>dependent object</"
+"An instance 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:273
+#: scopescontexts.xml:345
+#, no-c-format
+msgid ""
+"If a Unified EL expression refers to a dependent bean by EL name, an "
+"instance of the bean is instantiated every time the expression is evaluated. "
+"The instance is not reused during any other expression evaluation."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:351
+#, no-c-format
+msgid ""
+"If you need to access a bean directly by EL name in a JSF page, you probably "
+"need to give it a scope other than <literal>@Dependent</literal>. Otherwise, "
+"any value that gets set to the bean by a JSF input will be lost immediately. "
+"That's why CDI features the <literal>@Model</literal> stereotype; it lets "
+"you give a bean a name, and set its scope to <literal>@RequestScoped</"
+"literal> in one stroke. If you need to access a bean that really "
+"<emphasis>has</emphasis> to have the scope <literal>@Dependent</literal> "
+"from a JSF page, inject it into a different bean, and expose it to EL via a "
+"getter method."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:361
+#, no-c-format
+msgid ""
+"Beans with scope <literal>@Dependent</literal> don't need a proxy object. "
+"The client holds a direct reference to its instance."
+msgstr ""
+
+#. Tag: para
+#: scopescontexts.xml:366
#, fuzzy, no-c-format
msgid ""
"CDI makes it easy to obtain a dependent instance of a bean, even if the bean "
@@ -623,13 +777,13 @@
"該 class 或是 EJB bean 已被宣告為一個含有其牠 scope 類型的 Web Bean。"
#. Tag: title
-#: scopescontexts.xml:281
+#: scopescontexts.xml:374
#, fuzzy, no-c-format
msgid "The <literal>@New</literal> qualifier"
msgstr "<literal>@New</literal> 標記"
#. Tag: para
-#: scopescontexts.xml:283
+#: scopescontexts.xml:376
#, no-c-format
msgid ""
"The built-in qualifier <literal>@New</literal> allows us to obtain a "
@@ -637,13 +791,13 @@
msgstr ""
#. Tag: programlisting
-#: scopescontexts.xml:287
+#: scopescontexts.xml:380
#, fuzzy, no-c-format
msgid "<![CDATA[@Inject @New Calculator calculator;]]>"
msgstr "<![CDATA[@New Calculator calculator;]]>"
#. Tag: para
-#: scopescontexts.xml:289
+#: scopescontexts.xml:382
#, no-c-format
msgid ""
"The class must be a valid managed bean or session bean, but need not be an "
@@ -651,7 +805,7 @@
msgstr ""
#. Tag: para
-#: scopescontexts.xml:291
+#: scopescontexts.xml:384
#, fuzzy, no-c-format
msgid ""
"This works even if <literal>Calculator</literal> is <emphasis>already</"
@@ -661,7 +815,7 @@
"scope type,這還是有效的,比方說:"
#. Tag: programlisting
-#: scopescontexts.xml:296
+#: scopescontexts.xml:389
#, no-c-format
msgid ""
"<![CDATA[@ConversationScoped\n"
@@ -671,7 +825,7 @@
"public class Calculator { ... }]]>"
#. Tag: para
-#: scopescontexts.xml:298
+#: scopescontexts.xml:391
#, no-c-format
msgid ""
"So the following injected attributes each get a different instance of "
@@ -681,7 +835,7 @@
"instance:"
#. Tag: programlisting
-#: scopescontexts.xml:302
+#: scopescontexts.xml:395
#, fuzzy, no-c-format
msgid ""
"<![CDATA[public class PaymentCalc {\n"
@@ -697,7 +851,7 @@
"}]]>"
#. Tag: para
-#: scopescontexts.xml:304
+#: scopescontexts.xml:397
#, no-c-format
msgid ""
"The <literal>calculator</literal> field has a conversation-scoped instance "
@@ -711,7 +865,7 @@
"週期取決於擁有它的 <literal>PaymentCalc</literal>。"
#. Tag: para
-#: scopescontexts.xml:310
+#: scopescontexts.xml:403
#, no-c-format
msgid ""
"This feature is particularly useful with producer methods, as we'll see in "
Modified: doc/trunk/reference/zh-TW/weldexamples.po
===================================================================
--- doc/trunk/reference/zh-TW/weldexamples.po 2010-01-05 14:06:09 UTC (rev 5380)
+++ doc/trunk/reference/zh-TW/weldexamples.po 2010-01-06 12:21:25 UTC (rev 5381)
@@ -5,7 +5,7 @@
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"
+"POT-Creation-Date: 2010-01-06 12:17+0000\n"
"PO-Revision-Date: 2009-11-11 15:00+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -144,7 +144,7 @@
"<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"
+"<area id=\"submit\" coords=\"30\"/> </areaspec> <programlisting role=\"XML"
"\"><![CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN"
"\"\n"
" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
@@ -524,7 +524,7 @@
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."
+"can open the example natively using the <ulink url=\"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.."
@@ -620,8 +620,9 @@
"<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."
+"<ulink url=\"http://localhost:9090\">http://localhost:9090</ulink> to view "
+"the app. To debug choose <emphasis>Debug as Java Application</emphasis> "
+"instead."
msgstr ""
#. Tag: title
@@ -663,8 +664,9 @@
#: 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>."
+"to deploy the example to Tomcat. You can then access application at <ulink "
+"url=\"http://localhost:8080/weld-numberguess-wicket\">http://localhost:8080/"
+"weld-numberguess-wicket</ulink>."
msgstr ""
#. Tag: para
@@ -976,7 +978,7 @@
"\"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"
+"public class Game\n"
"{\n"
"\n"
" public static final int MAX_NUM_GUESSES = 10;\n"
@@ -1078,19 +1080,18 @@
"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"
+"to get the random number at the start of each game. Note that it can't use "
+"<literal>Instance.get()</literal> like the JSF example does because there "
+"will not be any active contexts like there are 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"
@@ -1545,7 +1546,6 @@
#, 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>."
+"information on Weld, please visit <ulink url=\"http://www.seamframework.org/"
+"Weld\">http://www.seamframework.org/Weld</ulink>."
msgstr ""
More information about the weld-commits
mailing list