Seam SVN: r10392 - in trunk: examples and 1 other directory.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-04-13 21:37:49 -0400 (Mon, 13 Apr 2009)
New Revision: 10392
Modified:
trunk/build.xml
trunk/examples/readme.txt
Log:
add metawidget examples to dist
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2009-04-13 20:32:19 UTC (rev 10391)
+++ trunk/build.xml 2009-04-14 01:37:49 UTC (rev 10392)
@@ -672,6 +672,7 @@
<!--<include name="portal/**/*" />-->
<include name="drools/**/*" />
<include name="nestedbooking/**/*" />
+ <include name="metawidget/**/*" />
<include name="wicket/**/*" />
<include name="remoting/chatroom/**/*" />
<include name="remoting/helloworld/**/*" />
Modified: trunk/examples/readme.txt
===================================================================
--- trunk/examples/readme.txt 2009-04-13 20:32:19 UTC (rev 10391)
+++ trunk/examples/readme.txt 2009-04-14 01:37:49 UTC (rev 10392)
@@ -51,6 +51,9 @@
messages/ The Seam message list example demonstrating use
of the @DataModel annotation.
+
+metawidget/ The Seam booking, groovybooking, dvdstore examples implemented
+ using metawidget to define the UI forms.
nestedbooking/ The booking example modified to show the use of nested
conversations.
15 years, 7 months
Seam SVN: r10391 - trunk/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-04-13 16:32:19 -0400 (Mon, 13 Apr 2009)
New Revision: 10391
Modified:
trunk/doc/Seam_Reference_Guide/it-IT/Jbpm.po
trunk/doc/Seam_Reference_Guide/it-IT/Jms.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: trunk/doc/Seam_Reference_Guide/it-IT/Jbpm.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/it-IT/Jbpm.po 2009-04-13 20:26:32 UTC (rev 10390)
+++ trunk/doc/Seam_Reference_Guide/it-IT/Jbpm.po 2009-04-13 20:32:19 UTC (rev 10391)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-03-31 09:07+0000\n"
-"PO-Revision-Date: 2009-03-31 11:16+0100\n"
+"PO-Revision-Date: 2009-04-13 22:30+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -96,7 +96,7 @@
#: Jbpm.xml:88
#, no-c-format
msgid "The stateless model defines a mapping from a set of named, logical outcomes of an event directly to the resulting page of the view. The navigation rules are entirely oblivious to any state held by the application other than what page was the source of the event. This means that your action listener methods must sometimes make decisions about the page flow, since only they have access to the current state of the application."
-msgstr "Il modello stateless definisce una mappatura tra un set di esiti di un evento e la pagina della vista. Le regole di navigazione sono interamente senza memoria rispetto alla stato mantenuto dall'applicazione oltre che alla pagina origine dell'evento. Questo significa che i metodi dell'action listener devono di tanto in tanto prendere decisioni sul pageflow, poiché solo loro hanno accesso allo stato corrente dell'applicazione."
+msgstr "Il modello stateless definisce una mappatura tra un set di esiti di un evento e la pagina della vista. Le regole di navigazione sono interamente senza memoria rispetto allo stato mantenuto dall'applicazione oltre che alla pagina origine dell'evento. Questo significa che i metodi dell'action listener devono di tanto in tanto prendere decisioni sul pageflow, poiché solo loro hanno accesso allo stato corrente dell'applicazione."
#. Tag: para
#: Jbpm.xml:98
Modified: trunk/doc/Seam_Reference_Guide/it-IT/Jms.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/it-IT/Jms.po 2009-04-13 20:26:32 UTC (rev 10390)
+++ trunk/doc/Seam_Reference_Guide/it-IT/Jms.po 2009-04-13 20:32:19 UTC (rev 10391)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-18 15:00+0000\n"
-"PO-Revision-Date: 2009-01-18 16:22+0100\n"
+"PO-Revision-Date: 2009-04-13 22:31+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -25,12 +25,11 @@
msgid "Seam makes it very easy to perform work asynchronously from a web request. When most people think of asynchronicity in Java EE, they think of using JMS. This is certainly one way to approach the problem in Seam, and is the right way when you have strict and well-defined quality of service requirements. Seam makes it easy to send and receive JMS messages using Seam components."
msgstr "Seam semplifica molto l'esecuzione di lavori asincroni da richiesta web. Quando la maggior parte delle persone pensa all'asincronicità in Java EE, pensano all'uso di JMS. Questo è certamente un modo per approcciare il problema in Seam, ed è quello giusto quando si hanno dei requisiti di qualità di servizio molto stringenti e ben definiti. Seam semplifica l'invio e la ricezione di messaggi JMS usando i componenti Seam."
-# rivedere la frase.
#. Tag: para
#: Jms.xml:11
#, no-c-format
msgid "But for many use cases, JMS is overkill. Seam layers a simple asynchronous method and event facility over your choice of <emphasis>dispatchers</emphasis>:"
-msgstr "Ma per molti casi d'uso, JMS è eccessivo. Seam aggiunge come nuovo layer un semplice metodo asincrono ed un meccanismo d'eventi sulla scelta del <emphasis>dispatcher</emphasis>:"
+msgstr "Ma per molti casi d'uso, JMS è eccessivo. Seam aggiunge come nuovo layer un semplice metodo asincrono ed un meccanismo d'eventi nella scelta del <emphasis>dispatcher</emphasis>:"
#. Tag: para
#: Jms.xml:18
15 years, 7 months
Seam SVN: r10390 - trunk/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-04-13 16:26:32 -0400 (Mon, 13 Apr 2009)
New Revision: 10390
Modified:
trunk/doc/Seam_Reference_Guide/it-IT/Guice.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: trunk/doc/Seam_Reference_Guide/it-IT/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/it-IT/Guice.po 2009-04-13 09:42:47 UTC (rev 10389)
+++ trunk/doc/Seam_Reference_Guide/it-IT/Guice.po 2009-04-13 20:26:32 UTC (rev 10390)
@@ -2,95 +2,163 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2009-04-12 01:20-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"PO-Revision-Date: 2009-04-13 22:25+0100\n"
+"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: LANGUAGE <LL(a)li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
msgid "Guice integration"
-msgstr ""
+msgstr "Integrazione Guice"
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
-msgstr ""
+msgstr "Google Guice è una libreria che fornisce dependency injection leggera attraverso una risoluzione type-safe. L'integrazioneGuice (parte del modulo Seam IoC) consente l'uso dell'iniezione Guice per tutti i componenti Seam annotati con l'annotazione <literal>@Guice</literal>. In aggiunta alla regolare bijection che Seam fornisce (che diviene opzionale), Seam delega a injector Guice noti di soddisfare le dipendenze del componente. Guice può essere utile per unire parte non-Seam di applicazione grosse o legacy assieme a Seam."
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
-msgstr ""
+msgstr "L'integrazione Guice è messa nella libreria jboss-seam-ioc. Questa dipendenza è richiesta per tutte le tecniche di integrazione coperta in questo capitolo. Occorre anche il file JAR Guice nel classpath."
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
msgid "Creating a hybrid Seam-Guice component"
-msgstr ""
+msgstr "Creazione di un componente ibrido Seam-Guice"
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
-msgstr ""
+msgstr "L'obiettivo è creare un componente ibrido Seam-Guice. La regola per come realizzare ciò è molto semplice. Se si vuole usare l'injection Guice nel proprio componente Seam, annotarlo con l'annotazione <literal>@Guice</literal> (dopo l'importazione del tipo <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
#, no-wrap
-msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgid ""
+"@Name(\"myGuicyComponent\")\n"
+"@Guice public class MyGuicyComponent\n"
+"{\n"
+" @Inject MyObject myObject;\n"
+" @Inject @Special MyObject mySpecialObject;\n"
+" ...\n"
+"}"
msgstr ""
+"@Name(\"myGuicyComponent\")\n"
+"@Guice public class MyGuicyComponent\n"
+"{\n"
+" @Inject MyObject myObject;\n"
+" @Inject @Special MyObject mySpecialObject;\n"
+" ...\n"
+"}"
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
-msgstr ""
+msgstr "Quest'iniezione Guice avverrà ad ogni chiamata di metodo, come con la bijection. Guice inietta in base a tipo e binding. Per soddisfare le dipendenze nel precedente esempio, si possono associare le seguenti implementazioni in un modulo Guice, dove <literal>@Special</literal> è un'annotazione definita nella propria applicazione."
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
#, no-wrap
-msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgid ""
+"public class MyGuicyModule implements Module\n"
+"{\n"
+" public void configure(Binder binder)\n"
+" {\n"
+" binder.bind(MyObject.class)\n"
+" .toInstance(new MyObject(\"regular\"));\n"
+"\n"
+" binder.bind(MyObject.class).annotatedWith(Special.class)\n"
+" .toInstance(new MyObject(\"special\"));\n"
+" }\n"
+"}"
msgstr ""
+"public class MyGuicyModule implements Module\n"
+"{\n"
+" public void configure(Binder binder)\n"
+" {\n"
+" binder.bind(MyObject.class)\n"
+" .toInstance(new MyObject(\"regular\"));\n"
+"\n"
+" binder.bind(MyObject.class).annotatedWith(Special.class)\n"
+" .toInstance(new MyObject(\"special\"));\n"
+" }\n"
+"}"
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
-msgstr ""
+msgstr "Bene, ma quanle injector Guice verrà usato per iniettare le dipendenze? Occorre fare prima qualche settaggio."
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
msgid "Configuring an injector"
-msgstr ""
+msgstr "Configurare un injector"
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
-msgstr ""
+msgstr "Dire a Seam quale injector Guice usare agganciandolo alla proprietà injection del componente Guice di inizializzazione nel descrittore del componente Seam (components.xml):"
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
-msgstr ""
+msgstr "<literal>myGuiceInjector</literal> deve risolvere ad un componente Seam che implementi l'interfaccia Guice <literal>Injector</literal>."
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
-msgstr ""
+msgstr "Tuttavia dover creare un injector è pura scrittura di codice. Ciò che si vuole essere in grado di fare è semplicemente agganciare Seam ai propri moduli Guice. Fortunamente c'è un componente Seam predefinito che implementa l'interfaccia <literal>Injector</literal> per fare ciò. Si può configurarlo nel descrittore del componente Seam con il seguente codice."
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
-msgstr ""
+msgstr "Certamente si può anche usare un injector che viene già usato in un'altra parte anche non-Seam della proria applicazione. Questa è una delle principali motivazioni per creare quest'integrazione. Poiché l'injector è definito con un'espressione EL, si può ottenerlo in un qualsiasi modo si voglia. Per esempio si può usare il pattern del componente factory di Seam per fornire l'injector."
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
#, no-wrap
-msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgid ""
+"@Name(\"myGuiceInjectorFactory\")\n"
+"public InjectorFactory\n"
+"{\n"
+" @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n"
+" public Injector getInjector()\n"
+" {\n"
+" // Your code that returns injector \n"
+" }\n"
+"}"
msgstr ""
+"@Name(\"myGuiceInjectorFactory\")\n"
+"public InjectorFactory\n"
+"{\n"
+" @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n"
+" public Injector getInjector()\n"
+" {\n"
+" // Your code that returns injector \n"
+" }\n"
+"}"
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
msgid "Using multiple injectors"
-msgstr ""
+msgstr "Uso di injector multipli"
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
-msgstr ""
+msgstr "Di default viene usato un injector configurato nel descrittore di componente Seam. Se occorre usare più injector (in alternativa, si possono anche usare più moduli), si può specificare un injector per ogni componente Seam nell'annotazione <literal>@Guice</literal>."
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
#, no-wrap
-msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgid ""
+"@Name(\"myGuicyComponent\")\n"
+"@Guice(\"myGuiceInjector\")\n"
+"public class MyGuicyComponent\n"
+"{\n"
+" @Inject MyObject myObject;\n"
+" ...\n"
+"}"
msgstr ""
+"@Name(\"myGuicyComponent\")\n"
+"@Guice(\"myGuiceInjector\")\n"
+"public class MyGuicyComponent\n"
+"{\n"
+" @Inject MyObject myObject;\n"
+" ...\n"
+"}"
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
-msgstr ""
+msgstr "Ecco tutto! Si controlli l'esempio guice nella distribuzione Seam per vedere in azione l'integrazione Guice!"
#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
-#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
msgid "translator-credits"
-msgstr ""
+msgstr "translator-credits"
15 years, 7 months
Seam SVN: r10389 - trunk/src/main/org/jboss/seam/web.
by seam-commits@lists.jboss.org
Author: christian.bauer(a)jboss.com
Date: 2009-04-13 05:42:47 -0400 (Mon, 13 Apr 2009)
New Revision: 10389
Modified:
trunk/src/main/org/jboss/seam/web/LoggingFilter.java
Log:
JBSEAM-4102, LoggingFilter throws NPE
Modified: trunk/src/main/org/jboss/seam/web/LoggingFilter.java
===================================================================
--- trunk/src/main/org/jboss/seam/web/LoggingFilter.java 2009-04-12 05:22:10 UTC (rev 10388)
+++ trunk/src/main/org/jboss/seam/web/LoggingFilter.java 2009-04-13 09:42:47 UTC (rev 10389)
@@ -17,6 +17,7 @@
import org.jboss.seam.annotations.intercept.BypassInterceptors;
import org.jboss.seam.annotations.web.Filter;
import org.jboss.seam.security.Identity;
+import org.jboss.seam.security.Credentials;
/**
* This filter adds the authenticated user name to the log4j
@@ -47,7 +48,8 @@
if (attribute instanceof Identity)
{
Identity identity = (Identity) attribute;
- String username = identity.getUsername();
+ Credentials credentials = identity.getCredentials();
+ String username = credentials != null ? credentials.getUsername() : null;
if (username != null)
{
MDC.put("username", username);
15 years, 7 months
Seam SVN: r10388 - in trunk/doc/Seam_Reference_Guide: bn-IN and 23 other directories.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-04-12 01:22:10 -0400 (Sun, 12 Apr 2009)
New Revision: 10388
Added:
trunk/doc/Seam_Reference_Guide/as-IN/Guice.po
trunk/doc/Seam_Reference_Guide/bn-IN/Guice.po
trunk/doc/Seam_Reference_Guide/de-DE/Guice.po
trunk/doc/Seam_Reference_Guide/es-ES/Guice.po
trunk/doc/Seam_Reference_Guide/es-MX/Guice.po
trunk/doc/Seam_Reference_Guide/fr-FR/Guice.po
trunk/doc/Seam_Reference_Guide/gu-IN/Guice.po
trunk/doc/Seam_Reference_Guide/hi-IN/Guice.po
trunk/doc/Seam_Reference_Guide/it-IT/Guice.po
trunk/doc/Seam_Reference_Guide/ja-JP/Guice.po
trunk/doc/Seam_Reference_Guide/kn-IN/Guice.po
trunk/doc/Seam_Reference_Guide/ko-KR/Guice.po
trunk/doc/Seam_Reference_Guide/ml-IN/Guice.po
trunk/doc/Seam_Reference_Guide/mr-IN/Guice.po
trunk/doc/Seam_Reference_Guide/or-IN/Guice.po
trunk/doc/Seam_Reference_Guide/pa-IN/Guice.po
trunk/doc/Seam_Reference_Guide/pot/Guice.pot
trunk/doc/Seam_Reference_Guide/pt-BR/Guice.po
trunk/doc/Seam_Reference_Guide/ru-RU/Guice.po
trunk/doc/Seam_Reference_Guide/si-LK/Guice.po
trunk/doc/Seam_Reference_Guide/sl-SL/Guice.po
trunk/doc/Seam_Reference_Guide/ta-IN/Guice.po
trunk/doc/Seam_Reference_Guide/te-IN/Guice.po
trunk/doc/Seam_Reference_Guide/zh-CN/Guice.po
trunk/doc/Seam_Reference_Guide/zh-TW/Guice.po
Log:
commit PO for Guice chapter
Added: trunk/doc/Seam_Reference_Guide/as-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/as-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/as-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/bn-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/bn-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/bn-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/de-DE/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/de-DE/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/de-DE/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/es-ES/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/es-ES/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/es-ES/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/es-MX/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/es-MX/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/es-MX/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/fr-FR/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/fr-FR/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/fr-FR/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/gu-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/gu-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/gu-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/hi-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/hi-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/hi-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/it-IT/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/it-IT/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/it-IT/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/ja-JP/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/ja-JP/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/ja-JP/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/kn-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/kn-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/kn-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/ko-KR/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/ko-KR/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/ko-KR/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/ml-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/ml-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/ml-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/mr-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/mr-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/mr-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/or-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/or-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/or-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/pa-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/pa-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/pa-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/pot/Guice.pot
===================================================================
--- trunk/doc/Seam_Reference_Guide/pot/Guice.pot (rev 0)
+++ trunk/doc/Seam_Reference_Guide/pot/Guice.pot 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,194 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-04-12 05:18+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: Guice.xml:6
+#, no-c-format
+msgid "Guice integration"
+msgstr ""
+
+#. Tag: para
+#: Guice.xml:8
+#, no-c-format
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#. Tag: note
+#: Guice.xml:17
+#, no-c-format
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#. Tag: title
+#: Guice.xml:24
+#, no-c-format
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#. Tag: para
+#: Guice.xml:26
+#, no-c-format
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Guice.xml:33
+#, no-c-format
+msgid ""
+ "@Name(\"myGuicyComponent\")\n"
+ "@Guice public class MyGuicyComponent\n"
+ "{\n"
+ " @Inject MyObject myObject;\n"
+ " @Inject @Special MyObject mySpecialObject;\n"
+ " ...\n"
+ "}"
+msgstr ""
+
+#. Tag: para
+#: Guice.xml:35
+#, no-c-format
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#. Tag: programlisting
+#: Guice.xml:42
+#, no-c-format
+msgid ""
+ "public class MyGuicyModule implements Module\n"
+ "{\n"
+ " public void configure(Binder binder)\n"
+ " {\n"
+ " binder.bind(MyObject.class)\n"
+ " .toInstance(new MyObject(\"regular\"));\n"
+ "\n"
+ " binder.bind(MyObject.class).annotatedWith(Special.class)\n"
+ " .toInstance(new MyObject(\"special\"));\n"
+ " }\n"
+ "}"
+msgstr ""
+
+#. Tag: para
+#: Guice.xml:44
+#, no-c-format
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#. Tag: title
+#: Guice.xml:53
+#, no-c-format
+msgid "Configuring an injector"
+msgstr ""
+
+#. Tag: para
+#: Guice.xml:55
+#, no-c-format
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#. Tag: programlisting
+#: Guice.xml:60
+#, no-c-format
+msgid ""
+ "<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
+ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+ " xmlns:guice=\"http://jboss.org/products/seam/guice\"\n"
+ " xsi:schemaLocation=\"\n"
+ " http://jboss.com/products/seam/guice\n"
+ " http://jboss.com/products/seam/guice-2.1.xsd\n"
+ " http://jboss.com/products/seam/components\n"
+ " http://jboss.com/products/seam/components-2.1.xsd\">\n"
+ "\n"
+ " <guice:init injector=\"#{myGuiceInjector}\"/>\n"
+ "\n"
+ "</components>]]>"
+msgstr ""
+
+#. Tag: para
+#: Guice.xml:62
+#, no-c-format
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#. Tag: para
+#: Guice.xml:67
+#, no-c-format
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#. Tag: programlisting
+#: Guice.xml:74
+#, no-c-format
+msgid ""
+ "<![CDATA[<guice:injector name=\"myGuiceInjector\">\n"
+ " <guice:modules> \n"
+ " <value>com.example.guice.GuiceModule1</value> \n"
+ " <value>com.example.guice.GuiceModule2</value> \n"
+ " </guice:modules> \n"
+ "</guice:injector>]]>"
+msgstr ""
+
+#. Tag: para
+#: Guice.xml:76
+#, no-c-format
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#. Tag: programlisting
+#: Guice.xml:83
+#, no-c-format
+msgid ""
+ "@Name(\"myGuiceInjectorFactory\")\n"
+ "public InjectorFactory\n"
+ "{\n"
+ " @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n"
+ " public Injector getInjector()\n"
+ " {\n"
+ " // Your code that returns injector \n"
+ " }\n"
+ "}"
+msgstr ""
+
+#. Tag: title
+#: Guice.xml:88
+#, no-c-format
+msgid "Using multiple injectors"
+msgstr ""
+
+#. Tag: para
+#: Guice.xml:90
+#, no-c-format
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Guice.xml:97
+#, no-c-format
+msgid ""
+ "@Name(\"myGuicyComponent\")\n"
+ "@Guice(\"myGuiceInjector\")\n"
+ "public class MyGuicyComponent\n"
+ "{\n"
+ " @Inject MyObject myObject;\n"
+ " ...\n"
+ "}"
+msgstr ""
+
+#. Tag: para
+#: Guice.xml:101
+#, no-c-format
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/pt-BR/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/pt-BR/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/pt-BR/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/ru-RU/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/ru-RU/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/ru-RU/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/si-LK/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/si-LK/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/si-LK/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/sl-SL/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/sl-SL/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/sl-SL/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/ta-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/ta-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/ta-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/te-IN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/te-IN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/te-IN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/zh-CN/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/zh-CN/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/zh-CN/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
Added: trunk/doc/Seam_Reference_Guide/zh-TW/Guice.po
===================================================================
--- trunk/doc/Seam_Reference_Guide/zh-TW/Guice.po (rev 0)
+++ trunk/doc/Seam_Reference_Guide/zh-TW/Guice.po 2009-04-12 05:22:10 UTC (rev 10388)
@@ -0,0 +1,96 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2009-04-12 01:20-0400\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL(a)li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:6(title)
+msgid "Guice integration"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:8(para)
+msgid "Google Guice is a library that provides lightweight dependency injection through type-safe resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition to the regular bijection that Seam performs (which becomes optional), Seam also delegates to known Guice injectors to satisify the dependencies of the component. Guice may be useful to tie non-Seam parts of large or legacy applications together with Seam."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:17(note)
+msgid "The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required for all integration techniques covered in this chapter. You will also need the Guice JAR file on the classpath."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:24(title)
+msgid "Creating a hybrid Seam-Guice component"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:26(para)
+msgid "The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very simple. If you want to use Guice injection in your Seam component, annotate it with the <literal>@Guice</literal> annotation (after importing the type <literal>org.jboss.seam.ioc.guice.Guice</literal>)."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:33(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice public class MyGuicyComponent\n{\n @Inject MyObject myObject;\n @Inject @Special MyObject mySpecialObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:41(para)
+msgid "This Guice injection will happen on every method call, just like with bijection. Guice injects based on type and binding. To satisify the dependencies in the previous example, you might have bound the following implementations in a Guice module, where <literal>@Special</literal> is an annotation you define in your application."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:48(programlisting)
+#, no-wrap
+msgid "public class MyGuicyModule implements Module\n{\n public void configure(Binder binder)\n {\n binder.bind(MyObject.class)\n .toInstance(new MyObject(\"regular\"));\n\n binder.bind(MyObject.class).annotatedWith(Special.class)\n .toInstance(new MyObject(\"special\"));\n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:60(para)
+msgid "Great, but which Guice injector will be used to inject the dependencies? Well, you need to perform some setup first."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:69(title)
+msgid "Configuring an injector"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:71(para)
+msgid "You tell Seam which Guice injector to use by hooking it into the injection property of the Guice initization component in the Seam component descriptor (components.xml):"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:89(para)
+msgid "<literal>myGuiceInjector</literal> must resolve to a Seam component that implements the Guice <literal>Injector</literal> interface."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:94(para)
+msgid "Having to create an injector is boiler-plate code, though. What you really want to be able to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam component that implements the <literal>Injector</literal> interface to do exactly that. You can configure it in the Seam component descriptor with this additional stanza."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:108(para)
+msgid "Of course you can also use an injector that is already used in other, possibly non-Seam part of you application. That's one of the main motivations for creating this integration. Since the injector is defined with EL expression, you can obtain it in whatever way you like. For instance, you may use the Seam factory component pattern to provide injector."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:115(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuiceInjectorFactory\")\npublic InjectorFactory\n{\n @Factory(name = \"myGuiceInjector\", scope = APPLICATION, create = true)\n public Injector getInjector()\n {\n // Your code that returns injector \n }\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:128(title)
+msgid "Using multiple injectors"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:130(para)
+msgid "By default, an injector configured in the Seam component descriptor is used. If you really need to use multiple injectors (AFAIK, you should use multiple modules instead), you can specify different injector for every Seam component in the <literal>@Guice</literal> annotation."
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:137(programlisting)
+#, no-wrap
+msgid "@Name(\"myGuicyComponent\")\n@Guice(\"myGuiceInjector\")\npublic class MyGuicyComponent\n{\n @Inject MyObject myObject;\n ...\n}"
+msgstr ""
+
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:147(para)
+msgid "That's all there is to it! Check out the guice example in the Seam distribution to see the Seam Guice integration in action!"
+msgstr ""
+
+#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2.
+#: doc/Seam_Reference_Guide/en-US/Guice.xml:0(None)
+msgid "translator-credits"
+msgstr ""
+
15 years, 7 months
Seam SVN: r10387 - trunk.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-04-12 00:55:02 -0400 (Sun, 12 Apr 2009)
New Revision: 10387
Modified:
trunk/seam21migration.txt
Log:
Add section covering changes to permissions
Modified: trunk/seam21migration.txt
===================================================================
--- trunk/seam21migration.txt 2009-04-11 06:33:19 UTC (rev 10386)
+++ trunk/seam21migration.txt 2009-04-12 04:55:02 UTC (rev 10387)
@@ -73,15 +73,54 @@
--------
If you are using rule-based security in your project, the configuration for the
-security rules in components.xml has changed. Previously, the rules were configured
-as a property of the Identity component as such:
+security rules in components.xml has changed. Previously, the rules were configured
+as a property of the identity component as such:
<security:identity security-rules="#{securityRules}" authenticate-method="#{authenticator.authenticate}"/>
-In Seam 2.1, rule-based permission checks are now carried out by the RuleBasedPermissionResolver,
-requiring that it is configured with the security rules instead of Identity:
+In Seam 2.1, rule-based permission checks are now carried out by the ruleBasedPermissionResolver
+component. You must activate this component and register the security rules with it instead of the
+identity component:
<security:rule-based-permission-resolver security-rules="#{securityRules}"/>
+
+IMPORTANT! The definition of a permission has also changed. Prior to Seam 2.1, a permission
+consisted of three elements:
+
+ * name
+ * action
+ * contextual object (optional)
+
+The name would typically be the Seam component name, entity class, or view ID. The action would be
+the method name, the JSF phase (restore or render), or an assigned term representing the intent of
+the activity. Finally, one or more contextual objects could be inserted directly into the working
+memory to help make the decision, typically the target of the activity.
+
+For example: s:hasPermission('userManager', 'edit', user)
+
+In Seam 2.1, a permission has been simplified to just two elements:
+
+ * target
+ * action
+
+In place of the nebulous name element, the target becomes the focus of the permission. The action
+continues to communicate the intent of the activity being secured. Inside the rules file, most of the
+checking now revolves around the target object.
+
+For example: s:hasPermission(user, 'edit')
+
+This change makes the rules more generally applicable. It also allows Seam to consult a persistent
+permission resolver (ACL) in addition to the rule-based resolver.
+
+Be aware that existing rules may behave oddly. That's because given the following permission check:
+
+ s:hasPermission('userManager', 'edit', user)
+
+Seam will transpose as follows to bring it inline with the new design.
+
+ s:hasPemrission(user, 'edit')
+
+Please read the new chapter on security for all the details about this new design.
Identity.isLoggedIn()
---------------------
15 years, 7 months
Seam SVN: r10386 - in trunk: build and 16 other directories.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-04-11 02:33:19 -0400 (Sat, 11 Apr 2009)
New Revision: 10386
Added:
trunk/doc/Seam_Reference_Guide/en-US/Guice.xml
trunk/examples/guice/
trunk/examples/guice/build.xml
trunk/examples/guice/readme.txt
trunk/examples/guice/resources/
trunk/examples/guice/resources/META-INF/
trunk/examples/guice/resources/META-INF/application.xml
trunk/examples/guice/resources/META-INF/jboss-app.xml
trunk/examples/guice/resources/WEB-INF/
trunk/examples/guice/resources/WEB-INF/components.xml
trunk/examples/guice/resources/WEB-INF/faces-config.xml
trunk/examples/guice/resources/WEB-INF/web.xml
trunk/examples/guice/resources/seam.properties
trunk/examples/guice/src/
trunk/examples/guice/src/org/
trunk/examples/guice/src/org/jboss/
trunk/examples/guice/src/org/jboss/seam/
trunk/examples/guice/src/org/jboss/seam/example/
trunk/examples/guice/src/org/jboss/seam/example/guice/
trunk/examples/guice/src/org/jboss/seam/example/guice/Juice.java
trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceBar.java
trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceBarModule.java
trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceImpl.java
trunk/examples/guice/src/org/jboss/seam/example/guice/Orange.java
trunk/examples/guice/src/org/jboss/seam/example/guice/test/
trunk/examples/guice/src/org/jboss/seam/example/guice/test/GuiceTest.java
trunk/examples/guice/src/org/jboss/seam/example/guice/test/testng.xml
trunk/examples/guice/view/
trunk/examples/guice/view/bar.xhtml
trunk/examples/guice/view/index.html
trunk/src/ioc/org/jboss/seam/ioc/guice/
trunk/src/ioc/org/jboss/seam/ioc/guice/Guice.java
trunk/src/ioc/org/jboss/seam/ioc/guice/GuiceInit.java
trunk/src/ioc/org/jboss/seam/ioc/guice/GuiceInterceptor.java
trunk/src/ioc/org/jboss/seam/ioc/guice/Injector.java
trunk/src/ioc/org/jboss/seam/ioc/guice/guice-2.1.xsd
trunk/src/ioc/org/jboss/seam/ioc/guice/package-info.java
Modified:
trunk/build.xml
trunk/build/ioc.pom.xml
trunk/build/root.pom.xml
trunk/doc/Seam_Reference_Guide/en-US/master.xml
trunk/examples/build.xml
Log:
JBSEAM-3044
Modified: trunk/build/ioc.pom.xml
===================================================================
--- trunk/build/ioc.pom.xml 2009-04-11 06:32:03 UTC (rev 10385)
+++ trunk/build/ioc.pom.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -53,6 +53,12 @@
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice</artifactId>
+ <optional>true</optional>
+ </dependency>
+
<!-- Microcontainer stuff isn't done -->
<!-- <dependency>
@@ -102,4 +108,4 @@
</dependencies>
-</project>
\ No newline at end of file
+</project>
Modified: trunk/build/root.pom.xml
===================================================================
--- trunk/build/root.pom.xml 2009-04-11 06:32:03 UTC (rev 10385)
+++ trunk/build/root.pom.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -850,6 +850,12 @@
</exclusion>
</exclusions>
</dependency>
+
+ <dependency>
+ <groupId>com.google.code.guice</groupId>
+ <artifactId>guice</artifactId>
+ <version>1.0</version>
+ </dependency>
<dependency>
<groupId>cglib</groupId>
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2009-04-11 06:32:03 UTC (rev 10385)
+++ trunk/build.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -461,6 +461,7 @@
<cleanexample name="restbay" />
<cleanexample name="nestedbooking" />
<cleanexample name="wicket" />
+ <cleanexample name="guice" />
</target>
<target name="undeployexamples" description="Undeploy all examples">
@@ -496,6 +497,7 @@
<undeployexample name="restbay" />
<undeployexample name="nestedbooking" />
<undeployexample name="wicket" />
+ <undeployexample name="guice" />
</target>
<target name="testexamples" description="Run the example tests">
@@ -522,6 +524,7 @@
<testexample name="hibernate" />
<testexample name="jpa" />
<testexample name="quartz" />
+ <testexample name="guice" />
<ant dir="examples/wiki" target="test" inheritall="false">
<property name="test.output.dir" value="${test.dir}/wiki" />
</ant>
@@ -567,6 +570,7 @@
<ant dir="examples/todo" target="validateConfiguration" inheritall="false" />
<ant dir="examples/ui" target="validateConfiguration" inheritall="false" />
<ant dir="examples/wicket" target="validateConfiguration" inheritall="false" />
+ <ant dir="examples/guice" target="validateConfiguration" inheritall="false" />
</target>
Added: trunk/doc/Seam_Reference_Guide/en-US/Guice.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Guice.xml (rev 0)
+++ trunk/doc/Seam_Reference_Guide/en-US/Guice.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
+
+<chapter id="guice">
+
+ <title>Guice integration</title>
+
+ <para>
+ Google Guice is a library that provides lightweight dependency injection through type-safe
+ resolution. The Guice integration (part of the Seam IoC module) allows use of Guice injection
+ for all Seam components annotated with the <literal>@Guice</literal> annotation. In addition
+ to the regular bijection that Seam performs (which becomes optional), Seam also delegates
+ to known Guice injectors to satisify the dependencies of the component. Guice may be useful to
+ tie non-Seam parts of large or legacy applications together with Seam.
+ </para>
+
+ <note>
+ The Guice integration is bundled in the jboss-seam-ioc library. This dependency is required
+ for all integration techniques covered in this chapter. You will also need the Guice JAR file
+ on the classpath.
+ </note>
+
+ <section>
+ <title>Creating a hybrid Seam-Guice component</title>
+
+ <para>
+ The goal is to create a hybrid Seam-Guice component. The rule for how to do this is very
+ simple. If you want to use Guice injection in your Seam component, annotate it with the
+ <literal>@Guice</literal> annotation (after importing the type
+ <literal>org.jboss.seam.ioc.guice.Guice</literal>).
+ </para>
+
+ <programlisting role="JAVA">@Name("myGuicyComponent")
+@Guice public class MyGuicyComponent
+{
+ @Inject MyObject myObject;
+ @Inject @Special MyObject mySpecialObject;
+ ...
+}</programlisting>
+
+ <para>
+ This Guice injection will happen on every method call, just like with bijection. Guice
+ injects based on type and binding. To satisify the dependencies in the previous example,
+ you might have bound the following implementations in a Guice module, where
+ <literal>@Special</literal> is an annotation you define in your application.
+ </para>
+
+ <programlisting role="JAVA">public class MyGuicyModule implements Module
+{
+ public void configure(Binder binder)
+ {
+ binder.bind(MyObject.class)
+ .toInstance(new MyObject("regular"));
+
+ binder.bind(MyObject.class).annotatedWith(Special.class)
+ .toInstance(new MyObject("special"));
+ }
+}</programlisting>
+
+ <para>
+ Great, but which Guice injector will be used to inject the dependencies? Well, you need
+ to perform some setup first.
+ </para>
+
+ </section>
+
+ <section>
+
+ <title>Configuring an injector</title>
+
+ <para>
+ You tell Seam which Guice injector to use by hooking it into the injection property
+ of the Guice initization component in the Seam component descriptor (components.xml):
+ </para>
+
+ <programlisting role="XML"><![CDATA[<components xmlns="http://jboss.com/products/seam/components"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:guice="http://jboss.org/products/seam/guice"
+ xsi:schemaLocation="
+ http://jboss.com/products/seam/guice
+ http://jboss.com/products/seam/guice-2.1.xsd
+ http://jboss.com/products/seam/components
+ http://jboss.com/products/seam/components-2.1.xsd">
+
+ <guice:init injector="#{myGuiceInjector}"/>
+
+</components>]]></programlisting>
+
+ <para>
+ <literal>myGuiceInjector</literal> must resolve to a Seam component that implements the
+ Guice <literal>Injector</literal> interface.
+ </para>
+
+ <para>
+ Having to create an injector is boiler-plate code, though. What you really want to be able
+ to do is simply hook up Seam to your Guice modules. Fortunately, there is a built-in Seam
+ component that implements the <literal>Injector</literal> interface to do exactly that. You
+ can configure it in the Seam component descriptor with this additional stanza.
+ </para>
+
+ <programlisting role="XML"><![CDATA[<guice:injector name="myGuiceInjector">
+ <guice:modules>
+ <value>com.example.guice.GuiceModule1</value>
+ <value>com.example.guice.GuiceModule2</value>
+ </guice:modules>
+</guice:injector>]]></programlisting>
+
+ <para>
+ Of course you can also use an injector that is already used in other, possibly non-Seam
+ part of you application. That's one of the main motivations for creating this integration.
+ Since the injector is defined with EL expression, you can obtain it in whatever way you
+ like. For instance, you may use the Seam factory component pattern to provide injector.
+ </para>
+
+ <programlisting role="JAVA">@Name("myGuiceInjectorFactory")
+public InjectorFactory
+{
+ @Factory(name = "myGuiceInjector", scope = APPLICATION, create = true)
+ public Injector getInjector()
+ {
+ // Your code that returns injector
+ }
+}</programlisting>
+
+ </section>
+
+ <section>
+ <title>Using multiple injectors</title>
+
+ <para>
+ By default, an injector configured in the Seam component descriptor is used. If you really
+ need to use multiple injectors (AFAIK, you should use multiple modules instead), you can
+ specify different injector for every Seam component in the <literal>@Guice</literal>
+ annotation.
+ </para>
+
+ <programlisting role="JAVA">@Name("myGuicyComponent")
+@Guice("myGuiceInjector")
+public class MyGuicyComponent
+{
+ @Inject MyObject myObject;
+ ...
+}</programlisting>
+
+ </section>
+
+ <para>
+ That's all there is to it! Check out the guice example in the Seam distribution to see the
+ Seam Guice integration in action!
+ </para>
+
+</chapter>
Modified: trunk/doc/Seam_Reference_Guide/en-US/master.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/master.xml 2009-04-11 06:32:03 UTC (rev 10385)
+++ trunk/doc/Seam_Reference_Guide/en-US/master.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -31,6 +31,7 @@
<xi:include href="Remoting.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Gwt.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Spring.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+ <xi:include href="Guice.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Hsearch.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Configuration.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
<xi:include href="Annotations.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
Modified: trunk/examples/build.xml
===================================================================
--- trunk/examples/build.xml 2009-04-11 06:32:03 UTC (rev 10385)
+++ trunk/examples/build.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -232,6 +232,12 @@
<include name="slf4j-log4j12.jar" if="seam.resteasy.lib" />
</fileset>
+ <!-- Seam IoC Guice, with required dependencies -->
+ <fileset id="seam.ioc-guice.jar" dir="${lib.dir}">
+ <include name="jboss-seam-ioc.jar" if="seam.ioc-guice.lib" />
+ <include name="guice.jar" if="seam.ioc-guice.lib" />
+ </fileset>
+
<!-- jboss-el -->
<fileset id="jboss-el.jar" dir="${lib.dir}">
<include name="jboss-el.jar" />
@@ -749,6 +755,7 @@
<fileset refid="seam.wicket.jar" />
<fileset refid="seam.resteasy.jar" />
<fileset refid="seam.remoting.jar" />
+ <fileset refid="seam.ioc-guice.jar" />
<fileset refid="el-ri.jar" />
<fileset refid="trinidad-api.jar" />
<fileset refid="metawidget-backend.jar" />
Property changes on: trunk/examples/guice
___________________________________________________________________
Name: svn:ignore
+ dist
exploded-archives
Added: trunk/examples/guice/build.xml
===================================================================
--- trunk/examples/guice/build.xml (rev 0)
+++ trunk/examples/guice/build.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<project name="Seam Guice" default="deploy" basedir=".">
+
+ <!-- Example name -->
+ <property name="Name" value="Seam Guice Example"/>
+ <property name="example.name" value="jboss-seam-guice"/>
+
+ <!-- Libraries -->
+ <property name="seam.ioc-guice.lib" value="yes"/>
+ <property name="seam.debug.lib" value="yes"/>
+ <property name="facelets.lib" value="yes"/>
+
+ <import file="../build.xml"/>
+
+</project>
Added: trunk/examples/guice/readme.txt
===================================================================
--- trunk/examples/guice/readme.txt (rev 0)
+++ trunk/examples/guice/readme.txt 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,5 @@
+Seam Guice Example
+======================
+This is a simple example demonstrating the use of Google Guice with Seam.
+
+example.name=guice
Added: trunk/examples/guice/resources/META-INF/application.xml
===================================================================
--- trunk/examples/guice/resources/META-INF/application.xml (rev 0)
+++ trunk/examples/guice/resources/META-INF/application.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<application xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd"
+ version="5">
+
+ <display-name>Seam Guice Example</display-name>
+
+ <module>
+ <web>
+ <web-uri>jboss-seam-guice.war</web-uri>
+ <context-root>/seam-guice</context-root>
+ </web>
+ </module>
+ <module>
+ <ejb>jboss-seam-guice.jar</ejb>
+ </module>
+ <module>
+ <ejb>jboss-seam.jar</ejb>
+ </module>
+
+</application>
Added: trunk/examples/guice/resources/META-INF/jboss-app.xml
===================================================================
--- trunk/examples/guice/resources/META-INF/jboss-app.xml (rev 0)
+++ trunk/examples/guice/resources/META-INF/jboss-app.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <!DOCTYPE jboss-app
+ PUBLIC "-//JBoss//DTD J2EE Application 4.2//EN"
+ "http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd">
+
+<jboss-app>
+ <loader-repository>
+ seam.jboss.org:loader=seam-guice
+ </loader-repository>
+</jboss-app>
\ No newline at end of file
Added: trunk/examples/guice/resources/WEB-INF/components.xml
===================================================================
--- trunk/examples/guice/resources/WEB-INF/components.xml (rev 0)
+++ trunk/examples/guice/resources/WEB-INF/components.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<components xmlns="http://jboss.com/products/seam/components"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:core="http://jboss.com/products/seam/core"
+ xmlns:guice="http://jboss.com/products/seam/guice"
+ xsi:schemaLocation="
+ http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd
+ http://jboss.com/products/seam/guice http://jboss.com/products/seam/guice-2.1.xsd
+ http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd">
+
+ <core:init debug="true"/>
+
+ <guice:injector name="guiceExampleInjector">
+ <guice:modules>
+ <value>org.jboss.seam.example.guice.JuiceBarModule</value>
+ </guice:modules>
+ </guice:injector>
+
+ <guice:init injector="#{guiceExampleInjector}"/>
+
+</components>
Added: trunk/examples/guice/resources/WEB-INF/faces-config.xml
===================================================================
--- trunk/examples/guice/resources/WEB-INF/faces-config.xml (rev 0)
+++ trunk/examples/guice/resources/WEB-INF/faces-config.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<faces-config version="1.2"
+ xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
+
+ <application>
+ <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
+ </application>
+
+</faces-config>
Added: trunk/examples/guice/resources/WEB-INF/web.xml
===================================================================
--- trunk/examples/guice/resources/WEB-INF/web.xml (rev 0)
+++ trunk/examples/guice/resources/WEB-INF/web.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.5"
+ xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+
+ <display-name>Seam Guice Example</display-name>
+
+ <listener>
+ <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
+ </listener>
+
+ <filter>
+ <filter-name>Seam Filter</filter-name>
+ <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
+ </filter>
+
+ <filter-mapping>
+ <filter-name>Seam Filter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
+ <context-param>
+ <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
+ <param-value>.xhtml</param-value>
+ </context-param>
+
+ <context-param>
+ <param-name>facelets.DEVELOPMENT</param-name>
+ <param-value>true</param-value>
+ </context-param>
+
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.seam</url-pattern>
+ </servlet-mapping>
+
+ <session-config>
+ <session-timeout>10</session-timeout>
+ </session-config>
+
+</web-app>
Added: trunk/examples/guice/resources/seam.properties
===================================================================
Added: trunk/examples/guice/src/org/jboss/seam/example/guice/Juice.java
===================================================================
--- trunk/examples/guice/src/org/jboss/seam/example/guice/Juice.java (rev 0)
+++ trunk/examples/guice/src/org/jboss/seam/example/guice/Juice.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,11 @@
+package org.jboss.seam.example.guice;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+public interface Juice
+{
+ public String getName();
+
+ public int getPrice();
+}
Added: trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceBar.java
===================================================================
--- trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceBar.java (rev 0)
+++ trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceBar.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,26 @@
+package org.jboss.seam.example.guice;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.ioc.guice.Guice;
+import com.google.inject.Inject;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+@Name("juiceBar")
+@Guice // Activates @Inject on a Seam component
+public class JuiceBar
+{
+ @Inject private Juice juiceOfTheDay; // Guice looks at the variable type, not name
+ @Inject @Orange private Juice anotherJuice;
+
+ public Juice getJuiceOfTheDay()
+ {
+ return juiceOfTheDay;
+ }
+
+ public Juice getAnotherJuice()
+ {
+ return anotherJuice;
+ }
+}
Added: trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceBarModule.java
===================================================================
--- trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceBarModule.java (rev 0)
+++ trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceBarModule.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,16 @@
+package org.jboss.seam.example.guice;
+
+import com.google.inject.Module;
+import com.google.inject.Binder;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+public class JuiceBarModule implements Module
+{
+ public void configure(Binder binder)
+ {
+ binder.bind(Juice.class).toInstance(new JuiceImpl("Apple Juice", 10));
+ binder.bind(Juice.class).annotatedWith(Orange.class).toInstance(new JuiceImpl("Orange Juice", 12));
+ }
+}
Added: trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceImpl.java
===================================================================
--- trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceImpl.java (rev 0)
+++ trunk/examples/guice/src/org/jboss/seam/example/guice/JuiceImpl.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,32 @@
+package org.jboss.seam.example.guice;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+public class JuiceImpl implements Juice
+{
+ private String name;
+ private int price;
+
+ public JuiceImpl(String name, int price)
+ {
+ this.name = name;
+ this.price = price;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public int getPrice()
+ {
+ return price;
+ }
+
+ @Override
+ public String toString()
+ {
+ return name + " (" + price + " cents)";
+ }
+}
Added: trunk/examples/guice/src/org/jboss/seam/example/guice/Orange.java
===================================================================
--- trunk/examples/guice/src/org/jboss/seam/example/guice/Orange.java (rev 0)
+++ trunk/examples/guice/src/org/jboss/seam/example/guice/Orange.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,20 @@
+package org.jboss.seam.example.guice;
+
+import com.google.inject.BindingAnnotation;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.ElementType;
+
+/**
+ * Indicates we want the orange version of a binding.
+ *
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+(a)Retention(RetentionPolicy.RUNTIME)
+(a)Target({ElementType.FIELD, ElementType.PARAMETER})
+@BindingAnnotation
+public @interface Orange
+{
+}
Added: trunk/examples/guice/src/org/jboss/seam/example/guice/test/GuiceTest.java
===================================================================
--- trunk/examples/guice/src/org/jboss/seam/example/guice/test/GuiceTest.java (rev 0)
+++ trunk/examples/guice/src/org/jboss/seam/example/guice/test/GuiceTest.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,33 @@
+package org.jboss.seam.example.guice.test;
+
+import org.jboss.seam.example.guice.JuiceBar;
+import org.jboss.seam.mock.SeamTest;
+import org.jboss.seam.ioc.guice.Injector;
+import org.testng.annotations.Test;
+
+import java.util.Arrays;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+public class GuiceTest extends SeamTest
+{
+ private static final String[] expectedModules = { "org.jboss.seam.example.guice.JuiceBarModule" };
+
+ @Test
+ public void testGuice()
+ {
+ new ComponentTest()
+ {
+ protected void testComponents() throws Exception
+ {
+ Injector injector = (Injector) getValue("guiceExampleInjector");
+ assert Arrays.equals(expectedModules, injector.getModules());
+
+ JuiceBar juiceBar = (JuiceBar) getValue("juiceBar");
+ assert "Apple Juice".equals(juiceBar.getJuiceOfTheDay().getName());
+ assert "Orange Juice".equals(juiceBar.getAnotherJuice().getName());
+ }
+ };
+ }
+}
Added: trunk/examples/guice/src/org/jboss/seam/example/guice/test/testng.xml
===================================================================
--- trunk/examples/guice/src/org/jboss/seam/example/guice/test/testng.xml (rev 0)
+++ trunk/examples/guice/src/org/jboss/seam/example/guice/test/testng.xml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,11 @@
+<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" >
+
+<suite name="Guice" verbose="2" parallel="false">
+
+ <test name="Guice">
+ <classes>
+ <class name="org.jboss.seam.example.guice.test.GuiceTest"/>
+ </classes>
+ </test>
+
+</suite>
\ No newline at end of file
Added: trunk/examples/guice/view/bar.xhtml
===================================================================
--- trunk/examples/guice/view/bar.xhtml (rev 0)
+++ trunk/examples/guice/view/bar.xhtml 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core">
+ <head>
+ <title>Juice Bar</title>
+ </head>
+ <body>
+ <h1>Juice Bar</h1>
+ <h:form id="main">
+ <div>
+ Which juice do you prefer?
+ <ul>
+ <li>#{juiceBar.juiceOfTheDay.name}* - #{juiceBar.juiceOfTheDay.price} cents</li>
+ <li>#{juiceBar.anotherJuice.name} - #{juiceBar.anotherJuice.price} cents</li>
+ </ul>
+ <p><em>* Juice of the day</em></p>
+ </div>
+ </h:form>
+ </body>
+</html>
Added: trunk/examples/guice/view/index.html
===================================================================
--- trunk/examples/guice/view/index.html (rev 0)
+++ trunk/examples/guice/view/index.html 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,5 @@
+<html>
+<head>
+ <meta http-equiv="Refresh" content="0; URL=bar.seam">
+</head>
+</html>
\ No newline at end of file
Added: trunk/src/ioc/org/jboss/seam/ioc/guice/Guice.java
===================================================================
--- trunk/src/ioc/org/jboss/seam/ioc/guice/Guice.java (rev 0)
+++ trunk/src/ioc/org/jboss/seam/ioc/guice/Guice.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,25 @@
+package org.jboss.seam.ioc.guice;
+
+import org.jboss.seam.annotations.intercept.Interceptors;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Google Guice support. Allows use of Guice injection inside Seam component.
+ *
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+@Target(TYPE)
+@Retention(RUNTIME)
+(a)Interceptors(GuiceInterceptor.class)
+public @interface Guice
+{
+ /**
+ * Name of the Guice injector component.
+ * By default the injector specified in the components.xml file is used.
+ */
+ String value() default "";
+}
Added: trunk/src/ioc/org/jboss/seam/ioc/guice/GuiceInit.java
===================================================================
--- trunk/src/ioc/org/jboss/seam/ioc/guice/GuiceInit.java (rev 0)
+++ trunk/src/ioc/org/jboss/seam/ioc/guice/GuiceInit.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,48 @@
+package org.jboss.seam.ioc.guice;
+
+import static org.jboss.seam.annotations.Install.FRAMEWORK;
+
+import java.io.Serializable;
+
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Install;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.Startup;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+
+import com.google.inject.Injector;
+
+/**
+ * Guice support configuration component. Holds reference to the default
+ * injector.
+ *
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+@Name("org.jboss.seam.ioc.guice.init")
+(a)Scope(ScopeType.APPLICATION)
+@Startup
+@Install(precedence = FRAMEWORK, classDependencies = "com.google.inject.Injector")
+@BypassInterceptors
+public class GuiceInit implements Serializable
+{
+ private static final long serialVersionUID = -1517814449129434488L;
+
+ private Injector injector;
+
+ public Injector getInjector()
+ {
+ return injector;
+ }
+
+ public void setInjector(Injector injector)
+ {
+ this.injector = injector;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "org.jboss.seam.ioc.guice.init(" + injector + ")";
+ }
+}
Added: trunk/src/ioc/org/jboss/seam/ioc/guice/GuiceInterceptor.java
===================================================================
--- trunk/src/ioc/org/jboss/seam/ioc/guice/GuiceInterceptor.java (rev 0)
+++ trunk/src/ioc/org/jboss/seam/ioc/guice/GuiceInterceptor.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,99 @@
+package org.jboss.seam.ioc.guice;
+
+import org.jboss.seam.Component;
+import org.jboss.seam.annotations.intercept.AroundInvoke;
+import org.jboss.seam.annotations.intercept.Interceptor;
+import org.jboss.seam.core.Expressions;
+import org.jboss.seam.intercept.InvocationContext;
+import org.jboss.seam.log.Log;
+import org.jboss.seam.log.Logging;
+
+import com.google.inject.Injector;
+
+/**
+ * Triggers Guice injection on a Seam component.
+ *
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ * @author Tomasz Szymanski (tszymanski [at] jboss.org)
+ */
+@Interceptor
+public class GuiceInterceptor
+{
+ private static final Log log = Logging.getLog(GuiceInterceptor.class);
+
+ private static final long serialVersionUID = -6716553117162905303L;
+
+ private transient Injector defaultInjector = null;
+
+ @AroundInvoke
+ public Object aroundInvoke(InvocationContext invocationContext) throws Exception
+ {
+ final Injector injector = getInjectorForClass(invocationContext.getMethod().getDeclaringClass());
+
+ if (log.isTraceEnabled())
+ {
+ log.trace("Injecting members of: #0", invocationContext.getTarget().getClass().getName());
+ }
+
+ injector.injectMembers(invocationContext.getTarget());
+
+ return invocationContext.proceed();
+ }
+
+ private Injector getInjectorForClass(final Class<?> declaringClass)
+ {
+ final String expr;
+ Guice guice = declaringClass.getAnnotation(Guice.class);
+ if (guice != null) {
+ expr = guice.value();
+ }
+ else {
+ expr = null;
+ }
+
+ // Optimize lookups for default injector
+ return (expr != null && expr.length() > 0)
+ ? getInjectorByName(expr) : getCachedDefaultInjector();
+ }
+
+ private Injector getCachedDefaultInjector()
+ {
+ if (defaultInjector == null)
+ {
+ GuiceInit init = (GuiceInit) Component.getInstance(GuiceInit.class);
+
+ if (init != null)
+ {
+ defaultInjector = init.getInjector();
+ }
+
+ if (defaultInjector == null)
+ {
+ throw new IllegalStateException("Default Guice injector not specified.");
+ }
+ }
+
+ return defaultInjector;
+ }
+
+ public static Injector getInjectorByName(final String expr)
+ {
+ Object result;
+
+ if (expr.startsWith("#"))
+ {
+ result = Expressions.instance().createValueExpression(expr).getValue();
+ }
+ else
+ {
+ result = Component.getInstance(expr);
+ }
+
+ if (!(result instanceof Injector))
+ {
+ throw new IllegalArgumentException("Expression '" + expr + "' does not evaluate to a Guice injector.");
+ }
+
+ return (Injector) result;
+ }
+}
Added: trunk/src/ioc/org/jboss/seam/ioc/guice/Injector.java
===================================================================
--- trunk/src/ioc/org/jboss/seam/ioc/guice/Injector.java (rev 0)
+++ trunk/src/ioc/org/jboss/seam/ioc/guice/Injector.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,93 @@
+package org.jboss.seam.ioc.guice;
+
+import com.google.inject.Guice;
+import com.google.inject.Module;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.*;
+import static org.jboss.seam.annotations.Install.FRAMEWORK;
+import org.jboss.seam.log.LogProvider;
+import org.jboss.seam.log.Logging;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Creates Guice injector from a list of modules.
+ *
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+@Name("org.jboss.seam.ioc.guice.injector")
+(a)Scope(ScopeType.APPLICATION)
+@Startup
+@Install(value=false, precedence = FRAMEWORK)
+public class Injector implements Serializable
+{
+ private static final long serialVersionUID = 8935525407647910950L;
+
+ private static final LogProvider log = Logging.getLogProvider(Injector.class);
+
+ private String[] modules;
+
+ private com.google.inject.Injector injector = null;
+
+ @Unwrap
+ public com.google.inject.Injector getInjector()
+ {
+ return injector;
+ }
+
+ @Create
+ public void createInjector() throws IllegalAccessException, InstantiationException, ClassNotFoundException
+ {
+ if ((modules == null) || (modules.length == 0))
+ {
+ throw new IllegalArgumentException("No Guice module specified.");
+ }
+
+ log.info("Creating injector '" +
+ "'from modules: " + Arrays.toString(modules));
+
+ final List<Module> moduleList = getModuleList(modules);
+
+ injector = Guice.createInjector(moduleList);
+ }
+
+ private static List<Module> getModuleList(String[] modules) throws IllegalAccessException, InstantiationException, ClassNotFoundException
+ {
+ List<Module> moduleList = new ArrayList<Module>();
+
+ for (String m : modules)
+ {
+ Module module = getModule(m);
+ moduleList.add(module);
+ }
+
+ return moduleList;
+ }
+
+ private static Module getModule(String className)
+ {
+ try
+ {
+ final Class<?> clazz = Class.forName(className, true, Thread.currentThread().getContextClassLoader());
+
+ return (Module) clazz.newInstance();
+ }
+ catch (Exception e)
+ {
+ throw new IllegalArgumentException("Unable to create guice module: " + className, e);
+ }
+ }
+
+ public String[] getModules()
+ {
+ return modules;
+ }
+
+ public void setModules(String[] modules)
+ {
+ this.modules = modules;
+ }
+}
Added: trunk/src/ioc/org/jboss/seam/ioc/guice/guice-2.1.xsd
===================================================================
--- trunk/src/ioc/org/jboss/seam/ioc/guice/guice-2.1.xsd (rev 0)
+++ trunk/src/ioc/org/jboss/seam/ioc/guice/guice-2.1.xsd 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
+ targetNamespace="http://jboss.com/products/seam/guice" xmlns:guice="http://jboss.com/products/seam/guice"
+ xmlns:components="http://jboss.com/products/seam/components" attributeFormDefault="unqualified">
+
+ <xs:import namespace="http://jboss.com/products/seam/components"
+ schemaLocation="http://jboss.com/products/seam/components-2.1.xsd"/>
+
+ <xs:element name="init">
+ <xs:annotation>
+ <xs:documentation>Guice Support Configuration</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:attributeGroup ref="guice:attlist.guiceInit"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="attlist.guiceInit">
+ <xs:attribute name="injector" type="components:string"/>
+ </xs:attributeGroup>
+
+ <xs:element name="injector">
+ <xs:annotation>
+ <xs:documentation>Guice Injector</xs:documentation>
+ </xs:annotation>
+ <xs:complexType mixed="true">
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="modules" type="components:multiValuedProperty">
+ <xs:annotation>
+ <xs:documentation>A list of modules</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:choice>
+ <xs:attributeGroup ref="components:attlist.component"/>
+ <xs:attributeGroup ref="guice:attlist.guiceInjector"/>
+ </xs:complexType>
+ </xs:element>
+ <xs:attributeGroup name="attlist.guiceInjector"/>
+
+</xs:schema>
Added: trunk/src/ioc/org/jboss/seam/ioc/guice/package-info.java
===================================================================
--- trunk/src/ioc/org/jboss/seam/ioc/guice/package-info.java (rev 0)
+++ trunk/src/ioc/org/jboss/seam/ioc/guice/package-info.java 2009-04-11 06:33:19 UTC (rev 10386)
@@ -0,0 +1,6 @@
+@Namespace(value="http://jboss.com/products/seam/guice", prefix = "org.jboss.seam.ioc.guice")
+@AutoCreate
+package org.jboss.seam.ioc.guice;
+
+import org.jboss.seam.annotations.Namespace;
+import org.jboss.seam.annotations.AutoCreate;
15 years, 7 months
Seam SVN: r10385 - in trunk/examples/metawidget: dvdstore and 1 other directories.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-04-11 02:32:03 -0400 (Sat, 11 Apr 2009)
New Revision: 10385
Modified:
trunk/examples/metawidget/booking/readme.txt
trunk/examples/metawidget/dvdstore/readme.txt
trunk/examples/metawidget/groovybooking/readme.txt
Log:
clarify setup instructions
Modified: trunk/examples/metawidget/booking/readme.txt
===================================================================
--- trunk/examples/metawidget/booking/readme.txt 2009-04-11 06:31:37 UTC (rev 10384)
+++ trunk/examples/metawidget/booking/readme.txt 2009-04-11 06:32:03 UTC (rev 10385)
@@ -8,10 +8,14 @@
The source files in this example are just the overrides needed to utilize
metawidget. Before the example is built, these overrides are merged with the
original booking source code in a staging directory. This step is performed
-by following command, which is automatically called on any Ant build:
+by following command:
ant stage
+The stage command is automatically called on any Ant build, so you can simply run:
+
+ ant explode
+
This example runs on JBoss AS as an EAR or Tomcat with JBoss Embedded as a WAR.
example.name=booking
Modified: trunk/examples/metawidget/dvdstore/readme.txt
===================================================================
--- trunk/examples/metawidget/dvdstore/readme.txt 2009-04-11 06:31:37 UTC (rev 10384)
+++ trunk/examples/metawidget/dvdstore/readme.txt 2009-04-11 06:32:03 UTC (rev 10385)
@@ -10,6 +10,10 @@
The source files in this example are just the overrides needed to utilize
metawidget. Before the example is built, these overrides are merged with the
original dvdstore source code in a staging directory. This step is performed
-by following command, which is automatically called on any Ant build:
+by following command:
ant stage
+
+The stage command is automatically called on any Ant build, so you can simply run:
+
+ ant explode
Modified: trunk/examples/metawidget/groovybooking/readme.txt
===================================================================
--- trunk/examples/metawidget/groovybooking/readme.txt 2009-04-11 06:31:37 UTC (rev 10384)
+++ trunk/examples/metawidget/groovybooking/readme.txt 2009-04-11 06:32:03 UTC (rev 10385)
@@ -13,10 +13,14 @@
The source files in this example are just the overrides needed to utilize
metawidget. Before the example is built, these overrides are merged with the
original groovybooking source code in a staging directory. This step is performed
-by following command, which is automatically called on any Ant build:
+by following command:
ant stage
+The stage command is automatically called on any Ant build, so you can simply run:
+
+ ant explode
+
When editing Groovy files from the src/action directory, you can run "ant
build jbosswar.explode" to see your changes take effect. When editing Groovy files
from src/model, you need to run "ant build jbosswar.explode jbosswar.restart"
15 years, 7 months
Seam SVN: r10384 - trunk/doc/Seam_Reference_Guide/en-US.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-04-11 02:31:37 -0400 (Sat, 11 Apr 2009)
New Revision: 10384
Modified:
trunk/doc/Seam_Reference_Guide/en-US/Spring.xml
Log:
spring is not a module, ioc is the module
Modified: trunk/doc/Seam_Reference_Guide/en-US/Spring.xml
===================================================================
--- trunk/doc/Seam_Reference_Guide/en-US/Spring.xml 2009-04-11 06:31:16 UTC (rev 10383)
+++ trunk/doc/Seam_Reference_Guide/en-US/Spring.xml 2009-04-11 06:31:37 UTC (rev 10384)
@@ -5,7 +5,7 @@
<title>Spring Framework integration</title>
- <para>The Spring integration module allows easy migration of Spring-based projects to Seam and allows Spring
+ <para>The Spring integration (part of the Seam IoC module) allows easy migration of Spring-based projects to Seam and allows Spring
applications to take advantage of key Seam features like conversations and Seam's more sophisticated persistence
context management.</para>
15 years, 7 months
Seam SVN: r10383 - trunk/ui/src/main/config/component.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2009-04-11 02:31:16 -0400 (Sat, 11 Apr 2009)
New Revision: 10383
Modified:
trunk/ui/src/main/config/component/token.xml
Log:
add detail to description
Modified: trunk/ui/src/main/config/component/token.xml
===================================================================
--- trunk/ui/src/main/config/component/token.xml 2009-04-11 06:28:26 UTC (rev 10382)
+++ trunk/ui/src/main/config/component/token.xml 2009-04-11 06:31:16 UTC (rev 10383)
@@ -7,7 +7,7 @@
<classname>org.jboss.seam.ui.component.html.HtmlToken</classname>
<superclass>org.jboss.seam.ui.component.UIToken</superclass>
<description>
- <![CDATA[Render a secure token for the parent form that is validated on postback.]]>
+ <![CDATA[Render a secure token in the parent form that is validated on postback to guard against CSRF attacks.]]>
</description>
<renderer generate="false" override="false">
<name>org.jboss.seam.ui.TokenRenderer</name>
15 years, 7 months