[webbeans-commits] Webbeans SVN: r892 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-01-12 11:17:02 -0500 (Mon, 12 Jan 2009)
New Revision: 892
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java
Log:
ditch getInstance()
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java 2009-01-12 16:16:40 UTC (rev 891)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java 2009-01-12 16:17:02 UTC (rev 892)
@@ -44,7 +44,6 @@
{
private final AnnotatedMember<?, ?> memberInjectionPoint;
private final Bean<?> bean;
- private final Object beanInstance;
/**
* Creates a new metadata bean for the given injection point information.
@@ -53,16 +52,15 @@
* @param bean The bean being injected
* @param beanInstance The instance of the bean being injected
*/
- public InjectionPointImpl(AnnotatedMember<?, ?> injectedMember, Bean<?> bean, Object beanInstance)
+ public InjectionPointImpl(AnnotatedMember<?, ?> injectedMember, Bean<?> bean)
{
this.memberInjectionPoint = injectedMember;
this.bean = bean;
- this.beanInstance = beanInstance;
}
public static InjectionPointImpl of(AnnotatedMember<?, ?> member)
{
- return new InjectionPointImpl(member, null, null);
+ return new InjectionPointImpl(member, null);
}
public boolean isField()
@@ -105,11 +103,6 @@
return this.memberInjectionPoint.getBindingTypes();
}
- public Object getInstance()
- {
- return this.beanInstance;
- }
-
public Member getMember()
{
return this.memberInjectionPoint.getMember();
16 years
[webbeans-commits] Webbeans SVN: r891 - ri/trunk/webbeans-api/src/main/java/javax/webbeans.
by webbeans-commits@lists.jboss.org
Author: gavin.king(a)jboss.com
Date: 2009-01-12 11:16:40 -0500 (Mon, 12 Jan 2009)
New Revision: 891
Modified:
ri/trunk/webbeans-api/src/main/java/javax/webbeans/InjectionPoint.java
Log:
ditch getInstance()
Modified: ri/trunk/webbeans-api/src/main/java/javax/webbeans/InjectionPoint.java
===================================================================
--- ri/trunk/webbeans-api/src/main/java/javax/webbeans/InjectionPoint.java 2009-01-12 15:02:39 UTC (rev 890)
+++ ri/trunk/webbeans-api/src/main/java/javax/webbeans/InjectionPoint.java 2009-01-12 16:16:40 UTC (rev 891)
@@ -58,15 +58,6 @@
public Set<Annotation> getBindingTypes();
/**
- * Get the Web Bean instance into which the dependent object was injected
- *
- * @return the Web Bean instance into which the dependent object was injected
- * @throws IllegalStateException
- * if invoked while the instance is being created or destroyed
- */
- public Object getInstance();
-
- /**
* Get the Bean object representing the Web Bean that defines the injection
* point
*
16 years
[webbeans-commits] Webbeans SVN: r890 - doc/trunk/reference/zh-TW.
by webbeans-commits@lists.jboss.org
Author: tchuang
Date: 2009-01-12 10:02:39 -0500 (Mon, 12 Jan 2009)
New Revision: 890
Modified:
doc/trunk/reference/zh-TW/ee.po
doc/trunk/reference/zh-TW/example.po
Log:
translations updated
Modified: doc/trunk/reference/zh-TW/ee.po
===================================================================
--- doc/trunk/reference/zh-TW/ee.po 2009-01-12 14:43:50 UTC (rev 889)
+++ doc/trunk/reference/zh-TW/ee.po 2009-01-12 15:02:39 UTC (rev 890)
@@ -8,7 +8,7 @@
"Project-Id-Version: ee\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-12 17:24+1000\n"
+"PO-Revision-Date: 2009-01-13 00:47+1000\n"
"Last-Translator: Terry Chuang <tchuang(a)redhat.com>\n"
"Language-Team: Traditional Chinese <zh(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -182,12 +182,13 @@
#. Tag: para
#: ee.xml:42
#, no-c-format
-#, fuzzy
msgid ""
"The Web Beans client proxy takes care of routing method invocations from the "
"Servlet to the correct instances of <literal>Credentials</literal> and "
"<literal>Login</literal> for the current request and HTTP session."
-msgstr "Web Bean 的客戶端 proxy 能處理路由"
+msgstr ""
+"Web Bean 的客戶端 proxy 能為目前的請求以及 HTTP session 處理由 Servlet 至 <literal>Credentials</literal> 和 "
+"<literal>Login</literal> 的正確事例的 routing method 調用。"
#. Tag: title
#: ee.xml:49
Modified: doc/trunk/reference/zh-TW/example.po
===================================================================
--- doc/trunk/reference/zh-TW/example.po 2009-01-12 14:43:50 UTC (rev 889)
+++ doc/trunk/reference/zh-TW/example.po 2009-01-12 15:02:39 UTC (rev 890)
@@ -8,7 +8,7 @@
"Project-Id-Version: example\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-08 09:49+1000\n"
+"PO-Revision-Date: 2009-01-13 01:02+1000\n"
"Last-Translator: Terry Chuang <tchuang(a)redhat.com>\n"
"Language-Team: Traditional Chinese <zh(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
#: example.xml:4
#, no-c-format
msgid "JSF web application example"
-msgstr ""
+msgstr "JSF 網站應用程式範例"
#. Tag: para
#: example.xml:6
@@ -29,7 +29,7 @@
"Let's illustrate these ideas with a full example. We're going to implement "
"user login/logout for an application that uses JSF. First, we'll define a "
"Web Bean to hold the username and password entered during login:"
-msgstr ""
+msgstr "現在我們將採用一個完整的範例來描述這些概念。我們將要為一個使用 JSF 的應用程式實做用戶的登錄/登出。首先,我們將要定義一個 Web Bean 來在登錄時保持已輸入的用戶名稱與密碼:"
#. Tag: programlisting
#: example.xml:11
@@ -67,7 +67,7 @@
#: example.xml:13
#, no-c-format
msgid "This Web Bean is bound to the login prompt in the following JSF form:"
-msgstr ""
+msgstr "這個 Web Bean 已透過下列 JSF 格式綁定至登錄提示:"
#. Tag: programlisting
#: example.xml:15
@@ -106,7 +106,7 @@
"The actual work is done by a session scoped Web Bean that maintains "
"information about the currently logged-in user and exposes the "
"<literal>User</literal> entity to other Web Beans:"
-msgstr ""
+msgstr "實際的工作是由 session 導向的 Web Bean 所完成的,這個 Web Bean 保留了有關於目前已登入用戶的相關資料並將 <literal>User</literal> 這個 entity 提供給其它 Web Bean:"
#. Tag: programlisting
#: example.xml:21
@@ -190,7 +190,7 @@
#: example.xml:23
#, no-c-format
msgid "Of course, <literal>@LoggedIn</literal> is a binding annotation:"
-msgstr ""
+msgstr "當然,<literal>@LoggedIn</literal> 是個綁定標記:"
#. Tag: programlisting
#: example.xml:25
@@ -210,7 +210,7 @@
#: example.xml:27
#, no-c-format
msgid "Now, any other Web Bean can easily inject the current user:"
-msgstr ""
+msgstr "現在,任何其它 Web Bean 都可輕易地注入目前的用戶:"
#. Tag: programlisting
#: example.xml:29
@@ -249,5 +249,5 @@
"Hopefully, this example gives a flavor of the Web Bean programming model. In "
"the next chapter, we'll explore Web Beans dependency injection in greater "
"depth."
-msgstr ""
+msgstr "但願此範例能針對於 Web Bean 編程模組提供益處。在下個章節當中,我們將會更深入地探討 Web Bean 相依性注入(Web Beans dependency injection)。"
16 years
[webbeans-commits] Webbeans SVN: r889 - doc/trunk/reference/zh-TW.
by webbeans-commits@lists.jboss.org
Author: tchuang
Date: 2009-01-12 09:43:50 -0500 (Mon, 12 Jan 2009)
New Revision: 889
Modified:
doc/trunk/reference/zh-TW/ri.po
Log:
translations updated
Modified: doc/trunk/reference/zh-TW/ri.po
===================================================================
--- doc/trunk/reference/zh-TW/ri.po 2009-01-12 10:37:02 UTC (rev 888)
+++ doc/trunk/reference/zh-TW/ri.po 2009-01-12 14:43:50 UTC (rev 889)
@@ -8,7 +8,7 @@
"Project-Id-Version: ri\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-08 14:07+0000\n"
-"PO-Revision-Date: 2009-01-08 10:58+1000\n"
+"PO-Revision-Date: 2009-01-13 00:43+1000\n"
"Last-Translator: Terry Chuang <tchuang(a)redhat.com>\n"
"Language-Team: Traditional Chinese <zh(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
#: ri.xml:4
#, no-c-format
msgid "The Web Beans Reference Implementation"
-msgstr ""
+msgstr "Web Bean 參照實做"
#. Tag: para
#: ri.xml:6
@@ -31,6 +31,9 @@
"download the latest developer release of Web Beans from the <ulink url="
"\"http://seamframework.org/Download\">the downloads page</ulink>."
msgstr ""
+"Web Bean 參照實作(Web Beans Reference Implementation)開發於 <ulink url="
+"\"http://seamframework.org/WebBeans\">the Seam project</ulink>。您可藉由 <ulink url="
+"\"http://seamframework.org/Download\">the downloads page</ulink> 來下載最新開發人員版本的 Web Bean。"
#. Tag: para
#: ri.xml:13
@@ -40,13 +43,13 @@
"<literal>webbeans-numberguess</literal>, a war example, containing only "
"simple beans, and <literal>webbeans-translator</literal> an ear example, "
"containing enterprise beans. To run the examples you'll need the following:"
-msgstr ""
+msgstr "Web Bean RI 包含了兩個可建置的範例應用程式:<literal>webbeans-numberguess</literal>,這是個 war 範例,並且只包含著基本的 bean,以及 <literal>webbeans-translator</literal>,這是個 ear 範例,並包含著企業級的 bean。若要執行這些範例,您將需要滿足下列需求:"
#. Tag: para
#: ri.xml:22
#, no-c-format
msgid "the latest release of the Web Beans RI,"
-msgstr ""
+msgstr "最新版本的 Web Beans RI、"
#. Tag: para
#: ri.xml:25
@@ -68,6 +71,8 @@
"need to download JBoss AS 5.0.0.GA from <ulink url=\"http://www.jboss.org/"
"jbossas/downloads/\">jboss.org</ulink>, and unzip it. For example:"
msgstr ""
+"目前,Web Beans RI 只能在 JBoss Application Server 5 上執行。您將需要由 <ulink url=\"http://www.jboss.org/"
+"jbossas/downloads/\">jboss.org</ulink> 來下載 JBoss AS 5.0.0.GA,然後再將它解壓縮。例如:"
#. Tag: programlisting
#: ri.xml:39
@@ -86,6 +91,8 @@
"Next, download the Web Beans RI from <ulink url=\"http://seamframework.org/"
"Download\">seamframework.org</ulink>, and unzip it. For example"
msgstr ""
+"接下來,請由 <ulink url=\"http://seamframework.org/"
+"Download\">seamframework.org</ulink> 下載 Web Beans RI 並將它解壓縮。例如"
#. Tag: programlisting
#: ri.xml:47
@@ -105,6 +112,8 @@
"as/build.properties</literal> and set the <literal>jboss.home</literal> "
"property. For example:"
msgstr ""
+"接下來,我們需要讓 Web Bean 知道 JBoss 的位置在哪裡。請編輯 <literal>jboss-"
+"as/build.properties</literal> 然後設置 <literal>jboss.home</literal> 內容。例如:"
#. Tag: programlisting
#: ri.xml:56
@@ -119,7 +128,7 @@
"As Web Beans is a new piece of software, you need to update JBoss AS to run "
"the Web Beans RI. Future versions of JBoss AS will include these updates, "
"and this step won't be necessary."
-msgstr ""
+msgstr "因為 Web Bean 是個新的軟體,您需要更新 JBoss AS 才可執行 Web Bean RI。未來版本的 JBoss AS 將會包含這些更新,因此這個步驟將可被忽略。"
#. Tag: para
#: ri.xml:65
@@ -131,6 +140,8 @@
"container and discover which EJBs are installed in your application. "
"Secondly, an update to JBoss EJB3 is needed."
msgstr ""
+"目前您需要兩個更新。首先一個新的建置器 <literal>webbeans.deployer</literal> 被新增了。這可為 JBoss AS 提供 Web "
+"Bean archive,並能讓 Web Bean RI 查詢 EJB3 container,並找出安裝在您應用程式中的 EJB 為何。接下來,您需要 JBoss EJB3 的更新。"
#. Tag: para
#: ri.xml:74
@@ -138,7 +149,7 @@
msgid ""
"To install the update, you'll need Ant 1.7.0 installed, and the "
"<literal>ANT_HOME</literal> environment variable set. For example:"
-msgstr ""
+msgstr "若要安裝更新,您將需要先安裝 Ant 1.7.0,並設置 <literal>ANT_HOME</literal> 環境變數。例如:"
#. Tag: programlisting
#: ri.xml:79
@@ -156,7 +167,7 @@
msgid ""
"Then, you can install the update. The update script will use Maven to "
"download the Web Beans and EJB3 automatically."
-msgstr ""
+msgstr "接下來,您便可安裝更新。更新 script 將會使用 Maven 來自動地下載 Web Bean 以及 EJB3。"
#. Tag: programlisting
#: ri.xml:86
@@ -172,20 +183,19 @@
#: ri.xml:88
#, no-c-format
msgid "Now, you're ready to deploy your first example!"
-msgstr ""
+msgstr "現在,您已準備好建置您的第一個範例!"
#. Tag: para
#: ri.xml:93
#, no-c-format
-msgid ""
-"The build scripts for the examples offer a number of targets, these are:"
-msgstr ""
+msgid "The build scripts for the examples offer a number of targets, these are:"
+msgstr "這些範例的建置 script 提供了一些目標,它們包含了:"
#. Tag: para
#: ri.xml:99
#, no-c-format
msgid "<literal>ant restart</literal> - deploy the example in exploded format"
-msgstr ""
+msgstr "<literal>ant restart</literal> - 以分解的格式來建置範例"
#. Tag: para
#: ri.xml:105
@@ -193,32 +203,31 @@
msgid ""
"<literal>ant explode</literal> - update an exploded example, without "
"restarting the deployment"
-msgstr ""
+msgstr "<literal>ant explode</literal> - 在不重新建置的情況下更新一個已分解的範例"
#. Tag: para
#: ri.xml:111
#, no-c-format
-msgid ""
-"<literal>ant deploy</literal> - deploy the example in compressed jar format"
-msgstr ""
+msgid "<literal>ant deploy</literal> - deploy the example in compressed jar format"
+msgstr "<literal>ant deploy</literal> - 以 jar 格式來建置範例"
#. Tag: para
#: ri.xml:116
#, no-c-format
msgid "<literal>ant undeploy</literal> - remove the example from the server"
-msgstr ""
+msgstr "<literal>ant undeploy</literal> - 將範例由伺服器中移除"
#. Tag: para
#: ri.xml:121
#, no-c-format
msgid "<literal>ant clean</literal> - clean the example"
-msgstr ""
+msgstr "<literal>ant clean</literal> - 清除範例"
#. Tag: para
#: ri.xml:128
#, no-c-format
msgid "To deploy the numberguess example:"
-msgstr ""
+msgstr "若要建置 numberguess 範例:"
#. Tag: programlisting
#: ri.xml:132
@@ -236,7 +245,7 @@
msgid ""
"Wait for the application to deploy, and enjoy hours of fun at <ulink url="
"\"http://localhost:8080/webbeans-numberguess\"></ulink>!"
-msgstr ""
+msgstr "請等待應用程式的建置,然後在 <ulink url=\"http://localhost:8080/webbeans-numberguess\"></ulink> 花上幾個小時!"
#. Tag: para
#: ri.xml:139
@@ -246,7 +255,7 @@
"text into Latin. The numberguess example is a war example, and uses only "
"simple beans; the translator example is an ear example, and includes "
"enterprise beans, packaged in an EJB module. To try it out:"
-msgstr ""
+msgstr "Web Bean RI 包含了第二個基本範例,它可將您的文字轉譯為拉丁文。numberguess 範例為一個 war 範例,並且只使用基本的 bean;轉譯器範例則為 ear 範例,並且包含著企業級的 bean,封裝於一個 EJB 模組中。若要嘗試:"
#. Tag: programlisting
#: ri.xml:146
@@ -264,13 +273,13 @@
msgid ""
"Wait for the application to deploy, and visit <ulink url=\"http://"
"localhost:8080/webbeans-translator\"></ulink>!"
-msgstr ""
+msgstr "請等待應用程式的建置並進入 <ulink url=\"http://localhost:8080/webbeans-translator\"></ulink>!"
#. Tag: title
#: ri.xml:154
#, no-c-format
msgid "The numberguess example"
-msgstr ""
+msgstr "numberguess 範例"
#. Tag: para
#: ri.xml:156
@@ -279,7 +288,7 @@
"In the numberguess application you get given 10 attempts to guess a number "
"between 1 and 100. After each attempt, you will be told whether you are too "
"high, or too low."
-msgstr ""
+msgstr "在 numberguess 應用程式中,您將會有 10 次機會來猜一個介於 1 至 100 之間的號碼。每當猜過一遍,系統便會告知您您所輸入的數字是否太大或太小。"
#. Tag: para
#: ri.xml:162
@@ -288,7 +297,7 @@
"The numberguess example is comprised of a number of Web Beans, configuration "
"files, and Facelet JSF pages, packaged as a war. Let's start with the "
"configuration files."
-msgstr ""
+msgstr "numberguess 範例包含了 Web Bean 的一個數字、配置檔案,以及 Facelet JSF 頁面,並且封裝為 war。讓我們先從配置檔案開始。"
#. Tag: para
#: ri.xml:168
@@ -298,7 +307,7 @@
"</literal>, which is stored in <literal>WebContent</literal> in the source "
"tree. First, we have <literal>faces-config.xml</literal>, in which we tell "
"JSF to use Facelets:"
-msgstr ""
+msgstr "此範例的所有配置檔案都位於 <literal>WEB-INF/</literal> 中,並且它又儲存在來源樹中的 <literal>WebContent</literal> 裡。首先,我們有個可使用來指定 JSF 來使用 Facelet 的 <literal>faces-config.xml</literal>:"
#. Tag: programlisting
#: ri.xml:176
@@ -336,7 +345,7 @@
msgid ""
"There is an empty <literal>web-beans.xml</literal> file, which marks this "
"application as a Web Beans application."
-msgstr ""
+msgstr "有個空的 <literal>web-beans.xml</literal> 檔案,它會將此應用程式標記為一個 Web Bean 應用程式。"
#. Tag: para
#: ri.xml:183
@@ -346,7 +355,7 @@
#. Tag: section
#: ri.xml:185
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<programlistingco> <areaspec> <area id=\"faces.servlet\" coords=\"12\"/> "
"<area id=\"faces.servlet.mapping\" coords=\"18\"/> <area id=\"faces.default."
@@ -500,11 +509,6 @@
" <session-config>\n"
" <session-timeout>10</session-timeout>\n"
" </session-config>\n"
-" \n"
-" <listener>\n"
-" <listener-class>org.jboss.webbeans.servlet.WebBeansListener</listener-"
-"class>\n"
-" </listener>\n"
"\n"
"</web-app>]]></programlisting> <calloutlist> <callout arearefs=\"faces."
"servlet\"> <para> Enable and load the JSF servlet </para> </callout> "
@@ -513,20 +517,16 @@
"<callout arearefs=\"faces.default.suffix\"> <para> Tell JSF that we will be "
"giving our source files (facelets) an extension of <literal>.jsf</literal> </"
"para> </callout> <callout arearefs=\"session.timeout\"> <para> Configure a "
-"session timeout of 10 minutes </para> </callout> <callout arearefs="
-"\"webbeans.listener\"> <para> Configure the Web Beans listener, so that Web "
-"Beans services can be used in the servlet request </para> </callout> </"
-"calloutlist> </programlistingco> <note> <para> The only configuration "
-"required by the Web Beans RI in <literal>web.xml</literal> is to add the Web "
-"Beans listener. </para> <para> Whilst this demo is a JSF demo, you can use "
-"the Web Beans RI with any Servlet based web framework; just configure the "
-"Web Beans listener. </para> </note> <para> Let's take a look at the Facelet "
-"view: </para> <programlistingco> <areaspec> <area id=\"template\" coords=\"8"
-"\"/> <area id=\"messages\" coords=\"12\"/> <area id=\"instructions\" coords="
-"\"19\"/> <area id=\"guess\" coords=\"25\"/> <area id=\"validator\" coords="
-"\"30\"/> <area id=\"submit\" coords=\"33\"/> </areaspec> <programlisting><!"
-"[CDATA[<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" "
-"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"
+"session timeout of 10 minutes </para> </callout> </calloutlist> </"
+"programlistingco> <note> <para> Whilst this demo is a JSF demo, you can use "
+"the Web Beans RI with any Servlet based web framework. </para> </note> "
+"<para> Let's take a look at the Facelet view: </para> <programlistingco> "
+"<areaspec> <area id=\"template\" coords=\"8\"/> <area id=\"messages\" coords="
+"\"12\"/> <area id=\"instructions\" coords=\"19\"/> <area id=\"guess\" coords="
+"\"25\"/> <area id=\"validator\" coords=\"30\"/> <area id=\"submit\" coords="
+"\"33\"/> </areaspec> <programlisting><![CDATA[<!DOCTYPE html PUBLIC \"-//"
+"W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/"
+"xhtml1-transitional.dtd\">\n"
"<html xmlns=\"http://www.w3.org/1999/xhtml\"\n"
" xmlns:ui=\"http://java.sun.com/jsf/facelets\"\n"
" xmlns:h=\"http://java.sun.com/jsf/html\"\n"
@@ -598,7 +598,7 @@
"The example exists of 4 classes, the first two of which are binding types. "
"First, there is the <literal>@Random</literal> binding type, used for "
"injecting a random number:"
-msgstr ""
+msgstr "範例存有 4 個類別,前兩個為綁定類型。首先,有個使用來注入亂數號碼的 <literal>@Random</literal> 綁定類型:"
#. Tag: programlisting
#: ri.xml:293
@@ -622,7 +622,7 @@
msgid ""
"There is also the <literal>@MaxNumber</literal> binding type, used for "
"injecting the maximum number that can be injected:"
-msgstr ""
+msgstr "還有個用來注入可注入之最大號碼的 <literal>@MaxNumber</literal> 綁定類型:"
#. Tag: programlisting
#: ri.xml:300
@@ -649,7 +649,7 @@
"The <literal>Generator</literal> class is responsible for creating the "
"random number, via a producer method. It also exposes the maximum possible "
"number via a producer method:"
-msgstr ""
+msgstr "<literal>Generator</literal> 類別負責透過產生器的方式來建立亂數號碼。它也會透過一個產生器的方式來顯示最大的可能號碼:"
#. Tag: programlisting
#: ri.xml:308
@@ -709,7 +709,7 @@
msgid ""
"You'll notice that the <literal>Generator</literal> is application scoped; "
"therefore we don't get a different random each time."
-msgstr ""
+msgstr "您將會注意到 <literal>Generator</literal> 是屬於應用程式導向的;因此,我們不會每次都一定能得到不同的亂數號碼。"
#. Tag: para
#: ri.xml:315
@@ -717,7 +717,7 @@
msgid ""
"The final Web Bean in the application is the session scoped <literal>Game</"
"literal>."
-msgstr ""
+msgstr "應用程式中最後的 Web Bean 為 session 導向的 <literal>Game</literal>。"
#. Tag: para
#: ri.xml:320
@@ -728,7 +728,7 @@
"constructor injection to initialize the game with a random number. And of "
"course, we need to tell the player when they've won, so we give feedback "
"with a <literal>FacesMessage</literal>."
-msgstr ""
+msgstr "您將會注意到我們使用了 <literal>@Named</literal> 標記,如此一來我們便可在 JSF 頁面中的 EL 上使用這個 bean。最後,我們使用了 constructor injection 來利用亂數號碼來初始化了這個遊戲。當然,當玩家贏時我們將需要告知玩家,並藉由一個 <literal>FacesMessage</literal> 來給予回應。"
#. Tag: programlisting
#: ri.xml:328
@@ -932,7 +932,7 @@
#: ri.xml:332
#, no-c-format
msgid "The translator example"
-msgstr ""
+msgstr "轉譯器範例"
#. Tag: para
#: ri.xml:334
@@ -940,7 +940,7 @@
msgid ""
"The translator example will take any sentences you enter, and translate them "
"to Latin."
-msgstr ""
+msgstr "轉譯器範例能接受您所輸入的任何句子,然後將它們翻譯成拉丁文。"
#. Tag: para
#: ri.xml:339
@@ -949,7 +949,7 @@
"The translator example is built as an ear, and contains EJBs and enterprise "
"beans. As a result, it's structure is more complex than the numberguess "
"example."
-msgstr ""
+msgstr "轉換器範例被建置為 ear,並包含著 EJB 和企業級的 bean。正因如此,它的結構比 numberguess 範例要複雜得多。"
#. Tag: para
#: ri.xml:346
@@ -957,7 +957,7 @@
msgid ""
"EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, which will make "
"this structure much simpler!"
-msgstr ""
+msgstr "EJB 3.1 和 Jave EE 6 能讓您將 EJB 封裝為 war,並使得該結構變得更為簡樸!"
#. Tag: para
#: ri.xml:352
@@ -966,11 +966,11 @@
"First, let's take a look at the ear aggregator, which is located in "
"<literal>webbeans-translator-ear</literal> module. Maven automatically "
"generates the <literal>application.xml</literal> for us:"
-msgstr ""
+msgstr "首先,讓我們先來看一下 ear 聚合器,它位於 <literal>webbeans-translator-ear</literal> 模組中。Maven 會自動地為我們產生 <literal>application.xml</literal>:"
#. Tag: programlisting
#: ri.xml:358
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[<plugin>\n"
" <groupId>org.apache.maven.plugins</groupId>\n"
@@ -997,10 +997,6 @@
" <contextRoot>/webbeans-translator</contextRoot>\n"
" </webModule>\n"
" </modules>\n"
-" <jboss>\n"
-" <loader-repository>webbeans.jboss.org:loader=webbeans-translator</"
-"loader-repository>\n"
-" </jboss>\n"
" </configuration>\n"
"</plugin>]]>"
@@ -1012,14 +1008,17 @@
"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
"translator</ulink>)."
msgstr ""
+"在此我們將設置 context 路徑,它能提供給我們一個網址(<ulink url=\"http://"
+"localhost:8080/webbeans-translator\">http://localhost:8080/webbeans-"
+"translator</ulink>)。"
#. Tag: para
#: ri.xml:366
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"If you aren't using Maven to generate these files, you would need "
"<literal>META-INF/application.xml</literal>:"
-msgstr "以及 <literal>META-INF/application.xml</literal>:"
+msgstr "若您不使用 Maven 來產生這些檔案,那麼您將需要 <literal>META-INF/application.xml</literal>:"
#. Tag: programlisting
#: ri.xml:371
@@ -1074,7 +1073,7 @@
"Next, lets look at the war. Just as in the numberguess example, we have a "
"<literal>faces-config.xml</literal> (to enabled Facelets) and a <literal>web."
"xml</literal> (to enable JSF) in <literal>WebContent/WEB-INF</literal>."
-msgstr ""
+msgstr "接下來,讓我們看一下 war。就和 numberguess 範例中一樣,我們在 <literal>WebContent/WEB-INF</literal> 中有個 <literal>faces-config.xml</literal>(用來啟用 Facelets)以及一個 <literal>web.xml</literal>(用來啟用 JSF)。"
#. Tag: para
#: ri.xml:381
@@ -1083,7 +1082,7 @@
"More intersting is the facelet used to translate text. Just as in the "
"numberguess example we have a template, which surrounds the form (ommitted "
"here for brevity):"
-msgstr ""
+msgstr "還有更有趣的就是使用來轉換文字的 facelet。就和 numberguess 範例中一樣,我們有個圍繞著 form 的頁面格式(在此將省略不提):"
#. Tag: programlisting
#: ri.xml:387
@@ -1151,7 +1150,7 @@
msgid ""
"The user can enter some text in the lefthand textarea, and hit the translate "
"button to see the result to the right."
-msgstr ""
+msgstr "用戶可在左手邊的文字區域中輸入一些文字,然後點選轉譯按鈕並於右手邊的區域中查看結果。"
#. Tag: para
#: ri.xml:394
@@ -1161,7 +1160,7 @@
"literal>. In <literal>src/main/resources/META-INF</literal> there is just an "
"empty <literal>web-beans.xml</literal>, used to mark the archive as "
"containing Web Beans."
-msgstr ""
+msgstr "最後,讓我們來看一下 ejb 模組 <literal>webbeans-translator-ejb</literal>。在 <literal>src/main/resources/META-INF</literal> 中只有一個用來將 archive 標記為包含著 Web Bean 的空 <literal>web-beans.xml</literal>。"
#. Tag: para
#: ri.xml:402
@@ -1173,7 +1172,7 @@
"literal> and <literal>SentenceTranslator</literal>. You should be getting "
"quite familiar with what a Web Bean looks like by now, so we'll just "
"highlight the most interesting bits here."
-msgstr ""
+msgstr "我們將最有趣的部份保留到了最後,那就是程式碼!該專案含有兩個基本的 bean,<literal>SentanceParser</literal> 和 <literal>TextTranslator</literal>,以及兩個企業級的 bean,<literal>TanslatorControllerBean</literal> 和 <literal>SentenceTranslator</literal>。到了現在您應該已經很熟悉 Web Bean 長得如何了,因此我們在此將只著重於最有趣的部份。"
#. Tag: para
#: ri.xml:412
@@ -1182,7 +1181,7 @@
"Both <literal>SentanceParser</literal> and <literal>TextTranslator</literal> "
"are dependent beans, and <literal>TextTranslator</literal> uses constructor "
"initialization:"
-msgstr ""
+msgstr "<literal>SentanceParser</literal> 和 <literal>TextTranslator</literal> 兩者皆為相依 bean,並且 <literal>TextTranslator</literal> 使用 constructor 初始化:"
#. Tag: programlisting
#: ri.xml:418
@@ -1217,7 +1216,7 @@
"<literal>TextTranslator</literal> is a stateless bean (with a local business "
"interface), where the magic happens - of course, we couldn't develop a full "
"translator, but we gave it a good go!"
-msgstr ""
+msgstr "<literal>TextTranslator</literal> 是個無狀態的 bean(以及一個本地的商業介面)- 當然,我們無法開發一個完整的轉譯器。"
#. Tag: para
#: ri.xml:426
@@ -1226,7 +1225,7 @@
"Finally, there is UI orientated controller, that collects the text from the "
"user, and dispatches it to the translator. This is a request scoped, named, "
"stateful session bean, which injects the translator."
-msgstr ""
+msgstr "最後,有個 UI 導向的控制器,它會藉由用戶收集文字然後將它發送給轉譯器。這是個請求導向、被命名,而有狀態的 session bean,並且會注入轉譯器。"
#. Tag: programlisting
#: ri.xml:432
@@ -1252,13 +1251,13 @@
#: ri.xml:434
#, no-c-format
msgid "The bean also has getters and setters for all the fields on the page."
-msgstr ""
+msgstr "這個 bean 針對於頁面上所有欄位都有 getter 與 setter。"
#. Tag: para
#: ri.xml:438
#, no-c-format
msgid "As this is a stateful session bean, we have to have a remove method:"
-msgstr ""
+msgstr "因為這是個 stateful(有狀態)的 session bean,因此我們必須要有個 remove method:"
#. Tag: programlisting
#: ri.xml:442
@@ -1282,7 +1281,7 @@
msgid ""
"The Web Beans manager will call the remove method for you when the bean is "
"destroyed; in this case at the end of the request."
-msgstr ""
+msgstr "當 bean 被毀掉後,Web Bean 管理員會為您調用 remove 這個 method;在此情況下為請求結束之後。"
#. Tag: para
#: ri.xml:450
@@ -1293,6 +1292,9 @@
"WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</"
"ulink>."
msgstr ""
+"這結束了我們簡短的 Web Bean RI 範例。如欲取得更多有關於 RI 的相關資訊,或是提供相關協助,請參閱 <ulink url=\"http://www.seamframework.org/"
+"WebBeans/Development\">http://www.seamframework.org/WebBeans/Development</"
+"ulink>。"
#. Tag: para
#: ri.xml:456
@@ -1300,72 +1302,5 @@
msgid ""
"We need help in all areas - bug fixing, writing new features, writing "
"examples and translating this reference guide."
-msgstr ""
+msgstr "我們在所有層面都需要協助 - 錯誤修正、編寫新功能、編寫範例,以及翻譯此參照指南。"
-#~ msgid ""
-#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-#~ "<!DOCTYPE jboss-app\n"
-#~ " PUBLIC \"-//JBoss//DTD J2EE Application 4.2//EN\"\n"
-#~ " \"http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd\">\n"
-#~ "<jboss-app>\n"
-#~ " <loader-repository>webbeans.jboss.org:loader=webbeans-translator</"
-#~ "loader-repository>\n"
-#~ "</jboss-app>]]>"
-#~ msgstr ""
-#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-#~ "<!DOCTYPE jboss-app\n"
-#~ " PUBLIC \"-//JBoss//DTD J2EE Application 4.2//EN\"\n"
-#~ " \"http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd\">\n"
-#~ "<jboss-app>\n"
-#~ " <loader-repository>webbeans.jboss.org:loader=webbeans-translator</"
-#~ "loader-repository>\n"
-#~ "</jboss-app>]]>"
-
-#~ msgid ""
-#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-#~ "<ejb-jar xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
-#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
-#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
-#~ "java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd\"\n"
-#~ " version=\"3.0\">\n"
-#~ " \n"
-#~ " <interceptors>\n"
-#~ " <interceptor>\n"
-#~ " <interceptor-class>org.jboss.webbeans.ejb.SessionBeanInterceptor</"
-#~ "interceptor-class>\n"
-#~ " </interceptor>\n"
-#~ " </interceptors>\n"
-#~ " \n"
-#~ " <assembly-descriptor>\n"
-#~ " <interceptor-binding>\n"
-#~ " <ejb-name>*</ejb-name>\n"
-#~ " <interceptor-class>org.jboss.webbeans.ejb."
-#~ "SessionBeanInterceptor</interceptor-class>\n"
-#~ " </interceptor-binding>\n"
-#~ " </assembly-descriptor>\n"
-#~ " \n"
-#~ "</ejb-jar>]]>"
-#~ msgstr ""
-#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-#~ "<ejb-jar xmlns=\"http://java.sun.com/xml/ns/javaee\" \n"
-#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
-#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/javaee http://"
-#~ "java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd\"\n"
-#~ " version=\"3.0\">\n"
-#~ " \n"
-#~ " <interceptors>\n"
-#~ " <interceptor>\n"
-#~ " <interceptor-class>org.jboss.webbeans.ejb.SessionBeanInterceptor</"
-#~ "interceptor-class>\n"
-#~ " </interceptor>\n"
-#~ " </interceptors>\n"
-#~ " \n"
-#~ " <assembly-descriptor>\n"
-#~ " <interceptor-binding>\n"
-#~ " <ejb-name>*</ejb-name>\n"
-#~ " <interceptor-class>org.jboss.webbeans.ejb."
-#~ "SessionBeanInterceptor</interceptor-class>\n"
-#~ " </interceptor-binding>\n"
-#~ " </assembly-descriptor>\n"
-#~ " \n"
-#~ "</ejb-jar>]]>"
16 years
[webbeans-commits] Webbeans SVN: r888 - doc/trunk/reference/zh-TW.
by webbeans-commits@lists.jboss.org
Author: tchuang
Date: 2009-01-12 05:37:02 -0500 (Mon, 12 Jan 2009)
New Revision: 888
Modified:
doc/trunk/reference/zh-TW/ri-spi.po
Log:
translations updated
Modified: doc/trunk/reference/zh-TW/ri-spi.po
===================================================================
--- doc/trunk/reference/zh-TW/ri-spi.po 2009-01-12 07:57:43 UTC (rev 887)
+++ doc/trunk/reference/zh-TW/ri-spi.po 2009-01-12 10:37:02 UTC (rev 888)
@@ -8,7 +8,7 @@
"Project-Id-Version: ri-spi\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-08 14:07+0000\n"
-"PO-Revision-Date: 2009-01-08 10:59+1000\n"
+"PO-Revision-Date: 2009-01-12 20:36+1000\n"
"Last-Translator: Terry Chuang <tchuang(a)redhat.com>\n"
"Language-Team: Traditional Chinese <zh(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -20,7 +20,7 @@
#: ri-spi.xml:4
#, no-c-format
msgid "Integrating the Web Beans RI into other environments"
-msgstr ""
+msgstr "將 Web Bean RI 整合入其它環境中"
#. Tag: para
#: ri-spi.xml:6
@@ -31,7 +31,7 @@
"Glassfish), into a servlet container (like Tomcat), or with an Embedded "
"EJB3.1 implementation is fairly easy. In this Appendix we will briefly "
"discuss the steps needed."
-msgstr ""
+msgstr "目前,Web Bean RI 只能在 JBoss AS 5 中執行;要將 RI 整合入其它 EE 環境中(比方說另一個像是 Glassfish 的應用程式伺服器)、整合入一個 servlet 容器(例如 Tomcat)中,或是和一個崁入式的 EJB3.1 實做整合都是相當容易的。在此附錄中,我們將簡略地討論所需的步驟。"
#. Tag: para
#: ri-spi.xml:15
@@ -41,7 +41,7 @@
"do more work, adding your own contexts and lifecycle. The Web Beans RI "
"currently doesn't expose lifecycle extension points, so you would have to "
"code directly against Web Beans RI classes."
-msgstr ""
+msgstr "您可在一個 SE 環境下執行 Web Bean,不過您必須進行較多步驟,包括新增您自己的 context 和生命週期。Web Bean RI 目前並不會顯示生命週期的延伸點,因此您必須針對於 Web Bean RI 的 class 來直接地進行編程。"
#. Tag: title
#: ri-spi.xml:24
@@ -56,7 +56,7 @@
"The Web Beans SPI is located in <literal>webbeans-ri-spi</literal> module, "
"and packaged as <literal>webbeans-ri-spi.jar</literal>. Some SPIs are "
"optional, if you need to override the default behavior, others are required."
-msgstr ""
+msgstr "Web Bean SPI 位於 <literal>webbeans-ri-spi</literal> 模組中,並且被封裝為 <literal>webbeans-ri-spi.jar</literal>。有些 SPI 為可選的,若您需要置換預設的特性,您則需要其它 SPI。"
#. Tag: para
#: ri-spi.xml:33
@@ -67,13 +67,13 @@
"All property names are the fully qualified class name of the implemented "
"interface; all property values are the fully qualified class name of the "
"implementation class."
-msgstr ""
+msgstr "您可將一個 SPI 的實做作為系統內容來指定,或是在內容檔案 <literal>META-INF/web-beans-ri.properties</literal> 中來指定。所有內容名稱皆為已實做介面的完整類別(class)名稱,並且所有內容值皆為已實做類別的完整類別名稱。"
#. Tag: title
#: ri-spi.xml:43
#, no-c-format
msgid "Web Bean Discovery"
-msgstr "Web Bean Discovery"
+msgstr "Web Bean 搜尋"
#. Tag: programlisting
#: ri-spi.xml:45
@@ -137,6 +137,8 @@
"is self-explanatory (the algorithm is described in Section 11.1 of the JSR-"
"299 specification, and isn't repeated here)."
msgstr ""
+"Web Bean 類別和 <literal>web-bean.xml</literal> 檔案的搜尋相當明顯(演算法描述於 JSR-"
+"299 規格的章節 11.1 中,在此不重複)。"
#. Tag: para
#: ri-spi.xml:53
@@ -147,6 +149,8 @@
"literal>. For each EJB in the application an EJBDescriptor should be "
"discovered:"
msgstr ""
+"Web Bean RI 也會委派 EJB3 bean discovery 至 container,因此它便無須掃描 EJB3 記號或剖析 <literal>ejb-jar.xml</"
+"literal>。針對於應用程式中的各個 EJB 都應該能發現一個 EJBDescriptor:"
#. Tag: programlisting
#: ri-spi.xml:60
@@ -312,7 +316,7 @@
"In addition to these two interfaces, there is "
"<literal>BusinessInterfaceDescriptor</literal> which represents a local "
"business interface (encapsulating the interface class and jndi name)."
-msgstr ""
+msgstr "描述 JavaDoc 的合同已足夠實做一個 EJBDescriptor。除了這兩個介面,還有個代表本地商業介面的 <literal>BusinessInterfaceDescriptor</literal>(包含了介面類別以及 jndi 名稱)。"
#. Tag: para
#: ri-spi.xml:69
@@ -322,7 +326,7 @@
"<literal>WebBeanDiscovery</literal> using the property <literal>org.jboss."
"webbeans.bootstrap.WebBeanDiscovery</literal> with the fully qualified class "
"name as the value. For example:"
-msgstr ""
+msgstr "Web Beans RI 可被指定來透過使用 <literal>org.jboss.webbeans.bootstrap.WebBeanDiscovery</literal> 這個內容以及完整的 class 名稱為值來載入您的 <literal>WebBeanDiscovery</literal> 實做。例如:"
#. Tag: programlisting
#: ri-spi.xml:76
@@ -348,7 +352,7 @@
"however you may want to alter the binding and lookup (for example in an "
"environment where JNDI isn't available). To do this, implement <literal>org."
"jboss.webbeans.spi.resources.Naming</literal>:"
-msgstr ""
+msgstr "Web Beans RI 會實做 JNDI 綁定並依照標準來進行搜尋,不過您可能在某些情況下會希望修改綁定和搜尋(例如在一個 JNDI 無法使用的環境下)。若要如此,請實做 <literal>org.jboss.webbeans.spi.resources.Naming</literal>:"
#. Tag: programlisting
#: ri-spi.xml:90
@@ -402,7 +406,7 @@
#: ri-spi.xml:92 ri-spi.xml:113
#, no-c-format
msgid "and tell the RI to use it:"
-msgstr ""
+msgstr "並告訴 RI 去使用它:"
#. Tag: programlisting
#: ri-spi.xml:96
@@ -426,6 +430,8 @@
"environments. If this is case, you can implement <literal>org.jboss.webbeans."
"spi.ResourceLoader</literal>:"
msgstr ""
+"Web Beans RI 需要在各個時段由 classpath 載入類別和資源。就預設值,它們會被由和使用來載入 RI 相同的 classloader 所載入,不過這對於某些環境來說可能不是不正確的。若是如此,您可實做 <literal>org.jboss.webbeans."
+"spi.ResourceLoader</literal>:"
#. Tag: programlisting
#: ri-spi.xml:111
@@ -495,14 +501,13 @@
#: ri-spi.xml:117
#, no-c-format
msgid "org.jboss.webbeans.resources.spi.ResourceLoader=com.acme.ResourceLoader"
-msgstr ""
-"org.jboss.webbeans.resources.spi.ResourceLoader=com.acme.ResourceLoader"
+msgstr "org.jboss.webbeans.resources.spi.ResourceLoader=com.acme.ResourceLoader"
#. Tag: title
#: ri-spi.xml:124
#, no-c-format
msgid "The contract with the container"
-msgstr ""
+msgstr "與 container 的合同"
#. Tag: para
#: ri-spi.xml:126
@@ -510,13 +515,13 @@
msgid ""
"There are a number of requirements that the Web Beans RI places on the "
"container for correct functioning that fall outside implementation of APIs"
-msgstr ""
+msgstr "Web Bean RI 對於 container 有些需求以便達到 API 實做之外的正確的功能。"
#. Tag: term
#: ri-spi.xml:134
#, no-c-format
msgid "Classloader isolation"
-msgstr ""
+msgstr "Classloader 隔離"
#. Tag: para
#: ri-spi.xml:138
@@ -526,13 +531,13 @@
"deployment of multiple applications, you must enable, automatically, or "
"through user configuation, classloader isolation for each Web Beans "
"application."
-msgstr ""
+msgstr "若您要將 Web Bean RI 整合入某個支援多重應用程式建置的環境中,您就必須為各個 Web Bean 應用程式透過自動的方式,或是透過用戶配置來啟用 classloader 隔離。"
#. Tag: term
#: ri-spi.xml:147
#, no-c-format
msgid "Servlet listener"
-msgstr ""
+msgstr "Servlet listener"
#. Tag: para
#: ri-spi.xml:151
@@ -542,13 +547,13 @@
"register <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> as a "
"Servlet listener, either automatically, or through user configuration, for "
"each Web Beans application which uses Servlet."
-msgstr ""
+msgstr "若您要將 Web Bean 整合入一個 Servlet 環境中,您就必須為各個使用 Servlet 的 Web Bean 應用程式透過自動的方式,或是用戶配置來將 <literal>org.jboss.webbeans.servlet.WebBeansListener</literal> 註冊為一個 Servlet listener,"
#. Tag: term
#: ri-spi.xml:162
#, no-c-format
msgid "Session Bean Interceptor"
-msgstr ""
+msgstr "Session Bean 攔截器"
#. Tag: para
#: ri-spi.xml:166
@@ -559,7 +564,7 @@
"a EJB interceptor for all EJBs in the application, either automatically, or "
"through user configuration, for each Web Beans application which uses "
"enterprise beans."
-msgstr ""
+msgstr "若您要將 Web Bean 整合入一個 EJB 環境中,您就必須針對於各個使用 enterprise bean 的 Web Bean 應用程式來為應用程式中的所有 EJB 透過自動的方式,或是透過用戶配置來將 <literal>org.jboss.webbeans.ejb.SessionBeanInterceptor</literal> 註冊為一個 EJB 攔截器。"
#. Tag: term
#: ri-spi.xml:177
@@ -575,4 +580,5 @@
"deployment of applications, you must insert the <literal>webbeans-ri.jar</"
"literal> into the applications isolated classloader. It cannot be loaded "
"from a shared classloader."
-msgstr ""
+msgstr "若您要將 Web Bean 整合入一個支援應用程式建置的環境中,您就必須將 <literal>webbeans-ri.jar</literal> 插入應用程式隔離的 classholder 中。它無法藉由共享的 classloader 來被載入。"
+
16 years
[webbeans-commits] Webbeans SVN: r887 - doc/trunk/reference/ko-KR.
by webbeans-commits@lists.jboss.org
Author: eukim
Date: 2009-01-12 02:57:43 -0500 (Mon, 12 Jan 2009)
New Revision: 887
Modified:
doc/trunk/reference/ko-KR/ee.po
doc/trunk/reference/ko-KR/example.po
doc/trunk/reference/ko-KR/part1.po
doc/trunk/reference/ko-KR/part2.po
doc/trunk/reference/ko-KR/part3.po
Log:
updated
Modified: doc/trunk/reference/ko-KR/ee.po
===================================================================
--- doc/trunk/reference/ko-KR/ee.po 2009-01-12 07:27:55 UTC (rev 886)
+++ doc/trunk/reference/ko-KR/ee.po 2009-01-12 07:57:43 UTC (rev 887)
@@ -8,7 +8,7 @@
"Project-Id-Version: ee\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-08 10:34+1000\n"
+"PO-Revision-Date: 2009-01-12 17:56+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -16,12 +16,13 @@
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"\n"
#. Tag: title
#: ee.xml:4
#, no-c-format
msgid "Java EE integration"
-msgstr ""
+msgstr "Java EE 통합 "
#. Tag: para
#: ee.xml:6
Modified: doc/trunk/reference/ko-KR/example.po
===================================================================
--- doc/trunk/reference/ko-KR/example.po 2009-01-12 07:27:55 UTC (rev 886)
+++ doc/trunk/reference/ko-KR/example.po 2009-01-12 07:57:43 UTC (rev 887)
@@ -8,7 +8,7 @@
"Project-Id-Version: example\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-08 10:35+1000\n"
+"PO-Revision-Date: 2009-01-12 17:55+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -16,12 +16,13 @@
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
+"\n"
#. Tag: title
#: example.xml:4
#, no-c-format
msgid "JSF web application example"
-msgstr ""
+msgstr "JSF 웹 애플리케이션 예 "
#. Tag: para
#: example.xml:6
Modified: doc/trunk/reference/ko-KR/part1.po
===================================================================
--- doc/trunk/reference/ko-KR/part1.po 2009-01-12 07:27:55 UTC (rev 886)
+++ doc/trunk/reference/ko-KR/part1.po 2009-01-12 07:57:43 UTC (rev 887)
@@ -8,14 +8,14 @@
"Project-Id-Version: part1\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-10 14:18+0000\n"
-"PO-Revision-Date: 2009-01-09 14:58+1000\n"
+"PO-Revision-Date: 2009-01-12 14:19+1000\n"
"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
"\n"
#. Tag: para
@@ -56,8 +56,7 @@
#. Tag: para
#: part1.xml:21
#, no-c-format
-msgid ""
-"interaction via an <emphasis>event notification</emphasis> facility, and"
+msgid "interaction via an <emphasis>event notification</emphasis> facility, and"
msgstr "<emphasis>이벤트 통지</emphasis> 기능을 통한 상호작용 "
#. Tag: para
@@ -69,8 +68,7 @@
"<emphasis>decorator</emphasis>, that is more appropriate for use in solving "
"business problems."
msgstr ""
-"<emphasis>decorator</emphasis>라고 불리는 새로운 종류의 인터셉터와 함께 "
-"<emphasis>인터셉터</emphasis>를 구성요소에 바인딩하기 위한 개선된 접근으로, "
+"<emphasis>데코레이터 (decorator)</emphasis>라고 불리는 새로운 종류의 인터셉터와 함께 <emphasis>인터셉터</emphasis>를 구성요소에 바인딩하기 위한 개선된 접근으로, "
"비지니스 문제 해결을 위해 보다 적절하게 사용됩니다. "
#. Tag: para
@@ -138,7 +136,7 @@
#. Tag: para
#: part1.xml:65
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A Web Bean specifies only the type and semantics of other Web Beans it "
"depends upon. It need not be aware of the actual lifecycle, concrete "
@@ -147,11 +145,8 @@
"model of a Web Bean it depends upon may vary according to the deployment "
"scenario, without affecting any client."
msgstr ""
-"Web Bean은 의존하는 다른 Web Beans의 유형 및 의미 만을 지정합니다. 이는 Web "
-"Bean이 의존하는 다른 클라이언트 또는 스레딩 모델, 실제적인 수명 주기, 구체적 "
-"구현 방식을 인식할 필요가 없습니다. 더 나아가 이는 실제적인 수명주기, 구체적"
-"인 구현 방식, 의존하는 다른 Web Bean 클라이언트 또는 스레딩 모델을 인식할 필"
-"요가 없습니다. "
+"Web Bean은 의존하는 다른 Web Beans의 유형 및 시멘틱 만을 지정합니다. 이는 의존하는 다른 Web Bean 클라이언트 또는 스레딩 모델, 실제적인 수명 주기, 구체적 "
+"구현 방식을 인식할 필요가 없습니다. 더 나아가 이는 의존하는 스레팅 모델, 수명 주기, 구체적 구현 방식은 클라이언트에게 영향을 미치지 않고 운용 방식에 따라 달라질 수 있습니다. "
#. Tag: para
#: part1.xml:72
@@ -159,7 +154,7 @@
msgid ""
"Events, interceptors and decorators enhance the <emphasis>loose-coupling</"
"emphasis> that is inherent in this model:"
-msgstr ""
+msgstr "이벤트, 인터셉터 및 데코레이터는 이러한 모델에 내제된 <emphasis>느슨하게 연결하는 (loose-coupling)</emphasis> 기능을 강화합니다: "
#. Tag: para
#: part1.xml:77
@@ -167,7 +162,7 @@
msgid ""
"<emphasis>event notifications</emphasis> decouple event producers from event "
"consumers,"
-msgstr ""
+msgstr "<emphasis>이벤트 통지</emphasis>는 이벤트 소비자로 부터 이벤트 생산자를 연결 해제합니다 "
#. Tag: para
#: part1.xml:81
@@ -175,7 +170,7 @@
msgid ""
"<emphasis>interceptors</emphasis> decouple technical concerns from business "
"logic, and"
-msgstr ""
+msgstr "<emphasis>인터셉터</emphasis>는 비지니스 로직으로 부터의 기술적 문제를 연결 해제합니다 "
#. Tag: para
#: part1.xml:85
@@ -183,7 +178,7 @@
msgid ""
"<emphasis>decorators</emphasis> allow business concerns to be "
"compartmentalized."
-msgstr ""
+msgstr "<emphasis>데코레이터</emphasis>는 비지니스 문제를 구분하게 합니다. "
#. Tag: para
#: part1.xml:90
@@ -198,6 +193,8 @@
"emphasis>, to wire together Web Beans, their dependencies, their "
"interceptors and decorators and their event consumers."
msgstr ""
+"가장 중요하게 Web Beans은 이러한 모든 기능은 <emphasis>타입 안정적 (typesafe)</emphasis> 방식으로 제공합니다. Web Beans는 협력적 객체를 갖추기 위한 방법을 결정하기 위해 문자열 기반의 식별자를 사용하지 않습니다. XML은 옵션으로 남아있어도 거의 사용되지 않습니다. 대신 Web Beans는 <emphasis>binding annotations</"
+"emphasis>이라는 새로운 패턴과 함께 Java 객체 모델에서 이미 사용 가능한 타이핑 정보를 사용하여 Web Beans 및 Web Beans의 의존성, 인터셉터, 데코레이터 및 이벤트 소비자를 함께 묶습니다. "
#. Tag: para
#: part1.xml:100
@@ -205,25 +202,25 @@
msgid ""
"The Web Beans services are general and apply to the following types of "
"components that exist in the Java EE environment:"
-msgstr ""
+msgstr "Web Beans 서비스는 일반적으로 Java EE 환경에 있는 다음과 같은 구성 요소의 유형에 적용됩니다: "
#. Tag: para
#: part1.xml:105
#, no-c-format
msgid "all JavaBeans,"
-msgstr ""
+msgstr "모든 JavaBeans"
#. Tag: para
#: part1.xml:108
#, no-c-format
msgid "all EJBs, and"
-msgstr ""
+msgstr "모든 EJB "
#. Tag: para
#: part1.xml:111
#, no-c-format
msgid "all Servlets."
-msgstr ""
+msgstr "모든 Servlets "
#. Tag: para
#: part1.xml:115
@@ -233,7 +230,7 @@
"of components defined by future Java EE specifications or by non-standard "
"frameworks may be cleanly integrated with Web Beans, take advantage of the "
"Web Beans services, and interact with any other kind of Web Bean."
-msgstr ""
+msgstr "Web Beans는 통합 지점을 제공하여 차후 Java EE 사양이나 또는 비표준 프레임워크에 의해 지정된 다른 종류의 구성요소가 Web Beans과 통합되어 Web Beans 서비스의 장점을 취하고 다른 종류의 Web Bean과 상호 작용합니다. "
#. Tag: para
#: part1.xml:120
@@ -243,7 +240,7 @@
"Seam, Guice and Spring. However, Web Beans has its own very distinct "
"character: more typesafe than Seam, more stateful and less XML-centric than "
"Spring, more web and enterprise-application capable than Guice."
-msgstr ""
+msgstr "Web Beans는 Seam, Guice, Spring을 포함하여 다수의 기존 Java 프레임워크에 의해 영향을 받았지만 Web Beans은 자체적으로 다음과 같은 고유한 기능을 소유하고 있습니다: Seam 보다 더 타입 안정적, 보다 더 상태 기반적, Spring 보다 덜 XML-중심, Guice 보다 더 웹 및 엔터프라이즈-애플리케이션 기능 "
#. Tag: para
#: part1.xml:125
@@ -252,4 +249,5 @@
"Most importantly, Web Beans is a JCP standard that integrates cleanly with "
"Java EE, and with any Java SE environment where embeddable EJB Lite is "
"available."
-msgstr ""
+msgstr "보다 중요하게 Web Beans는 Java EE 및 내장 가능한 EJB Lite를 사용할 수 있는 Java SE 환경과 통합된 JCP 표준입니다. "
+
Modified: doc/trunk/reference/ko-KR/part2.po
===================================================================
--- doc/trunk/reference/ko-KR/part2.po 2009-01-12 07:27:55 UTC (rev 886)
+++ doc/trunk/reference/ko-KR/part2.po 2009-01-12 07:57:43 UTC (rev 887)
@@ -1,17 +1,21 @@
+# translation of part2.po to Korean
# Language ko-KR translations for Introduction_to_Web_Beans package.
+#
# Automatically generated, 2009.
-#
+# Eunju Kim <eukim(a)redhat.com>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: part2\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-12 17:53+1000\n"
+"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
+"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
#. Tag: para
#: part2.xml:5
@@ -19,20 +23,19 @@
msgid ""
"The first major theme of Web Beans is <emphasis>loose coupling</emphasis>. "
"We've already seen three means of achieving loose coupling:"
-msgstr ""
+msgstr "Web Beans의 첫번째 주요 기능은 <emphasis>느슨한 연결 (loose coupling)</emphasis>입니다. 이러한 느슨한 연결 기능을 실행하기 위한 세가지 방식은 이미 알려져 있습니다: "
#. Tag: para
#: part2.xml:10
#, no-c-format
-msgid ""
-"<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
-msgstr ""
+msgid "<emphasis>deployment types</emphasis> enable deployment time polymorphism,"
+msgstr "<emphasis>배포 유형</emphasis>은 배포 시간 다형성을 활성화합니다 "
#. Tag: para
#: part2.xml:14
#, no-c-format
msgid "<emphasis>producer methods</emphasis> enable runtime polymorphism, and"
-msgstr ""
+msgstr "<emphasis>생산자 방식</emphasis>은 런타임 다형성을 활성화합니다 "
#. Tag: para
#: part2.xml:18
@@ -40,7 +43,7 @@
msgid ""
"<emphasis>contextual lifecycle management</emphasis> decouples Web Bean "
"lifecycles."
-msgstr ""
+msgstr "<emphasis>컨텍스트 수명주기 관리</emphasis>는 Web Bean 수명 주기를 연결 해제합니다. "
#. Tag: para
#: part2.xml:23
@@ -50,7 +53,7 @@
"client is no longer tightly bound to an implementation of an API, nor is it "
"required to manage the lifecycle of the server object. This approach lets "
"<emphasis>stateful objects interact as if they were services</emphasis>."
-msgstr ""
+msgstr "이러한 기술로 클라이언트 및 서버의 느슨한 연결을 활성화할 수 있습니다. 클라이언트는 더이상 API 구현으로 바운딩할 수 없으며, 서버 객체의 수명주기를 관리할 수 없습니다. 이러한 접근으로 <emphasis>상태 기반 객체가 서비스하는 것 처럼 상호 작용</emphasis>하게 합니다. "
#. Tag: para
#: part2.xml:28
@@ -61,7 +64,7 @@
"attempted to provide the facilities listed above invariably did it by "
"sacrificing type safety. Web Beans is the first technology that achieves "
"this level of loose coupling in a typesafe way."
-msgstr ""
+msgstr "느슨한 연결로 시스템이 보다 <emphasis>동적</emphasis>으로 되게 할 수 있습니다. 시스템은 잘 정의된 방식에서의 변경 사항에 대응할 수 있습니다. 위에 나열된 기능을 변함없이 제공하기 위한 이전의 프레임워크는 타입 안정성을 희생하여 이를 실행하였습니다. Web Beans는 타입 안정적 방식에서의 느슨한 연결을 실행하기 위한 첫번째 기술입니다. "
#. Tag: para
#: part2.xml:34
@@ -69,7 +72,7 @@
msgid ""
"Web Beans provides three extra important facilities that further the goal of "
"loose coupling:"
-msgstr ""
+msgstr "Web Beans는 느슨한 연결 기능을 촉진하기 위해 세 가지 중요한 기능을 추가로 제공합니다: "
#. Tag: para
#: part2.xml:39
@@ -77,7 +80,7 @@
msgid ""
"<emphasis>interceptors</emphasis> decouple technical concerns from business "
"logic,"
-msgstr ""
+msgstr "<emphasis>인터셉터</emphasis>는 비지니스 로직으로 부터의 기술적 문제를 연결 해제합니다 "
#. Tag: para
#: part2.xml:43
@@ -85,7 +88,7 @@
msgid ""
"<emphasis>decorators</emphasis> may be used to decouple some business "
"concerns, and"
-msgstr ""
+msgstr "<emphasis>데코레이터</emphasis>는 일부 비지니스 문제를 연결 해제하기 위해 사용될 수 있습니다. "
#. Tag: para
#: part2.xml:47
@@ -93,10 +96,11 @@
msgid ""
"<emphasis>event notifications</emphasis> decouple event producers from event "
"consumers."
-msgstr ""
+msgstr "<emphasis>이벤트 통지</emphasis>는 이벤트 소비자로 부터 이벤트 생산자를 연결 해제합니다. "
#. Tag: para
#: part2.xml:52
#, no-c-format
msgid "Let's explore interceptors first."
-msgstr ""
+msgstr "먼저 인터셉터에 대해 살펴봅시다. "
+
Modified: doc/trunk/reference/ko-KR/part3.po
===================================================================
--- doc/trunk/reference/ko-KR/part3.po 2009-01-12 07:27:55 UTC (rev 886)
+++ doc/trunk/reference/ko-KR/part3.po 2009-01-12 07:57:43 UTC (rev 887)
@@ -1,17 +1,21 @@
+# translation of part3.po to Korean
# Language ko-KR translations for Introduction_to_Web_Beans package.
+#
# Automatically generated, 2009.
-#
+# Eunju Kim <eukim(a)redhat.com>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: part3\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-06 11:30+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-12 17:55+1000\n"
+"Last-Translator: Eunju Kim <eukim(a)redhat.com>\n"
+"Language-Team: Korean <ko(a)li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
#. Tag: para
#: part3.xml:5
@@ -57,25 +61,25 @@
#: part3.xml:26
#, no-c-format
msgid "<literal>@Asynchronous</literal>,"
-msgstr ""
+msgstr "<literal>@Asynchronous</literal>,"
#. Tag: para
#: part3.xml:29
#, no-c-format
msgid "<literal>@Mock</literal>,"
-msgstr ""
+msgstr "<literal>@Mock</literal>,"
#. Tag: para
#: part3.xml:32
#, no-c-format
msgid "<literal>@Secure</literal> or"
-msgstr ""
+msgstr "<literal>@Secure</literal> 또는 "
#. Tag: para
#: part3.xml:35
#, no-c-format
msgid "<literal>@Updated</literal>,"
-msgstr ""
+msgstr "<literal>@Updated</literal>,"
#. Tag: para
#: part3.xml:39
@@ -87,25 +91,25 @@
#: part3.xml:43
#, no-c-format
msgid "<literal>asyncPaymentProcessor</literal>,"
-msgstr ""
+msgstr "<literal>asyncPaymentProcessor</literal>,"
#. Tag: para
#: part3.xml:46
#, no-c-format
msgid "<literal>mockPaymentProcessor</literal>,"
-msgstr ""
+msgstr "<literal>mockPaymentProcessor</literal>,"
#. Tag: para
#: part3.xml:49
#, no-c-format
msgid "<literal>SecurityInterceptor</literal> or"
-msgstr ""
+msgstr "<literal>SecurityInterceptor</literal> 또는 "
#. Tag: para
#: part3.xml:52
#, no-c-format
msgid "<literal>DocumentUpdatedEvent</literal>."
-msgstr ""
+msgstr "<literal>DocumentUpdatedEvent</literal>."
#. Tag: para
#: part3.xml:56
@@ -148,3 +152,4 @@
"emphasis> to use these features, but if you use them wisely, you'll come to "
"appreciate their power."
msgstr ""
+
16 years
[webbeans-commits] Webbeans SVN: r886 - doc/trunk/reference/es-ES.
by webbeans-commits@lists.jboss.org
Author: guegl
Date: 2009-01-12 02:27:55 -0500 (Mon, 12 Jan 2009)
New Revision: 886
Modified:
doc/trunk/reference/es-ES/master.po
Log:
in progress
Modified: doc/trunk/reference/es-ES/master.po
===================================================================
--- doc/trunk/reference/es-ES/master.po 2009-01-12 07:24:57 UTC (rev 885)
+++ doc/trunk/reference/es-ES/master.po 2009-01-12 07:27:55 UTC (rev 886)
@@ -1,23 +1,26 @@
+# translation of master.po to Spanish
# Language es-ES translations for master.xml package.
+#
# Automatically generated, 2008.
-#
+# Gladys Guerrero Lozano <gguerrer(a)redhat.com>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: master\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:29+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-12 17:27+1000\n"
+"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
+"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
#: master.xml:12
#, no-c-format
msgid "Using contextual objects"
-msgstr ""
+msgstr "Uso de objetos contextuales"
#. Tag: title
#: master.xml:25
@@ -29,10 +32,11 @@
#: master.xml:35
#, no-c-format
msgid "Making the most of strong typing"
-msgstr ""
+msgstr "Haciendo lo máximo de un tecleado fuerte"
#. Tag: title
#: master.xml:46
#, no-c-format
msgid "Web Beans and the Java EE ecosystem"
-msgstr ""
+msgstr "Web Beans en el ecosistema EE de Java"
+
16 years
[webbeans-commits] Webbeans SVN: r885 - doc/trunk/reference/zh-TW.
by webbeans-commits@lists.jboss.org
Author: tchuang
Date: 2009-01-12 02:24:57 -0500 (Mon, 12 Jan 2009)
New Revision: 885
Modified:
doc/trunk/reference/zh-TW/ee.po
Log:
translations updated
Modified: doc/trunk/reference/zh-TW/ee.po
===================================================================
--- doc/trunk/reference/zh-TW/ee.po 2009-01-12 07:22:54 UTC (rev 884)
+++ doc/trunk/reference/zh-TW/ee.po 2009-01-12 07:24:57 UTC (rev 885)
@@ -8,7 +8,7 @@
"Project-Id-Version: ee\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-06 11:30+0000\n"
-"PO-Revision-Date: 2009-01-08 19:31+1000\n"
+"PO-Revision-Date: 2009-01-12 17:24+1000\n"
"Last-Translator: Terry Chuang <tchuang(a)redhat.com>\n"
"Language-Team: Traditional Chinese <zh(a)li.org>\n"
"MIME-Version: 1.0\n"
@@ -182,17 +182,18 @@
#. Tag: para
#: ee.xml:42
#, no-c-format
+#, fuzzy
msgid ""
"The Web Beans client proxy takes care of routing method invocations from the "
"Servlet to the correct instances of <literal>Credentials</literal> and "
"<literal>Login</literal> for the current request and HTTP session."
-msgstr ""
+msgstr "Web Bean 的客戶端 proxy 能處理路由"
#. Tag: title
#: ee.xml:49
#, no-c-format
msgid "Calling a Web Bean from a Message-Driven Bean"
-msgstr ""
+msgstr "透過訊息導向的 Bean 來調用 Web Bean"
#. Tag: para
#: ee.xml:51
@@ -203,13 +204,13 @@
"lookup, or injection using <literal>@EJB</literal>, for example. In "
"particular, you can use Web Beans injection in Message-Driven Beans, which "
"are not considered Web Beans because you can't inject them."
-msgstr ""
+msgstr "Web Bean 注入適用於所有 EJB,儘管它們不是由 Web Bean 管理員所控制(比方說若它們是透過直接的 JNDI 搜尋或是透過使用 <literal>@EJB</literal> 來被取得的情況下)。特別是,您可在訊息導向的 Bean 中使用 Web Bean 注入,不過這些 Bean 並不被視為是 Web Bean 因為您無法注入它們。"
#. Tag: para
#: ee.xml:57
#, no-c-format
msgid "You can even use Web Beans interceptor bindings for Message-Driven Beans."
-msgstr ""
+msgstr "針對於訊息導向的 Bean,您甚至可使用 Web Bean 攔截器綁定。"
#. Tag: programlisting
#: ee.xml:59
@@ -247,19 +248,19 @@
"beware that there is no session or conversation context available when a "
"message is delivered to a Message-Driven Bean. Only <literal>@RequestScoped</"
"literal> and <literal>@ApplicationScoped</literal> Web Beans are available."
-msgstr ""
+msgstr "因此,在 Web Bean 環境下,取得訊息是相當地簡單的。不過請注意,當訊息提交至一個訊息導向的 Bean 時,不會有可用的 session 或是對話 context。只有 <literal>@RequestScoped</literal> 和 <literal>@ApplicationScoped</literal> Web Bean 可使用。"
#. Tag: para
#: ee.xml:66
#, no-c-format
msgid "It's also easy to send messages using Web Beans."
-msgstr ""
+msgstr "透過使用 Web Bean 來傳送訊息也相當地簡單。"
#. Tag: title
#: ee.xml:71
#, no-c-format
msgid "JMS endpoints"
-msgstr ""
+msgstr "JMS 端點"
#. Tag: para
#: ee.xml:73
@@ -275,6 +276,9 @@
"literal>. Each of these objects has its own lifecycle and threading model "
"that we need to worry about."
msgstr ""
+"基於需要處理許多不同的物件,因此透過使用 JMS 來傳送訊息可能會相當複雜。針對於 queue,我們有 <literal>Queue</"
+"literal>、<literal>QueueConnectionFactory</literal>、<literal>QueueConnection</literal>、<literal>QueueSession</literal> 以及 <literal>QueueSender</literal>。針對於 topic 我們有 <literal>Topic</literal>、<literal>TopicConnectionFactory</literal>、<literal>TopicConnection</"
+"literal>、<literal>TopicSession</literal> 以及 <literal>TopicPublisher</literal>。針對於各個這些物件,我們都需要去顧及它們自己各別的生命週期和執行緒模型(threading model)。"
#. Tag: para
#: ee.xml:82
@@ -283,7 +287,7 @@
"Web Beans takes care of all this for us. All we need to do is declare the "
"queue or topic in <literal>web-beans.xml</literal>, specifying an associated "
"binding type and connection factory."
-msgstr ""
+msgstr "Web Bean 會全部為我們處理。我們只需要在 <literal>web-beans.xml</literal> 中宣告 queue 或是 topic,指定關聯的綁定類型和連接因數(connection factory)。"
#. Tag: programlisting
#: ee.xml:86
@@ -331,6 +335,9 @@
"<literal>TopicConnection</literal>, <literal>TopicSession</literal> or "
"<literal>TopicPublisher</literal> for a topic."
msgstr ""
+"現在我們只要為 queue 注入 <literal>Queue</literal>、<literal>QueueConnection</literal>、<literal>QueueSession</literal> 或 "
+"<literal>QueueSender</literal>,或是為 topic 注入 <literal>Topic</literal>、<literal>TopicConnection</literal>、<literal>TopicSession</literal> 或是 "
+"<literal>TopicPublisher</literal> 即可。"
#. Tag: programlisting
#: ee.xml:96
@@ -378,13 +385,13 @@
msgid ""
"The lifecycle of the injected JMS objects is completely controlled by the "
"Web Bean manager."
-msgstr ""
+msgstr "被注入的 JMS 物件的生命週期完全由 Web Bean 管理員所控制。"
#. Tag: title
#: ee.xml:106
#, no-c-format
msgid "Packaging and deployment"
-msgstr ""
+msgstr "封裝和建置"
#. Tag: para
#: ee.xml:108
@@ -397,7 +404,7 @@
"INF</literal> or <literal>WEB-INF</literal> directory. The file may be "
"empty. Web Beans deployed in archives that do not have a <literal>web-beans."
"xml</literal> file will not be available for use in the application."
-msgstr ""
+msgstr "Web Bean 不會定義任何特殊的建置 archive。您可將 Web Bean 封裝在 JARs、EJB-JARs 或是 WARs— 中,應用程式 classpath 中的任何建置位置上。不過,各個包含著 Web Bean 的 archive 在 <literal>META-INF</literal> 或是 <literal>WEB-INF</literal> 目錄中都必須包含著一個稱為 <literal>web-beans.xml</literal> 的檔案。該檔案能是空的。建置於一個沒有 <literal>web-beans.xml</literal> 檔案的 archive 中的 Web Bean 將無法使用於應用程式中。"
#. Tag: para
#: ee.xml:116
@@ -406,5 +413,5 @@
"For Java SE execution, Web Beans may be deployed in any location in which "
"EJBs may be deployed for execution by the embeddable EJB Lite container. "
"Again, each location must contain a <literal>web-beans.xml</literal> file."
-msgstr ""
+msgstr "對於 Java SE 的執行來說,Web Bean 可被建置於任何位置上,同時 EJB 亦可被建置來讓可崁入的 EJB Lite container 執行。再次強調,各個位置都必須包含著一個 <literal>web-beans.xml</literal> 檔案。"
16 years
[webbeans-commits] Webbeans SVN: r884 - doc/trunk/reference/es-ES.
by webbeans-commits@lists.jboss.org
Author: guegl
Date: 2009-01-12 02:22:54 -0500 (Mon, 12 Jan 2009)
New Revision: 884
Modified:
doc/trunk/reference/es-ES/injection.po
doc/trunk/reference/es-ES/interceptors.po
doc/trunk/reference/es-ES/intro.po
Log:
in progress
Modified: doc/trunk/reference/es-ES/injection.po
===================================================================
--- doc/trunk/reference/es-ES/injection.po 2009-01-12 07:13:29 UTC (rev 883)
+++ doc/trunk/reference/es-ES/injection.po 2009-01-12 07:22:54 UTC (rev 884)
@@ -8,7 +8,7 @@
"Project-Id-Version: injection\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2009-01-09 16:28+1000\n"
+"PO-Revision-Date: 2009-01-12 14:52+1000\n"
"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
@@ -220,7 +220,7 @@
msgid ""
"The purpose of this algorithm is to allow multiple Web Beans to implement "
"the same API type and either:"
-msgstr "El propósito de este algoritmo es permitir múltiples Web Beans para implementar el mismo tipo API y ya sea:"
+msgstr "El propósito de este algoritmo es permitir a múltiples Web Beans implementar el mismo tipo API ya sea:"
#. Tag: para
#: injection.xml:72
@@ -834,21 +834,20 @@
"browsing the code can easily identify what deployment scenarios the Web Bean "
"will be used in."
msgstr ""
-"Es interesante comparar esta facilidad con las arquitecturas populares de administrador de hoy. Varios contenedores de \"pesoliviano\" también permiten despliegue condicional de clases que existen en el classpath, pero las clases que van a ser desplegadas deben ser explicitamente, listadas de modo individual en el código de configuración o en algún archivo de configuración XML. Web Beans no admite definición de Web Bean "
-"ni configuración vía XML, pero en el común de los casos donde no se requiere una configuración compleja, los tipos de despliegue permite habilitar un conjunto completo de Web "
-"Beans con una sóla línea de XML. Mientras tanto, un desarrollador que esté navegando el código puede fácilmente identificar los escenarios de despliegue en el que el Web Bean se utilizará."
+"Es interesante comparar esta facilidad con las arquitecturas populares de administrador de hoy. Varios contenedores \"ligeros\" también permiten el despliegue condicional de clases que existen en el classpath, pero las clases que van a ser desplegadas deben ser explícitamente, listadas de modo individual en el código de configuración o en algún archivo de configuración XML. Web Beans no admite definición de Web Bean "
+"ni configuración vía XML, pero en el común de los casos donde no se requiere una configuración compleja, los tipos de despliegue permiten habilitar un conjunto completo de Web Beans con una sóla línea de XML. Mientras tanto, un desarrollador que esté navegando el código puede fácilmente identificar en qué escenarios de despliegue se utilizará el Web Bean."
#. Tag: title
#: injection.xml:284
#, no-c-format
msgid "Example deployment types"
-msgstr ""
+msgstr "Ejemplo de tipos de despliegue"
#. Tag: para
#: injection.xml:286
#, no-c-format
msgid "Deployment types are useful for all kinds of things, here's some examples:"
-msgstr ""
+msgstr "Los tipos de despliegue son útilies para toda clase de cosas, algunos ejemplos a continuación:"
#. Tag: para
#: injection.xml:290
@@ -856,7 +855,7 @@
msgid ""
"<literal>@Mock</literal> and <literal>@Staging</literal> deployment types "
"for testing"
-msgstr "<literal>@Mock</literal> and <literal>@Staging</literal> tipos de despliegue para evaluación"
+msgstr "Tipos de despliegue <literal>@Mock</literal> y <literal>@Staging</literal> para pruebas"
#. Tag: para
#: injection.xml:294
@@ -884,13 +883,13 @@
#: injection.xml:306
#, no-c-format
msgid "I'm sure you can think of more applications..."
-msgstr ""
+msgstr "Estoy seguro que puede pensar en más aplicaciones..."
#. Tag: title
#: injection.xml:313
#, no-c-format
msgid "Fixing unsatisfied dependencies"
-msgstr ""
+msgstr "Corregir dependencias insatisfechas"
#. Tag: para
#: injection.xml:315
@@ -900,7 +899,7 @@
"annotations and and deployment types of all Web Beans that implement the API "
"type of an injection point, the Web Bean manager is unable to identify "
"exactly one Web Bean to inject."
-msgstr ""
+msgstr "El algoritmo de resolución typesafe falla cuando, después de considerar las anotaciones de enlace y los tipos de despliegue de todos los Web Beans que implementan el tipo API de un punto de inyección, el administrador de Web Bean no puede identificar con precisión un Web Bean para inyectar."
#. Tag: para
#: injection.xml:320
@@ -909,6 +908,8 @@
"It's usually easy to fix an <literal>UnsatisfiedDependencyException</"
"literal> or <literal>AmbiguousDependencyException</literal>."
msgstr ""
+"Por lo general es fácil corregir un <literal>UnsatisfiedDependencyException</"
+"literal> o una <literal>AmbiguousDependencyException</literal>."
#. Tag: para
#: injection.xml:323
@@ -918,7 +919,7 @@
"a Web Bean which implements the API type and has the binding types of the "
"injection point—or enable the deployment type of a Web Bean that "
"already implements the API type and has the binding types."
-msgstr ""
+msgstr "Para corregir una <literal>UnsatisfiedDependencyException</literal>, basta con proporcionar un Web Bean que implemente el tipo API y tenga los tipos de enlace del punto de inyección—o permita el tipo de despliegue de un Web Bean que ya implemente el tipo API y tenga los tipos de enlace."
#. Tag: para
#: injection.xml:328
@@ -931,6 +932,8 @@
"<literal>AmbiguousDependencyException</literal> can only occur if two Web "
"Beans share a binding type and have exactly the same deployment type."
msgstr ""
+"Para corregir una <literal>AmbiguousDependencyException</literal>, introduzca un tipo de enlace para distinguir entre las dos implementaciones del tipo de API o cambie el tipo de despliegue de una de las implementaciones para que el administrador de Web Bean pueda utilizar la prioridad de tipo de despliegue para escoger entre ellas. Una <literal>AmbiguousDependencyException</literal> sólo puede presentarse si dos Web "
+"Beans comparten un tipo de enlace y tienen exactamente el mismo tipo de despliegue."
#. Tag: para
#: injection.xml:335
@@ -938,13 +941,13 @@
msgid ""
"There's one more issue you need to be aware of when using dependency "
"injection in Web Beans."
-msgstr ""
+msgstr "Hay algo más que necesita saber cuando utilice inyección de dependencia en Web Beans."
#. Tag: title
#: injection.xml:341
#, no-c-format
msgid "Client proxies"
-msgstr ""
+msgstr "Los proxy de cliente"
#. Tag: para
#: injection.xml:343
@@ -952,7 +955,7 @@
msgid ""
"Clients of an injected Web Bean do not usually hold a direct reference to a "
"Web Bean instance."
-msgstr ""
+msgstr "Los clientes de un Web Bean inyectado no suelen mantener una referencia directa a una instancia de Web Bean."
#. Tag: para
#: injection.xml:346
@@ -962,7 +965,7 @@
"reference to a Web Bean bound to the request scope. The application scoped "
"Web Bean is shared between many different requests. However, each request "
"should see a different instance of the request scoped Web bean!"
-msgstr ""
+msgstr "Imagine que un Web Bean vinculado al ámbito de aplicación mantiene una referencia directa a un Web Bean vinculado al ámbito de petición. La aplicación en el ámbito de Web Bean se comparte entre muchas peticiones diferentes. No obstante, cada petición ¡debe ver una instancia diferente de la petición en el ámbito de WebBean!"
#. Tag: para
#: injection.xml:351
@@ -973,7 +976,7 @@
"the session context is serialized to disk in order to use memory more "
"efficiently. However, the application scoped Web Bean instance should not be "
"serialized along with the session scoped Web Bean!"
-msgstr ""
+msgstr "Ahora imaginemos que un enlace de Web Bean a la sesión mantiene una referencia directa a un Web Bean vinculado al ámbito de la aplicación. De vez en cuando, el contexto de sesión se serializa al disco con el fin de utilizar la memoria de un modo más eficiente. Sin embargo, la aplicación en el ámbito de la instancia de Web Bean ¡no debe serializarse junto con la sesión en el ámbito de Web Bean!"
#. Tag: para
#: injection.xml:357
@@ -988,6 +991,9 @@
"context to be serialized to disk without recursively serializing other "
"injected Web Beans."
msgstr ""
+"Por lo tanto, a menos que un Web Bean tenga un ámbito predeterminado <literal>@Dependent</"
+"literal>, el administrador de Web Bean deberá todas las referencias indirectas inyectadas al "
+"Web Bean a través del objeto de proxy. Este <emphasis>proxy de cliente</emphasis> responsable de garantizar que la instancia de Web Bean reciba un método de invocación es la instancia asociada con el contexto actual. El proxy de cliente también permite a los Web Beans vincularse a contextos tales como el contexto de sesión que debe serializarse al disco sin serializar de modo recursivo otros Web Beans inyectados."
#. Tag: para
#: injection.xml:365
@@ -997,13 +1003,13 @@
"cannot be proxied by the Web Bean manager. Therefore, the Web Bean manager "
"throws an <literal>UnproxyableDependencyException</literal> if the type of "
"an injection point cannot be proxied."
-msgstr ""
+msgstr "Lamentablemente, debido a limitaciones del lenguaje de Java, el administrador de Web Bean no puede utilizar proxy en algunos tipos de Java. Por lo tanto, el administrador de Web Bean lanza un <literal>UnproxyableDependencyException</literal> si no puede aplicarse proxy al tipo de un punto de una inyección."
#. Tag: para
#: injection.xml:370
#, no-c-format
msgid "The following Java types cannot be proxied by the Web Bean manager:"
-msgstr ""
+msgstr "El administrador de Web Bean no puede aplicar proxy en los siguientes tipos de Java:"
#. Tag: para
#: injection.xml:374
@@ -1011,19 +1017,19 @@
msgid ""
"classes which are declared <literal>final</literal> or have a "
"<literal>final</literal> method,"
-msgstr ""
+msgstr "las clases que son declaradas <literal>final</literal> o tienen un método <literal>final</literal>,"
#. Tag: para
#: injection.xml:378
#, no-c-format
msgid "classes which have no non-private constructor with no parameters, and"
-msgstr ""
+msgstr "las clase que no tienen un constructor no-privado sin parámetros y "
#. Tag: para
#: injection.xml:381
#, no-c-format
msgid "arrays and primitive types."
-msgstr ""
+msgstr "matrices y tipos primarios"
#. Tag: para
#: injection.xml:385
@@ -1034,12 +1040,14 @@
"introduce an interface, or change the scope of the injected Web Bean to "
"<literal>@Dependent</literal>."
msgstr ""
+"Suele ser muy fácil corregir una <literal>UnproxyableDependencyException</"
+"literal>. Basta con añadir un constructor sin parámetros a la clase inyectada, introducir una interfaz, o cambiar el ámbito del Web Bean inyectado a <literal>@Dependent</literal>."
#. Tag: title
#: injection.xml:392
#, no-c-format
msgid "Obtaining a Web Bean by programatic lookup"
-msgstr ""
+msgstr "Obtención de un Web Bean por búsqueda programática"
#. Tag: para
#: injection.xml:394
@@ -1048,6 +1056,8 @@
"The application may obtain an instance of the interface <literal>Manager</"
"literal> by injection:"
msgstr ""
+"La aplicación puede obtener una instacia de la interfaz <literal>Manager</"
+"literal> a través de inyección:"
#. Tag: programlisting
#: injection.xml:397
@@ -1061,7 +1071,7 @@
msgid ""
"The <literal>Manager</literal> object provides a set of methods for "
"obtaining a Web Bean instance programatically."
-msgstr ""
+msgstr "El objeto <literal>Manager</literal> proporciona un grupo de métodos para obtener una instancia de Web Bean en forma programática."
#. Tag: programlisting
#: injection.xml:402
@@ -1080,7 +1090,7 @@
"Binding annotations may be specified by subclassing the helper class "
"<literal>AnnotationLiteral</literal>, since it is otherwise difficult to "
"instantiate an annotation type in Java."
-msgstr ""
+msgstr "Las anotaciones de enlace se pueden especificar a través de subclasificaciones de la clase auxiliar <literal>AnnotationLiteral</literal>, porque de otra manera es difícil instanciar un tipo de anotación en Java."
#. Tag: programlisting
#: injection.xml:408
@@ -1103,7 +1113,7 @@
"If the binding type has an annotation member, we can't use an anonymous "
"subclass of <literal>AnnotationLiteral</literal>—instead we'll need to "
"create a named subclass:"
-msgstr ""
+msgstr "Si el tipo de vinculación tiene un miembro de anotación, no podemos utilizar una subclase anónima de <literal>AnnotationLiteral</literal>—en su lugar necesitaremos crear una subclase llamada:"
#. Tag: programlisting
#: injection.xml:413
@@ -1142,6 +1152,8 @@
"Lifecycle callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> "
"and <literal>@PersistenceContext</literal>"
msgstr ""
+"El ciclo de vida de los callbacks, <literal>@Resource</literal>, <literal>@EJB</literal> "
+"y <literal>@PersistenceContext</literal>"
#. Tag: para
#: injection.xml:422
@@ -1152,6 +1164,9 @@
"literal>, <literal>@PrePassivate</literal> and <literal>@PostActivate</"
"literal>."
msgstr ""
+"Los Web Beans de empresa admiten todos los ciclos de vida de las devoluciones de llamadas definidas por la especificación EJB: <literal>@PostConstruct</literal>, <literal>@PreDestroy</"
+"literal>, <literal>@PrePassivate</literal> y <literal>@PostActivate</"
+"literal>."
#. Tag: para
#: injection.xml:426
@@ -1160,6 +1175,8 @@
"Simple Web Beans support only the <literal>@PostConstruct</literal> and "
"<literal>@PreDestroy</literal> callbacks."
msgstr ""
+"Los Web Beans sencillos admiten únicamente las devoluciones de llamadas <literal>@PostConstruct</literal> y "
+"<literal>@PreDestroy</literal>."
#. Tag: para
#: injection.xml:429
@@ -1171,6 +1188,11 @@
"respectively. Simple Web Beans do not support the use of "
"<literal>@PersistenceContext(type=EXTENDED)</literal>."
msgstr ""
+"Enterprise and Web Beans sencillos support the use of <literal>@Resource</"
+"literal>, <literal>@EJB</literal> and <literal>@PersistenceContext</literal> "
+"for injection of Java EE resources, EJBs and JPA persistence contexts, "
+"respectively. Simple Web Beans do not support the use of "
+"<literal>@PersistenceContext(type=EXTENDED)</literal>."
#. Tag: para
#: injection.xml:434
@@ -1178,13 +1200,13 @@
msgid ""
"The <literal>@PostConstruct</literal> callback always occurs after all "
"dependencies have been injected."
-msgstr ""
+msgstr "La devolución de llamada <literal>@PostConstruct</literal> siempre se presenta después de que todas las dependencias han sido inyectadas."
#. Tag: title
#: injection.xml:440
#, no-c-format
msgid "The <literal>InjectionPoint</literal> object"
-msgstr ""
+msgstr "El objeto <literal>InjectionPoint</literal>"
#. Tag: para
#: injection.xml:442
@@ -1194,7 +1216,7 @@
"<literal>@Dependent</literal>—that need to know something about the "
"object or injection point into which they are injected in order to be able "
"to do what they do. For example:"
-msgstr ""
+msgstr "Hay algunas clases de objetos—con ámbito <literal>@Dependent</literal>—que necesitan saber algo acerca del objeto o el punto de inyección dentro del cual son inyectados para poder hacer lo que hacen. Por ejemplo:"
#. Tag: para
#: injection.xml:448
@@ -1202,7 +1224,7 @@
msgid ""
"The log category for a <literal>Logger</literal> depends upon the class of "
"the object that owns it."
-msgstr ""
+msgstr "La categoría de registro para un <literal>Logger</literal> depende de la clase de objeto que lo posea."
#. Tag: para
#: injection.xml:452
@@ -1210,7 +1232,7 @@
msgid ""
"Injection of a HTTP parameter or header value depends upon what parameter or "
"header name was specified at the injection point."
-msgstr ""
+msgstr "La inyección de un parámetro HTTP o valor de encabezado depende del parámetro o del nombre de encabezado especificado en el punto de inyección."
#. Tag: para
#: injection.xml:456
@@ -1227,7 +1249,7 @@
"A Web Bean with scope <literal>@Dependent</literal> may inject an instance "
"of <literal>InjectionPoint</literal> and access metadata relating to the "
"injection point to which it belongs."
-msgstr ""
+msgstr "Un Web Bean con ámbito <literal>@Dependent</literal> puede inyectar una instancia de <literal>InjectionPoint</literal> y acceder a metadatos relativos al punto de inyección al que pertenezca."
#. Tag: para
#: injection.xml:465
@@ -1235,7 +1257,7 @@
msgid ""
"Let's look at an example. The following code is verbose, and vulnerable to "
"refactoring problems:"
-msgstr ""
+msgstr "Veamos un ejemplo. El código siguiente es detallado, y vulnerable a problemas de refactorización:"
#. Tag: programlisting
#: injection.xml:468
@@ -1249,7 +1271,7 @@
msgid ""
"This clever little producer method lets you inject a JDK <literal>Logger</"
"literal> without explicitly specifying the log category:"
-msgstr ""
+msgstr "Este método inteligente de productor permite inyectar un <literal>Logger</literal> JDK sin especificar explícitamente la categoría de registro:"
#. Tag: programlisting
#: injection.xml:473
@@ -1277,7 +1299,7 @@
#: injection.xml:475
#, no-c-format
msgid "We can now write:"
-msgstr ""
+msgstr "Ahora podemos escribir:"
#. Tag: programlisting
#: injection.xml:477
@@ -1291,7 +1313,7 @@
msgid ""
"Not convinced? Then here's a second example. To inject HTTP parameters, we "
"need to define a binding type:"
-msgstr ""
+msgstr "¿No está convencido? Entonces, veamos un segundo ejemplo. Para inyectar parámetros, necesitamos definir el tipo de vinculación:"
#. Tag: programlisting
#: injection.xml:482
@@ -1315,7 +1337,7 @@
#: injection.xml:484
#, no-c-format
msgid "We would use this binding type at injection points as follows:"
-msgstr ""
+msgstr "Utilizaríamos este tipo de enlace en puntos de inyección, como a continuación:"
#. Tag: programlisting
#: injection.xml:486
@@ -1331,7 +1353,7 @@
#: injection.xml:488
#, no-c-format
msgid "The following producer method does the work:"
-msgstr ""
+msgstr "El siguiente método de productor sí funciona:"
#. Tag: programlisting
#: injection.xml:490
@@ -1365,6 +1387,8 @@
"literal> annotation is ignored by the Web Bean manager since it is annotated "
"<literal>@NonBinding.</literal>)"
msgstr ""
+"(Observe que el miembro <literal>value()</literal> de la anotación <literal>HttpParam</"
+"literal> es ignorado por el administrador de Web Bean porque está anotado como <literal>@NonBinding.</literal>)"
#. Tag: para
#: injection.xml:495
@@ -1372,7 +1396,7 @@
msgid ""
"The Web Bean manager provides a built-in Web Bean that implements the "
"<literal>InjectionPoint</literal> interface:"
-msgstr ""
+msgstr "El administrador de Web Bean proporciona un Web Bean incorporado que implementa la interfaz <literal>InjectionPoint</literal>:"
#. Tag: programlisting
#: injection.xml:498
Modified: doc/trunk/reference/es-ES/interceptors.po
===================================================================
--- doc/trunk/reference/es-ES/interceptors.po 2009-01-12 07:13:29 UTC (rev 883)
+++ doc/trunk/reference/es-ES/interceptors.po 2009-01-12 07:22:54 UTC (rev 884)
@@ -1,23 +1,26 @@
+# translation of interceptors.po to Spanish
# Language es-ES translations for master.xml package.
+#
# Automatically generated, 2008.
-#
+# Gladys Guerrero Lozano <gguerrer(a)redhat.com>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: interceptors\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-04 23:18+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-12 16:50+1000\n"
+"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
+"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
#: interceptors.xml:4
#, no-c-format
msgid "Interceptors"
-msgstr ""
+msgstr "Interceptores"
#. Tag: para
#: interceptors.xml:6
@@ -25,13 +28,13 @@
msgid ""
"Web Beans re-uses the basic interceptor architecture of EJB 3.0, extending "
"the functionality in two directions:"
-msgstr ""
+msgstr "Web Beans reutiliza el interceptor de arquitectura básico de EJB 3.0, extendiendo la funcionalidad en dos direcciones:"
#. Tag: para
#: interceptors.xml:11
#, no-c-format
msgid "Any Web Bean may have interceptors, not just session beans."
-msgstr ""
+msgstr "Cualquier Web Bean puede tener interceptores, no sólo beans de sesión."
#. Tag: para
#: interceptors.xml:14
@@ -39,25 +42,25 @@
msgid ""
"Web Beans features a more sophisticated annotation-based approach to binding "
"interceptors to Web Beans."
-msgstr ""
+msgstr "Web Beans ofrece un método de anotación más sofisticado para interceptores de enlaces a Web Beans."
#. Tag: para
#: interceptors.xml:22
#, no-c-format
msgid "The EJB specification defines two kinds of interception points:"
-msgstr ""
+msgstr "La especificación EJB define dos clases de puntos de intercepción:"
#. Tag: para
#: interceptors.xml:26
#, no-c-format
msgid "business method interception, and"
-msgstr ""
+msgstr "la interceptación de método de negocios y"
#. Tag: para
#: interceptors.xml:29
#, no-c-format
msgid "lifecycle callback interception."
-msgstr ""
+msgstr "la interceptación de devolución de llamadas de ciclo de vida"
#. Tag: para
#: interceptors.xml:33
@@ -65,7 +68,7 @@
msgid ""
"A <emphasis>business method interceptor</emphasis> applies to invocations of "
"methods of the Web Bean by clients of the Web Bean:"
-msgstr ""
+msgstr "Un <emphasis>método interceptor de negocios</emphasis> se aplica a invocaciones de métodos del Web Bean por clientes del Web Bean:"
#. Tag: programlisting
#: interceptors.xml:36
@@ -76,6 +79,10 @@
"{ ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[public class TransactionInterceptor {\n"
+" @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
#. Tag: para
#: interceptors.xml:38
@@ -83,7 +90,7 @@
msgid ""
"A <emphasis>lifecycle callback interceptor</emphasis> applies to invocations "
"of lifecycle callbacks by the container:"
-msgstr ""
+msgstr "Un <emphasis>interceptor de devolución de llamadas de ciclo de vida</emphasis> se aplica a invocaciones de devolución de llamadas de ciclo de vida por el contenedor:"
#. Tag: programlisting
#: interceptors.xml:41
@@ -94,6 +101,10 @@
"{ ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[public class DependencyInjectionInterceptor {\n"
+" @PostConstruct public void injectDependencies(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
#. Tag: para
#: interceptors.xml:43
@@ -101,13 +112,13 @@
msgid ""
"An interceptor class may intercept both lifecycle callbacks and business "
"methods."
-msgstr ""
+msgstr "Una clase de interceptor puede interceptar tanto métodos devolución de llamadas de ciclo de vida como métodos de negocios."
#. Tag: title
#: interceptors.xml:49
#, no-c-format
msgid "Interceptor bindings"
-msgstr ""
+msgstr "Vinculación de interceptor"
#. Tag: para
#: interceptors.xml:51
@@ -116,7 +127,7 @@
"Suppose we want to declare that some of our Web Beans are transactional. The "
"first thing we need is an <emphasis>interceptor binding annotation</"
"emphasis> to specify exactly which Web Beans we're interested in:"
-msgstr ""
+msgstr "Suponga que deseamos declarar que algunos de nuestros Web Beans son transaccionales. La primera cosa que necesitamos es una <emphasis>anotación de vinculación de interceptor</emphasis> para especificar exactamente en cuáles Web Beans estamos interesados:"
#. Tag: programlisting
#: interceptors.xml:55
@@ -127,6 +138,10 @@
"@Retention(RUNTIME)\n"
"public @interface Transactional {}]]>"
msgstr ""
+"<![CDATA[@InterceptorBindingType\n"
+"@Target({METHOD, TYPE})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {}]]>"
#. Tag: para
#: interceptors.xml:57
@@ -134,7 +149,7 @@
msgid ""
"Now we can easily specify that our <literal>ShoppingCart</literal> is a "
"transactional object:"
-msgstr ""
+msgstr "Ahora podemos especificar con facilidad que nuestro <literal>Carrito de Compras</literal> es un objeto transaccional:"
#. Tag: programlisting
#: interceptors.xml:60
@@ -143,12 +158,14 @@
"<![CDATA[@Transactional\n"
"public class ShoppingCart { ... }]]>"
msgstr ""
+"<![CDATA[@Transactional\n"
+"public class ShoppingCart { ... }]]>"
#. Tag: para
#: interceptors.xml:62
#, no-c-format
msgid "Or, if we prefer, we can specify that just one method is transactional:"
-msgstr ""
+msgstr "O, si preferimos, podemos especificar que sólo un método es transaccional:"
#. Tag: programlisting
#: interceptors.xml:64
@@ -158,12 +175,15 @@
" @Transactional public void checkout() { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[public class ShoppingCart {\n"
+" @Transactional public void checkout() { ... }\n"
+"}]]>"
#. Tag: title
#: interceptors.xml:69
#, no-c-format
msgid "Implementing interceptors"
-msgstr ""
+msgstr "Implementación de interceptores"
#. Tag: para
#: interceptors.xml:71
@@ -173,7 +193,7 @@
"implement the interceptor that provides this transaction management aspect. "
"All we need to do is create a standard EJB interceptor, and annotate it "
"<literal>@Interceptor</literal> and <literal>@Transactional</literal>."
-msgstr ""
+msgstr "Es maravilloso, pero en alguna parte de la línea vamos a tener que implementar realmente el interceptor que proporciona este aspecto de manejo de transacción. Todo lo que debemos hacer es crear un interceptor estándar EJB, y anotar <literal>@Interceptor</literal> y <literal>@Transactional</literal>."
#. Tag: programlisting
#: interceptors.xml:76
@@ -185,6 +205,11 @@
"{ ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[@Transactional @Interceptor\n"
+"public class TransactionInterceptor {\n"
+" @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
#. Tag: para
#: interceptors.xml:78
@@ -192,7 +217,7 @@
msgid ""
"All Web Beans interceptors are simple Web Beans, and can take advantage of "
"dependency injection and contextual lifecycle management."
-msgstr ""
+msgstr "Todos los interceptores de Web Beans son Web Beans sencillos, y podemos aprovechar las ventajas de inyección de dependencia y administración de ciclo de vida contextual."
#. Tag: programlisting
#: interceptors.xml:81
@@ -208,18 +233,27 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[@ApplicationScoped @Transactional @Interceptor\n"
+"public class TransactionInterceptor {\n"
+"\n"
+" @Resource Transaction transaction;\n"
+"\n"
+" @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+" \n"
+"}]]>"
#. Tag: para
#: interceptors.xml:83
#, no-c-format
msgid "Multiple interceptors may use the same interceptor binding type."
-msgstr ""
+msgstr "Múltiples Interceptores pueden utilizar el mismo tipo de vinculación de interceptor."
#. Tag: title
#: interceptors.xml:88
#, no-c-format
msgid "Enabling interceptors"
-msgstr ""
+msgstr "Habilitando Interceptores"
#. Tag: para
#: interceptors.xml:90
@@ -228,6 +262,8 @@
"Finally, we need to <emphasis>enable</emphasis> our interceptor in "
"<literal>web-beans.xml</literal>."
msgstr ""
+"Por último, necesitamos <emphasis>habilitar</emphasis> nuestro interceptor en "
+"<literal>web-beans.xml</literal>."
#. Tag: programlisting
#: interceptors.xml:93
@@ -237,18 +273,21 @@
" <tx:TransactionInterceptor/>\n"
"</Interceptors>]]>"
msgstr ""
+"<![CDATA[<Interceptors>\n"
+" <tx:TransactionInterceptor/>\n"
+"</Interceptors>]]>"
#. Tag: para
#: interceptors.xml:95
#, no-c-format
msgid "Whoah! Why the angle bracket stew?"
-msgstr ""
+msgstr "¿Por qué el corchete angular permanece?"
#. Tag: para
#: interceptors.xml:97
#, no-c-format
msgid "Well, the XML declaration solves two problems:"
-msgstr ""
+msgstr "Bien, la declaración XML resuelve dos problemas:"
#. Tag: para
#: interceptors.xml:101
@@ -256,13 +295,13 @@
msgid ""
"it enables us to specify a total ordering for all the interceptors in our "
"system, ensuring deterministic behavior, and"
-msgstr ""
+msgstr "nos permite especificar una orden total para todos los interceptores en nuestro sistema, garantizando una conducta determinante y "
#. Tag: para
#: interceptors.xml:105
#, no-c-format
msgid "it lets us enable or disable interceptor classes at deployment time."
-msgstr ""
+msgstr "nos permite habilitar o inhabilitar clases de interceptores en el momento del despliegue."
#. Tag: para
#: interceptors.xml:109
@@ -270,7 +309,7 @@
msgid ""
"For example, we could specify that our security interceptor runs before our "
"<literal>TransactionInterceptor</literal>."
-msgstr ""
+msgstr "Por ejemplo, podemos especificar que nuestro interceptor de seguridad se ejecuta antes que nuestro <literal>TransactionInterceptor</literal>."
#. Tag: programlisting
#: interceptors.xml:112
@@ -281,18 +320,22 @@
" <tx:TransactionInterceptor/>\n"
"</Interceptors>]]>"
msgstr ""
+"<![CDATA[<Interceptors>\n"
+" <sx:SecurityInterceptor/>\n"
+" <tx:TransactionInterceptor/>\n"
+"</Interceptors>]]>"
#. Tag: para
#: interceptors.xml:114
#, no-c-format
msgid "Or we could turn them both off in our test environment!"
-msgstr ""
+msgstr "O podemos ¡apagarlo en nuestro entorno de prueba!"
#. Tag: title
#: interceptors.xml:119
#, no-c-format
msgid "Interceptor bindings with members"
-msgstr ""
+msgstr "Enlaces de interceptor con miembros"
#. Tag: para
#: interceptors.xml:121
@@ -301,6 +344,8 @@
"Suppose we want to add some extra information to our "
"<literal>@Transactional</literal> annotation:"
msgstr ""
+"Suponga que deseamos agregar alguna información adicional a nuestra anotación "
+"<literal>@Transactional</literal>:"
#. Tag: programlisting
#: interceptors.xml:124
@@ -313,6 +358,12 @@
" boolean requiresNew() default false;\n"
"}]]>"
msgstr ""
+"<![CDATA[@InterceptorBindingType\n"
+"@Target({METHOD, TYPE})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Transactional {\n"
+" boolean requiresNew() default false;\n"
+"}]]>"
#. Tag: para
#: interceptors.xml:126
@@ -321,7 +372,7 @@
"Web Beans will use the value of <literal>requiresNew</literal> to choose "
"between two different interceptors, <literal>TransactionInterceptor</"
"literal> and <literal>RequiresNewTransactionInterceptor</literal>."
-msgstr ""
+msgstr "Web Beans utilizará el valor de <literal>requiresNew</literal> para escoger entre dos interceptores, <literal>TransactionInterceptor</literal> y <literal>RequiresNewTransactionInterceptor</literal>."
#. Tag: programlisting
#: interceptors.xml:130
@@ -333,6 +384,11 @@
"{ ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[@Transactional(requiresNew=true) @Interceptor\n"
+"public class RequiresNewTransactionInterceptor {\n"
+" @AroundInvoke public Object manageTransaction(InvocationContext ctx) "
+"{ ... }\n"
+"}]]>"
#. Tag: para
#: interceptors.xml:132
@@ -340,7 +396,7 @@
msgid ""
"Now we can use <literal>RequiresNewTransactionInterceptor</literal> like "
"this:"
-msgstr ""
+msgstr "Ahora podemos utilizar <literal>RequiresNewTransactionInterceptor</literal> de esta manera:"
#. Tag: programlisting
#: interceptors.xml:134
@@ -349,6 +405,8 @@
"<![CDATA[@Transactional(requiresNew=true)\n"
"public class ShoppingCart { ... }]]>"
msgstr ""
+"<![CDATA[@Transactional(requiresNew=true)\n"
+"public class ShoppingCart { ... }]]>"
#. Tag: para
#: interceptors.xml:136
@@ -357,7 +415,7 @@
"But what if we only have one interceptor and we want the manager to ignore "
"the value of <literal>requiresNew</literal> when binding interceptors? We "
"can use the <literal>@NonBinding</literal> annotation:"
-msgstr ""
+msgstr "Pero, ¿qué sucede si sólo tenemos un interceptor y queremos que el administrador ignore el valor de <literal>requiresNew</literal> cuando se vinculen interceptores? Podemos utilizar la anotación <literal>@NonBinding</literal>:"
#. Tag: programlisting
#: interceptors.xml:140
@@ -370,12 +428,18 @@
" @NonBinding String[] rolesAllowed() default {};\n"
"}]]>"
msgstr ""
+"<![CDATA[@InterceptorBindingType\n"
+"@Target({METHOD, TYPE})\n"
+"@Retention(RUNTIME)\n"
+"public @interface Secure {\n"
+" @NonBinding String[] rolesAllowed() default {};\n"
+"}]]>"
#. Tag: title
#: interceptors.xml:145
#, no-c-format
msgid "Multiple interceptor binding annotations"
-msgstr ""
+msgstr "Anotaciones de enlace de múltiples interceptores"
#. Tag: para
#: interceptors.xml:147
@@ -385,7 +449,7 @@
"interceptors to a Web Bean. For example, the following declaration would be "
"used to bind <literal>TransactionInterceptor</literal> and "
"<literal>SecurityInterceptor</literal> to the same Web Bean:"
-msgstr ""
+msgstr "Por lo general utilizamos combinaciones de tipos de interceptores de enlace para vincular múltiples interceptores a un Web Bean. Por ejemplo, la siguiente declaración sería utilizada para enlazar <literal>TransactionInterceptor</literal> y <literal>SecurityInterceptor</literal> al mismo Web Bean:"
#. Tag: programlisting
#: interceptors.xml:152
@@ -394,6 +458,8 @@
"<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
"public class ShoppingCart { ... }]]>"
msgstr ""
+"<![CDATA[@Secure(rolesAllowed=\"admin\") @Transactional\n"
+"public class ShoppingCart { ... }]]>"
#. Tag: para
#: interceptors.xml:154
@@ -401,7 +467,7 @@
msgid ""
"However, in very complex cases, an interceptor itself may specify some "
"combination of interceptor binding types:"
-msgstr ""
+msgstr "Sin embargo, en casos muy complejos, un mismo interceptor puede especificar una combinación de tipos de interceptor de enlace:"
#. Tag: programlisting
#: interceptors.xml:157
@@ -410,6 +476,8 @@
"<![CDATA[@Transactional @Secure @Interceptor\n"
"public class TransactionalSecureInterceptor { ... }]]>"
msgstr ""
+"<![CDATA[@Transactional @Secure @Interceptor\n"
+"public class TransactionalSecureInterceptor { ... }]]>"
#. Tag: para
#: interceptors.xml:159
@@ -417,7 +485,7 @@
msgid ""
"Then this interceptor could be bound to the <literal>checkout()</literal> "
"method using any one of the following combinations:"
-msgstr ""
+msgstr "Entonces este interceptor podría estar vinculado al método <literal>checkout()</literal> mediante cualquiera de las siguientes combinaciones:"
#. Tag: programlisting
#: interceptors.xml:162
@@ -427,6 +495,9 @@
" @Transactional @Secure public void checkout() { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[public class ShoppingCart {\n"
+" @Transactional @Secure public void checkout() { ... }\n"
+"}]]>"
#. Tag: programlisting
#: interceptors.xml:164
@@ -437,6 +508,10 @@
" @Transactional public void checkout() { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[@Secure\n"
+"public class ShoppingCart {\n"
+" @Transactional public void checkout() { ... }\n"
+"}]]>"
#. Tag: programlisting
#: interceptors.xml:166
@@ -447,6 +522,10 @@
" @Secure public void checkout() { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[@Transactionl\n"
+"public class ShoppingCart {\n"
+" @Secure public void checkout() { ... }\n"
+"}]]>"
#. Tag: programlisting
#: interceptors.xml:168
@@ -457,12 +536,16 @@
" public void checkout() { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[@Transactional @Secure\n"
+"public class ShoppingCart {\n"
+" public void checkout() { ... }\n"
+"}]]>"
#. Tag: title
#: interceptors.xml:173
#, no-c-format
msgid "Interceptor binding type inheritance"
-msgstr ""
+msgstr "Herencia del tipo de interceptor de enlace"
#. Tag: para
#: interceptors.xml:175
@@ -471,14 +554,13 @@
"One limitation of the Java language support for annotations is the lack of "
"annotation inheritance. Really, annotations should have reuse built in, to "
"allow this kind of thing to work:"
-msgstr ""
+msgstr "Una limitación de la compatibilidad del lenguaje de Java para anotaciones es la falta de herencia de anotación. En realidad, las anotaciones se deberían tener una reutilización incorporada, para permitir a este tipo que funcione:"
#. Tag: programlisting
#: interceptors.xml:179
#, no-c-format
-msgid ""
-"<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
-msgstr ""
+msgid "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
+msgstr "<![CDATA[public @interface Action extends Transactional, Secure { ... }]]>"
#. Tag: para
#: interceptors.xml:181
@@ -489,7 +571,7 @@
"types. The interceptor bindings are transitive—any Web Bean with the "
"first interceptor binding inherits the interceptor bindings declared as meta-"
"annotations."
-msgstr ""
+msgstr "Bueno, afortunadamente, Web Beans funciona en torno a esta característica de Java. Podemos anotar un interceptor de tipo de enlace con otros tipos de interceptores de enlace. Los enlaces de interceptor son transitivos— cualquier Web Bean con el primer enlace de interceptor hereda los enlaces de interceptor declarados como meta-anotaciones."
#. Tag: programlisting
#: interceptors.xml:186
@@ -501,6 +583,11 @@
"@Retention(RUNTIME)\n"
"public @interface Action { ... }]]>"
msgstr ""
+"<![CDATA[@Transactional @Secure\n"
+"@InterceptorBindingType\n"
+"@Target(TYPE)\n"
+"@Retention(RUNTIME)\n"
+"public @interface Action { ... }]]>"
#. Tag: para
#: interceptors.xml:188
@@ -511,12 +598,15 @@
"literal>. (And even <literal>TransactionalSecureInterceptor</literal>, if it "
"exists.)"
msgstr ""
+"Cualquier Web Bean anotado <literal>@Action</literal> estará vinculado a "
+"<literal>TransactionInterceptor</literal> y <literal>SecurityInterceptor</"
+"literal>. (E incluso a <literal>TransactionalSecureInterceptor</literal>, si éste existe.)"
#. Tag: title
#: interceptors.xml:195
#, no-c-format
msgid "Use of <literal>@Interceptors</literal>"
-msgstr ""
+msgstr "Uso de <literal>@Interceptors</literal>"
#. Tag: para
#: interceptors.xml:197
@@ -525,7 +615,7 @@
"The <literal>@Interceptors</literal> annotation defined by the EJB "
"specification is supported for both enterprise and simple Web Beans, for "
"example:"
-msgstr ""
+msgstr "La anotación <literal>@Interceptors</literal> definida por la especificación de EJB es compatible con Web Beans de empresa y Web Beans sencillas, por ejemplo:"
#. Tag: programlisting
#: interceptors.xml:200
@@ -537,24 +627,29 @@
" public void checkout() { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[(a)Interceptors({TransactionInterceptor.class, SecurityInterceptor."
+"class})\n"
+"public class ShoppingCart {\n"
+" public void checkout() { ... }\n"
+"}]]>"
#. Tag: para
#: interceptors.xml:202
#, no-c-format
msgid "However, this approach suffers the following drawbacks:"
-msgstr ""
+msgstr "Sin embargo, este enfoque tiene los siguientes inconvenientes:"
#. Tag: para
#: interceptors.xml:206
#, no-c-format
msgid "the interceptor implementation is hardcoded in business code,"
-msgstr ""
+msgstr "la implementación de interceptor está codificada en código de negocios,"
#. Tag: para
#: interceptors.xml:209
#, no-c-format
msgid "interceptors may not be easily disabled at deployment time, and"
-msgstr ""
+msgstr "los interceptores no se pueden fácilmente inhabilitar en el momento del despliegue, y"
#. Tag: para
#: interceptors.xml:212
@@ -562,11 +657,11 @@
msgid ""
"the interceptor ordering is non-global—it is determined by the order in "
"which interceptors are listed at the class level."
-msgstr ""
+msgstr "la orden del interceptor es no-global—es determinada por la orden en que se listan los interceptores en el nivel de clase."
#. Tag: para
#: interceptors.xml:217
#, no-c-format
-msgid ""
-"Therefore, we recommend the use of Web Beans-style interceptor bindings."
-msgstr ""
+msgid "Therefore, we recommend the use of Web Beans-style interceptor bindings."
+msgstr "Por lo tanto, recomendamos el uso de Web Beans estilo interceptor de enlaces."
+
Modified: doc/trunk/reference/es-ES/intro.po
===================================================================
--- doc/trunk/reference/es-ES/intro.po 2009-01-12 07:13:29 UTC (rev 883)
+++ doc/trunk/reference/es-ES/intro.po 2009-01-12 07:22:54 UTC (rev 884)
@@ -1,23 +1,26 @@
+# translation of intro.po to Spanish
# Language es-ES translations for master.xml package.
+#
# Automatically generated, 2008.
-#
+# Gladys Guerrero Lozano <gguerrer(a)redhat.com>, 2009.
msgid ""
msgstr ""
-"Project-Id-Version: master.xml \n"
+"Project-Id-Version: intro\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2008-12-19 20:26+0000\n"
-"PO-Revision-Date: 2008-12-19 20:26+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-12 17:22+1000\n"
+"Last-Translator: Gladys Guerrero Lozano <gguerrer(a)redhat.com>\n"
+"Language-Team: Spanish <fedora-trans-es(a)redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
#: intro.xml:4
#, no-c-format
msgid "Getting started with Web Beans"
-msgstr ""
+msgstr "Iniciando con Web Beans"
#. Tag: para
#: intro.xml:6
@@ -34,7 +37,7 @@
#: intro.xml:13
#, no-c-format
msgid "Your first Web Bean"
-msgstr ""
+msgstr "Su primer Web Bean"
#. Tag: para
#: intro.xml:15
@@ -68,6 +71,9 @@
" public List<String> parse(String text) { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[public class SentenceParser {\n"
+" public List<String> parse(String text) { ... }\n"
+"}]]>"
#. Tag: para
#: intro.xml:31
@@ -87,6 +93,10 @@
" public String translate(String sentence) { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[@Stateless\n"
+"public class SentenceTranslator implements Translator {\n"
+" public String translate(String sentence) { ... }\n"
+"}]]>"
#. Tag: para
#: intro.xml:37
@@ -103,6 +113,10 @@
" public String translate(String sentence);\n"
"}]]>"
msgstr ""
+"<![CDATA[@Local\n"
+"public interface Translator {\n"
+" public String translate(String sentence);\n"
+"}]]>"
#. Tag: para
#: intro.xml:41
@@ -138,6 +152,27 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[public class TextTranslator {\n"
+" \n"
+" private SentenceParser sentenceParser;\n"
+" private Translator sentenceTranslator;\n"
+" \n"
+" @Initializer\n"
+" TextTranslator(SentenceParser sentenceParser, Translator "
+"sentenceTranslator) {\n"
+" this.sentenceParser = sentenceParser;\n"
+" this.sentenceTranslator = sentenceTranslator;\n"
+" }\n"
+" \n"
+" public String translate(String text) {\n"
+" StringBuilder sb = new StringBuilder();\n"
+" for (String sentence: sentenceParser.parse(text)) {\n"
+" sb.append(sentenceTranslator.translate(sentence));\n"
+" }\n"
+" return sb.toString();\n"
+" }\n"
+" \n"
+"}]]>"
#. Tag: para
#: intro.xml:46
@@ -156,6 +191,10 @@
" this.textTranslator = textTranslator;\n"
"}]]>"
msgstr ""
+"<![CDATA[@Initializer\n"
+"public setTextTranslator(TextTranslator textTranslator) {\n"
+" this.textTranslator = textTranslator;\n"
+"}]]>"
#. Tag: para
#: intro.xml:51
@@ -172,6 +211,8 @@
"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
"class);]]>"
msgstr ""
+"<![CDATA[TextTranslator tt = manager.getInstanceByType(TextTranslator."
+"class);]]>"
#. Tag: para
#: intro.xml:56
@@ -219,7 +260,7 @@
#: intro.xml:82
#, no-c-format
msgid "So what, <emphasis>exactly</emphasis>, is a Web Bean?"
-msgstr ""
+msgstr "Entonces, ¿qué es, <emphasis>exactamente</emphasis> un Web Bean?"
#. Tag: para
#: intro.xml:84
@@ -265,8 +306,7 @@
#. Tag: para
#: intro.xml:108
#, no-c-format
-msgid ""
-"which clients share a reference to a particular instance of the Web Bean."
+msgid "which clients share a reference to a particular instance of the Web Bean."
msgstr ""
#. Tag: para
@@ -362,43 +402,43 @@
#: intro.xml:158
#, no-c-format
msgid "A scope"
-msgstr ""
+msgstr "Un ámbito"
#. Tag: para
#: intro.xml:159
#, no-c-format
msgid "A deployment type"
-msgstr ""
+msgstr "Un tipo de despliegue"
#. Tag: para
#: intro.xml:160
#, no-c-format
msgid "Optionally, a Web Bean name"
-msgstr ""
+msgstr "Alternativamente, un nombre de Web Bean"
#. Tag: para
#: intro.xml:161
#, no-c-format
msgid "A set of interceptor binding types"
-msgstr ""
+msgstr "Un conjunto de tipos de interceptor de enlace"
#. Tag: para
#: intro.xml:162
#, no-c-format
msgid "A Web Bean implementation"
-msgstr ""
+msgstr "Una implementación de Web Bean"
#. Tag: para
#: intro.xml:167
#, no-c-format
msgid "Let's see what some of these terms mean, to the Web Bean developer."
-msgstr ""
+msgstr "Veamos qué significan algunos de estos términos, para el desarrollador de Web Bean."
#. Tag: title
#: intro.xml:170
#, no-c-format
msgid "API types, binding types and dependency injection"
-msgstr ""
+msgstr "Tipos API, tips de enlace e inyección de dependencia"
#. Tag: para
#: intro.xml:172
@@ -413,13 +453,13 @@
#: intro.xml:177
#, no-c-format
msgid "an API type, together with"
-msgstr ""
+msgstr "Un tipo API, junto con"
#. Tag: para
#: intro.xml:178
#, no-c-format
msgid "a set of binding types."
-msgstr ""
+msgstr "un conjunto de tipos de enlace."
#. Tag: para
#: intro.xml:181
@@ -446,7 +486,7 @@
#: intro.xml:191
#, no-c-format
msgid "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
-msgstr ""
+msgstr "<![CDATA[@CreditCard PaymentProcessor paymentProcessor]]>"
#. Tag: para
#: intro.xml:193
@@ -482,6 +522,9 @@
"public class CreditCardPaymentProcessor \n"
" implements PaymentProcessor { ... }]]>"
msgstr ""
+"<![CDATA[@CreditCard\n"
+"public class CreditCardPaymentProcessor \n"
+" implements PaymentProcessor { ... }]]>"
#. Tag: para
#: intro.xml:206
@@ -506,7 +549,7 @@
#: intro.xml:217
#, no-c-format
msgid "Deployment types"
-msgstr ""
+msgstr "Tipos de despliegue"
#. Tag: para
#: intro.xml:219
@@ -530,6 +573,9 @@
"three Web Bean in our example have the deployment type <literal>@Production</"
"literal>."
msgstr ""
+"Muchos Web Beans sólo utilizan el tipo de despliegue por defecto <literal>@Production</"
+"literal>, en cuyo caso no se necesita especificar ningún tipo de despliegue. Todos los tres Web Bean en nuestro ejemplo tienen un tipo de despliegue <literal>@Production</"
+"literal>."
#. Tag: para
#: intro.xml:230
@@ -537,7 +583,7 @@
msgid ""
"In a testing environment, we might want to replace the "
"<literal>SentenceTranslator</literal> Web Bean with a \"mock object\":"
-msgstr ""
+msgstr "En un entorno de prueba, podríamos desear remplazar el <literal>SentenceTranslator</literal> Web Bean por un \"mock object\":"
#. Tag: programlisting
#: intro.xml:233
@@ -550,6 +596,12 @@
" }\n"
"}]]>"
msgstr ""
+"<![CDATA[@Mock\n"
+"public class MockSentenceTranslator implements Translator {\n"
+" public String translate(String sentence) {\n"
+" return \"Lorem ipsum dolor sit amet\";\n"
+" }\n"
+"}]]>"
#. Tag: para
#: intro.xml:236
@@ -558,7 +610,7 @@
"We would enable the deployment type <literal>@Mock</literal> in our testing "
"environment, to indicate that <literal>MockSentenceTranslator</literal> and "
"any other Web Bean annotated <literal>@Mock</literal> should be used."
-msgstr ""
+msgstr "Habilitaremos un tipo de despliegue <literal>@Mock</literal> en nuestro entorno de prueba, para indicar que <literal>MockSentenceTranslator</literal> y cualquier otro Web Bean anotado <literal>@Mock</literal> debería utilizarse."
#. Tag: para
#: intro.xml:240
@@ -567,12 +619,14 @@
"We'll talk more about this unique and powerful feature in <xref linkend="
"\"deploymenttypes\"/>."
msgstr ""
+"Hablaremos más acerca de esta característica única y poderosa en <xref linkend="
+"\"deploymenttypes\"/>."
#. Tag: title
#: intro.xml:246
#, no-c-format
msgid "Scope"
-msgstr ""
+msgstr "Ámbito"
#. Tag: para
#: intro.xml:248
@@ -592,6 +646,8 @@
"For example, any web application may have <emphasis>session scoped</"
"emphasis> Web Beans:"
msgstr ""
+"Por ejemplo, cualquier aplicación de red puede tener una <emphasis>sesión en ámbito</"
+"emphasis> de Web Beans:"
#. Tag: programlisting
#: intro.xml:257
@@ -600,6 +656,8 @@
"<![CDATA[@SessionScoped\n"
"public class ShoppingCart { ... }]]>"
msgstr ""
+"<![CDATA[@SessionScoped\n"
+"public class ShoppingCart { ... }]]>"
#. Tag: para
#: intro.xml:259
@@ -607,7 +665,7 @@
msgid ""
"An instance of a session scoped Web Bean is bound to a user session and is "
"shared by all requests that execute in the context of that session."
-msgstr ""
+msgstr "Una instancia de una sesión en ámbito Web Bean está vinculada a una sesión de usuario y es compartidoa por todos los solicitantes que ejecutan en el contexto de esa sesión."
#. Tag: para
#: intro.xml:262
@@ -618,12 +676,14 @@
"pure dependent objects of the object into which they are injected, and their "
"lifecycle is bound to the lifecycle of that object."
msgstr ""
+"Por defecto, Web Beans pertenece a un ámbito especial llamado el "
+"<emphasis>ámbito seudo dependiente</emphasis>. Web Beans con este ámbito son objetos puros dependientes del objeto en el que son inyectados y su ciclo de vida está vinculado al ciclo de vida del objeto."
#. Tag: para
#: intro.xml:267
#, no-c-format
msgid "We'll talk more about scopes in <xref linkend=\"scopescontexts\"/>."
-msgstr ""
+msgstr "Hablaremos más acerca de ámbitos en <xref linkend=\"scopescontexts\"/>."
#. Tag: title
#: intro.xml:272
@@ -646,6 +706,8 @@
"<![CDATA[@SessionScoped @Named(\"cart\")\n"
"public class ShoppingCart { ... }]]>"
msgstr ""
+"<![CDATA[@SessionScoped @Named(\"cart\")\n"
+"public class ShoppingCart { ... }]]>"
#. Tag: para
#: intro.xml:280
@@ -661,12 +723,14 @@
" ....\n"
"</h:dataTable>]]>"
msgstr ""
+"<![CDATA[<h:dataTable value=\"#{cart.lineItems}\" var=\"item\">\n"
+" ....\n"
+"</h:dataTable>]]>"
#. Tag: para
#: intro.xml:284
#, no-c-format
-msgid ""
-"It's even easier to just let the name be defaulted by the Web Bean manager:"
+msgid "It's even easier to just let the name be defaulted by the Web Bean manager:"
msgstr ""
#. Tag: programlisting
@@ -676,6 +740,8 @@
"<![CDATA[@SessionScoped @Named\n"
"public class ShoppingCart { ... }]]>"
msgstr ""
+"<![CDATA[@SessionScoped @Named\n"
+"public class ShoppingCart { ... }]]>"
#. Tag: para
#: intro.xml:289
@@ -689,7 +755,7 @@
#: intro.xml:295
#, no-c-format
msgid "Interceptor binding types"
-msgstr ""
+msgstr "Tipos de interceptor de enlace"
#. Tag: para
#: intro.xml:297
@@ -717,6 +783,9 @@
"@Interceptors(TransactionInterceptor.class)\n"
"public class ShoppingCart { ... }]]>"
msgstr ""
+"<![CDATA[@SessionScoped \n"
+"@Interceptors(TransactionInterceptor.class)\n"
+"public class ShoppingCart { ... }]]>"
#. Tag: para
#: intro.xml:307
@@ -724,7 +793,7 @@
msgid ""
"However, it is more elegant, and better practice, to indirect the "
"interceptor binding through an <emphasis>interceptor binding type</emphasis>:"
-msgstr ""
+msgstr "Sin embargo, no es más elegante y mejor práctica, llevar indirectamente el interceptor enlazando a través de un <emphasis>tipo de interceptor de enlace</emphasis>:"
#. Tag: programlisting
#: intro.xml:311
@@ -733,6 +802,8 @@
"<![CDATA[@SessionScoped @Transactional\n"
"public class ShoppingCart { ... }]]>"
msgstr ""
+"<![CDATA[@SessionScoped @Transactional\n"
+"public class ShoppingCart { ... }]]>"
#. Tag: para
#: intro.xml:313
@@ -741,12 +812,14 @@
"We'll discuss Web Beans interceptors and decorators in <xref linkend="
"\"interceptors\"/> and <xref linkend=\"decorators\"/>."
msgstr ""
+"Discutiremos los interceptores de Web Beans y los decoradores en <xref linkend="
+"\"interceptors\"/> y <xref linkend=\"decorators\"/>."
#. Tag: title
#: intro.xml:321
#, no-c-format
msgid "What kinds of objects can be Web Beans?"
-msgstr ""
+msgstr "¿Qué clase de objetos pueden ser Web Beans?"
#. Tag: para
#: intro.xml:323
@@ -754,13 +827,13 @@
msgid ""
"We've already seen that JavaBeans, EJBs and some other Java classes can be "
"Web Beans. But exactly what kinds of objects are Web Beans?"
-msgstr ""
+msgstr "Ya hemos visto que JavaBeans, EJB y algunas otras clases de Java pueden ser Web Bean. Pero, exactamente, ¿qué clase de objetos son los Web Beans?"
#. Tag: title
#: intro.xml:327
#, no-c-format
msgid "Simple Web Beans"
-msgstr ""
+msgstr "Web Beans sencillos"
#. Tag: para
#: intro.xml:329
@@ -768,7 +841,7 @@
msgid ""
"The Web Beans specification says that a concrete Java class is a "
"<emphasis>simple</emphasis> Web Bean if:"
-msgstr ""
+msgstr "La especificación de Web Beans dice que una clase de Java concreta es un Web Bean <emphasis>sencillo</emphasis> si: "
#. Tag: para
#: intro.xml:334
@@ -776,19 +849,19 @@
msgid ""
"it is not an EE container-managed component, like an EJB, a Servlet or a JPA "
"entity,"
-msgstr ""
+msgstr "no es un contenedor EE-componente administrado, como un EJB un Servlet o una entidad JPA, "
#. Tag: para
#: intro.xml:338
#, no-c-format
msgid "it is not a non-static static inner class,"
-msgstr ""
+msgstr "no es una clase interna no estática,"
#. Tag: para
#: intro.xml:341
#, no-c-format
msgid "it is not a parameterized type, and"
-msgstr ""
+msgstr "no es un tipo parametrizado, y"
#. Tag: para
#: intro.xml:344
@@ -796,13 +869,13 @@
msgid ""
"it has a constructor with no parameters, or a constructor annotated "
"<literal>@Initializer</literal>."
-msgstr ""
+msgstr "tiene un constructor sin parámetros o un constructor <literal>@Initializer</literal> anotado."
#. Tag: para
#: intro.xml:349
#, no-c-format
msgid "Thus, almost every JavaBean is a simple Web Bean."
-msgstr ""
+msgstr "Entonces, casi cada JavaBean es un Web Bean sencillo"
#. Tag: para
#: intro.xml:351
@@ -811,13 +884,13 @@
"Every interface implemented directly or indirectly by a simple Web Bean is "
"an API type of the simple Web Bean. The class and its superclasses are also "
"API types."
-msgstr ""
+msgstr "Cada interfaz implementada directamente o indirectamente por un Web Bean sencillo es un tipo API de un Web Bean sencillo. La clase y superclase también son tipos API."
#. Tag: title
#: intro.xml:358
#, no-c-format
msgid "Enterprise Web Beans"
-msgstr ""
+msgstr "Web Beans de empresa"
#. Tag: para
#: intro.xml:360
@@ -866,6 +939,15 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[@Stateful @SessionScoped\n"
+"public class ShoppingCart {\n"
+"\n"
+" ...\n"
+" \n"
+" @Remove\n"
+" public void destroy() {}\n"
+"\n"
+"}]]>"
#. Tag: para
#: intro.xml:380
@@ -959,7 +1041,7 @@
#: intro.xml:427
#, no-c-format
msgid "Producer methods"
-msgstr ""
+msgstr "Métodos de productor"
#. Tag: para
#: intro.xml:429
@@ -987,19 +1069,28 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[@ApplicationScoped\n"
+"public class Generator {\n"
+"\n"
+" private Random random = new Random( System.currentTimeMillis() );\n"
+" \n"
+" @Produces @Random int next() {\n"
+" return random.nextInt(100);\n"
+" }\n"
+"\n"
+"}]]>"
#. Tag: para
#: intro.xml:437
#, no-c-format
-msgid ""
-"The result of a producer method is injected just like any other Web Bean."
-msgstr ""
+msgid "The result of a producer method is injected just like any other Web Bean."
+msgstr "El resultado de un método de productor es inyectado como cualquier otro Web Bean."
#. Tag: programlisting
#: intro.xml:439
#, no-c-format
msgid "<![CDATA[@Random int randomNumber]]>"
-msgstr ""
+msgstr "<![CDATA[@Random int randomNumber]]>"
#. Tag: para
#: intro.xml:441
@@ -1014,7 +1105,7 @@
#: intro.xml:445
#, no-c-format
msgid "Some producer methods return objects that require explicit destruction:"
-msgstr ""
+msgstr "Algunos métodos de productor retornan objetos que requieren destrucción explícita:"
#. Tag: programlisting
#: intro.xml:447
@@ -1024,6 +1115,9 @@
" return createConnection( user.getId(), user.getPassword() );\n"
"}]]>"
msgstr ""
+"<![CDATA[@Produces @RequestScoped Connection connect(User user) {\n"
+" return createConnection( user.getId(), user.getPassword() );\n"
+"}]]>"
#. Tag: para
#: intro.xml:449
@@ -1032,6 +1126,8 @@
"These producer methods may define matching <emphasis>disposal methods</"
"emphasis>:"
msgstr ""
+"Estos métodos de productor pueden definir <emphasis>métodos desechables</"
+"emphasis>:"
#. Tag: programlisting
#: intro.xml:451
@@ -1041,6 +1137,9 @@
" connection.close();\n"
"}]]>"
msgstr ""
+"<![CDATA[void close(@Disposes Connection connection) {\n"
+" connection.close();\n"
+"}]]>"
#. Tag: para
#: intro.xml:453
@@ -1048,7 +1147,7 @@
msgid ""
"This disposal method is called automatically by the Web Bean manager at the "
"end of the request."
-msgstr ""
+msgstr "Este método desechable es llamado automáticamente por el administrador de Web Bean al final de la petición."
#. Tag: para
#: intro.xml:456
@@ -1057,12 +1156,14 @@
"We'll talk much more about producer methods in <xref linkend="
"\"producermethods\"/>."
msgstr ""
+"Hablaremos mucho más acerca de métodos del productor en <xref linkend="
+"\"producermethods\"/>."
#. Tag: title
#: intro.xml:461
#, no-c-format
msgid "JMS endpoints"
-msgstr ""
+msgstr "endpoints de JMS"
#. Tag: para
#: intro.xml:463
@@ -1073,3 +1174,4 @@
"objects required to send messages to queues and topics. We'll discuss JMS "
"endpoints in <xref linkend=\"jms\"/>."
msgstr ""
+
16 years
[webbeans-commits] Webbeans SVN: r883 - in ri/trunk: webbeans-ri/src/main/java/org/jboss/webbeans and 9 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2009-01-12 02:13:29 -0500 (Mon, 12 Jan 2009)
New Revision: 883
Modified:
ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/DeploymentProperties.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerFieldBeanLifecycleTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/ContextManagement.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/ConversationContextTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/DependentContextTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/NormalContextTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/PassivatingContextTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/invalid/Peraseinajoki.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/newbean/NewEnterpriseBeanTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/newbean/NewSimpleBeanTest.java
Log:
Bean.getInjectionPoints
Manager.validate()
passivation checks
Modified: ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java
===================================================================
--- ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -63,6 +63,6 @@
public abstract boolean isNullable();
-// public abstract Set<InjectionPoint> getInjectionPoints();
+ public abstract Set<InjectionPoint> getInjectionPoints();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -37,10 +37,13 @@
import javax.webbeans.ContextNotActiveException;
import javax.webbeans.DeploymentException;
import javax.webbeans.DuplicateBindingTypeException;
+import javax.webbeans.InjectionPoint;
+import javax.webbeans.NullableDependencyException;
import javax.webbeans.Observer;
import javax.webbeans.Production;
import javax.webbeans.Standard;
import javax.webbeans.TypeLiteral;
+import javax.webbeans.UnproxyableDependencyException;
import javax.webbeans.UnsatisfiedDependencyException;
import javax.webbeans.UnserializableDependencyException;
import javax.webbeans.manager.Bean;
@@ -62,6 +65,7 @@
import org.jboss.webbeans.introspector.jlr.AnnotatedClassImpl;
import org.jboss.webbeans.resources.spi.Naming;
import org.jboss.webbeans.resources.spi.ResourceLoader;
+import org.jboss.webbeans.util.Proxies;
import org.jboss.webbeans.util.Reflections;
/**
@@ -76,7 +80,7 @@
@Standard
public class ManagerImpl implements Manager, Serializable
{
-
+
private static final long serialVersionUID = 3021562879133838561L;
// The JNDI key to place the manager under
@@ -91,7 +95,7 @@
// The bean resolver
private transient final Resolver resolver;
-
+
// The registered contexts
private transient final ContextMap contextMap;
// The client proxy pool
@@ -104,13 +108,13 @@
private transient final Set<Decorator> decorators;
// The registered interceptors
private transient final Set<Interceptor> interceptors;
-
+
// The EJB resolver provided by the container
// TODO This can't be transient!
private transient final EjbResolver ejbResolver;
private transient final EjbDescriptorCache ejbDescriptorCache;
-
+
private transient final ResourceLoader resourceLoader;
// The Naming (JNDI) access
@@ -187,7 +191,7 @@
*/
public <T> Set<AnnotatedMethod<Object>> resolveDisposalMethods(Class<T> apiType, Annotation... bindings)
{
- //TODO Implement disposal methods
+ // TODO Implement disposal methods
return Collections.emptySet();
}
@@ -646,8 +650,8 @@
}
/**
- * Resolves a list of decorators based on API types and binding types
- * Os
+ * Resolves a list of decorators based on API types and binding types Os
+ *
* @param types The set of API types to match
* @param bindingTypes The binding types to match
* @return A list of matching decorators
@@ -717,20 +721,39 @@
public Manager validate()
{
- checkPassivation();
- return this;
- }
-
- private void checkPassivation()
- {
for (Bean<?> bean : beans)
{
- boolean passivatingScoped = MetaDataCache.instance().getScopeModel(bean.getScopeType()).isPassivating();
- if (passivatingScoped && !bean.isSerializable())
+ if (Reflections.isPassivatingBean(bean) && !bean.isSerializable())
{
- throw new UnserializableDependencyException(bean + " is not serializable or has unserializable dependencies");
+ throw new UnserializableDependencyException("The bean " + bean + " declares a passivating scopes but has non-serializable dependencies");
}
+ for (InjectionPoint injectionPoint : bean.getInjectionPoints())
+ {
+ Class<?> type = (Class<?>) injectionPoint.getType();
+ Annotation[] bindingTypes = injectionPoint.getBindingTypes().toArray(new Annotation[0]);
+ Set<?> resolvedBeans = resolveByType(type, bindingTypes);
+ if (resolvedBeans.isEmpty())
+ {
+ throw new UnsatisfiedDependencyException("The injection point " + injectionPoint + " has unsatisfied dependencies for type " + type + " and binding types " + bindingTypes + " in " + bean);
+ }
+ if (resolvedBeans.size() > 1)
+ {
+ throw new AmbiguousDependencyException("The injection point " + injectionPoint + " has ambiguos dependencies for type " + type + " and binding types " + bindingTypes + " in " + bean);
+ }
+ Bean<?> resolvedBean = (Bean<?>) resolvedBeans.iterator().next();
+ boolean normalScoped = MetaDataCache.instance().getScopeModel(resolvedBean.getScopeType()).isNormal();
+ if (normalScoped && !Proxies.isProxyable(type))
+ {
+ throw new UnproxyableDependencyException("The injection point " + injectionPoint + " has non-proxyable dependencies");
+ }
+ if (Reflections.isPrimitive((Class<?>) injectionPoint.getType()) && resolvedBean.isNullable())
+ {
+ throw new NullableDependencyException("The injection point " + injectionPoint + " has nullable dependencies");
+ }
+ // Specialization checks
+ }
}
+ return this;
}
public Manager createChildManager()
@@ -749,15 +772,15 @@
{
return naming;
}
-
+
public EjbResolver getEjbResolver()
{
return ejbResolver;
}
-
+
/**
- * Accesses the factory used to create each instance of InjectionPoint
- * that is injected into web beans.
+ * Accesses the factory used to create each instance of InjectionPoint that
+ * is injected into web beans.
*
* @return the factory
*/
@@ -765,9 +788,9 @@
{
return injectionPointProvider;
}
-
+
// Serialization
-
+
protected Object readResolve()
{
return CurrentManager.rootManager();
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -30,19 +30,19 @@
import javax.webbeans.Dependent;
import javax.webbeans.DeploymentType;
import javax.webbeans.Event;
-import javax.webbeans.IllegalProductException;
+import javax.webbeans.InjectionPoint;
import javax.webbeans.Named;
import javax.webbeans.ScopeType;
import javax.webbeans.Specializes;
import javax.webbeans.Standard;
import javax.webbeans.Stereotype;
-import javax.webbeans.UnserializableDependencyException;
import javax.webbeans.manager.Bean;
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.binding.CurrentBinding;
+import org.jboss.webbeans.injection.InjectionPointImpl;
import org.jboss.webbeans.introspector.AnnotatedItem;
-import org.jboss.webbeans.introspector.jlr.AbstractAnnotatedMember;
+import org.jboss.webbeans.introspector.AnnotatedMember;
import org.jboss.webbeans.introspector.jlr.AbstractAnnotatedItem.AnnotationMap;
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
@@ -103,7 +103,7 @@
// The API types
protected Set<Type> types;
// The injection points
- protected Set<AnnotatedItem<?, ?>> injectionPoints;
+ protected Set<AnnotatedItem<?, ?>> annotatedInjectionPoints;
// If the type a primitive?
private boolean primitive;
// The Web Beans manager
@@ -120,7 +120,7 @@
{
super(manager);
this.manager = manager;
- injectionPoints = new HashSet<AnnotatedItem<?, ?>>();
+ annotatedInjectionPoints = new HashSet<AnnotatedItem<?, ?>>();
}
/**
@@ -259,41 +259,22 @@
this.primitive = Reflections.isPrimitive(getType());
}
- protected void checkProducedInjectionPoints()
+ protected boolean injectionPointsAreSerializable()
{
- for (AnnotatedItem<?, ?> injectionPoint : getInjectionPoints())
+ // TODO: a bit crude, don't check *all* injectionpoints, only those listed
+ // in the spec for passivation checks
+ for (AnnotatedItem<?, ?> injectionPoint : getAnnotatedInjectionPoints())
{
- if (injectionPoint instanceof AbstractAnnotatedMember)
- {
- if (((AbstractAnnotatedMember<?, ?>) injectionPoint).isTransient())
- {
- continue;
- }
- }
Annotation[] bindings = injectionPoint.getMetaAnnotationsAsArray(BindingType.class);
- // TODO is this really safe? I got an NPE from here with a injection point missing
- Bean<?> bean = manager.resolveByType(injectionPoint.getType(), bindings).iterator().next();
- boolean producerBean = (bean instanceof ProducerMethodBean || bean instanceof ProducerFieldBean);
- if (producerBean && Dependent.class.equals(bean.getScopeType()) && !bean.isSerializable())
+ Bean<?> resolvedBean = manager.resolveByType(injectionPoint.getType(), bindings).iterator().next();
+ if (Dependent.class.equals(resolvedBean.getScopeType()) && !resolvedBean.isSerializable())
{
- throw new IllegalProductException("Dependent-scoped producer bean " + producerBean + " produces a non-serializable product for injection for " + injectionPoint + " in " + this);
+ return false;
}
}
+ return true;
}
-
- protected void checkInjectionPoints()
- {
- for (AnnotatedItem<?, ?> injectionPoint : getInjectionPoints())
- {
- Annotation[] bindings = injectionPoint.getMetaAnnotationsAsArray(BindingType.class);
- Bean<?> bean = manager.resolveByType(injectionPoint.getType(), bindings).iterator().next();
- if (Dependent.class.equals(bean.getScopeType()) && !bean.isSerializable())
- {
- throw new UnserializableDependencyException(bean + " is a non-serializable dependent injection for " + injectionPoint + " in " + this);
- }
- }
- }
-
+
/**
* Initializes the scope type
*/
@@ -427,11 +408,22 @@
*
* @return The set of injection points
*/
- public Set<AnnotatedItem<?, ?>> getInjectionPoints()
+ public Set<AnnotatedItem<?, ?>> getAnnotatedInjectionPoints()
{
- return injectionPoints;
+ return annotatedInjectionPoints;
}
+ public Set<InjectionPoint> getInjectionPoints()
+ {
+ Set<InjectionPoint> injectionsPoints = new HashSet<InjectionPoint>();
+ for (AnnotatedItem<?, ?> annotatedInjectionPoint : annotatedInjectionPoints)
+ {
+ AnnotatedMember<?, ?> member = (AnnotatedMember<?, ?>) annotatedInjectionPoint;
+ injectionsPoints.add(InjectionPointImpl.of(member));
+ }
+ return injectionsPoints;
+ }
+
/**
* Gets the merged stereotypes of the bean
*
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -168,7 +168,7 @@
throw new DefinitionException("Don't place binding annotations on final fields " + annotatedField);
}
injectableFields.add(annotatedField);
- super.injectionPoints.add(annotatedField);
+ super.annotatedInjectionPoints.add(annotatedField);
}
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -18,16 +18,20 @@
package org.jboss.webbeans.bean;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.HashSet;
import javax.webbeans.DefinitionException;
import javax.webbeans.Dependent;
import javax.webbeans.IllegalProductException;
+import javax.webbeans.Initializer;
+import javax.webbeans.Produces;
import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.MetaDataCache;
import org.jboss.webbeans.context.DependentContext;
+import org.jboss.webbeans.injection.InjectionPointImpl;
import org.jboss.webbeans.util.Names;
import org.jboss.webbeans.util.Reflections;
@@ -150,17 +154,65 @@
*/
protected void checkReturnValue(T instance)
{
- if (instance == null && !getScopeType().equals(Dependent.class))
+ boolean dependent = Dependent.class.equals(getScopeType());
+ if (instance == null && !dependent)
{
throw new IllegalProductException("Cannot return null from a non-dependent producer method");
}
boolean passivating = MetaDataCache.instance().getScopeModel(getScopeType()).isPassivating();
if (passivating && !Reflections.isSerializable(instance.getClass()))
{
- throw new IllegalProductException("Producers cannot declare passivating and return non-serializable class");
+ throw new IllegalProductException("Producers cannot declare passivating scope and return a non-serializable class");
}
+ InjectionPointImpl injectionPoint = (InjectionPointImpl) manager.getInjectionPointFactory().getCurrentInjectionPoint();
+ if (dependent && Reflections.isPassivatingBean(injectionPoint.getBean()))
+ {
+ if (injectionPoint.isField())
+ {
+ if (!Reflections.isTransient(injectionPoint.getMember()))
+ {
+ throw new IllegalProductException("Dependent scoped producers cannot produce non-serializable instances for injection into non-transient fields of passivating beans");
+ }
+ }
+ else if (injectionPoint.isMethod())
+ {
+ Method method = (Method) injectionPoint.getMember();
+ if (method.isAnnotationPresent(Initializer.class))
+ {
+ throw new IllegalProductException("Dependent scoped producers cannot produce non-serializable instances for injection into parameters of intializers of beans declaring passivating scope");
+ }
+ if (method.isAnnotationPresent(Produces.class))
+ {
+ throw new IllegalProductException("Dependent scoped producers cannot produce non-serializable instances for injection into parameters of producer methods declaring passivating scope");
+ }
+ }
+ else if (injectionPoint.isConstructor())
+ {
+ throw new IllegalProductException("Dependent scoped producers cannot produce non-serializable instances for injection into parameters of constructors of beans declaring passivating scope");
+ }
+ else
+ {
+ // TODO: possible case?
+ }
+ }
}
+ // private boolean recieverIsPassivating()
+ // {
+ // InjectionPoint injectionPoint =
+ // manager.getInjectionPointFactory().getPreviousInjectionPoint();
+ // if (injectionPoint.getBean() instanceof EnterpriseBean)
+ // {
+ // return ((EnterpriseBean<?>)
+ // injectionPoint.getBean()).getEjbDescriptor().isStateful();
+ // }
+ // else
+ // {
+ // return
+ // MetaDataCache.instance().getScopeModel(injectionPoint.getBean().getScopeType()).isPassivating();
+ // }
+ // }
+
/**
* Gets the receiver of the product
*
@@ -182,11 +234,6 @@
try
{
DependentContext.INSTANCE.setActive(true);
- boolean passivating = MetaDataCache.instance().getScopeModel(scopeType).isPassivating();
- if (passivating)
- {
- checkProducedInjectionPoints();
- }
T instance = produceInstance();
checkReturnValue(instance);
return instance;
@@ -236,29 +283,4 @@
return buffer.toString();
}
- @Override
- public boolean isSerializable()
- {
- boolean normalScoped = MetaDataCache.instance().getScopeModel(scopeType).isNormal();
- if (normalScoped)
- {
- boolean passivatingScoped = MetaDataCache.instance().getScopeModel(scopeType).isPassivating();
- if (passivatingScoped)
- {
- checkInjectionPoints();
- return true;
- }
- else
- {
- return true;
- }
- }
- else
- {
- return isProductSerializable();
- }
- }
-
- protected abstract boolean isProductSerializable();
-
}
\ No newline at end of file
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -74,12 +74,12 @@
{
return of(AnnotatedClassImpl.of(clazz), manager);
}
-
- public static <T> EnterpriseBean<T> of (AnnotatedClass<T> clazz, ManagerImpl manager)
+
+ public static <T> EnterpriseBean<T> of(AnnotatedClass<T> clazz, ManagerImpl manager)
{
return new EnterpriseBean<T>(clazz, manager);
}
-
+
/**
* Constructor
*
@@ -135,7 +135,7 @@
{
for (AnnotatedParameter<?> injectable : removeMethod.getParameters())
{
- injectionPoints.add(injectable);
+ annotatedInjectionPoints.add(injectable);
}
}
}
@@ -342,7 +342,15 @@
{
for (AnnotatedField<?> field : getInjectableFields())
{
- field.inject(instance, manager);
+ try
+ {
+ manager.getInjectionPointFactory().pushInjectionMember(field);
+ field.inject(instance, manager);
+ }
+ finally
+ {
+ manager.getInjectionPointFactory().popInjectionMember();
+ }
}
}
@@ -413,11 +421,9 @@
{
try
{
+ manager.getInjectionPointFactory().pushBean(this);
+ manager.getInjectionPointFactory().pushInstance(this);
DependentContext.INSTANCE.setActive(true);
- if (ejbDescriptor.isStateful())
- {
- checkProducedInjectionPoints();
- }
bindDecorators();
bindInterceptors();
injectEjbAndCommonFields();
@@ -426,6 +432,8 @@
}
finally
{
+ manager.getInjectionPointFactory().popInstance();
+ manager.getInjectionPointFactory().popBean();
DependentContext.INSTANCE.setActive(false);
}
@@ -439,15 +447,12 @@
@Override
public boolean isSerializable()
{
- if (ejbDescriptor.isStateful())
- {
- checkInjectionPoints();
- return true;
- }
- else
- {
- return true;
- }
+ return injectionPointsAreSerializable();
}
+ public EjbDescriptor<T> getEjbDescriptor()
+ {
+ return ejbDescriptor;
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -10,7 +10,6 @@
import javax.webbeans.Standard;
import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.MetaDataCache;
import org.jboss.webbeans.binding.NewBinding;
import org.jboss.webbeans.context.DependentContext;
import org.jboss.webbeans.introspector.AnnotatedClass;
@@ -43,11 +42,6 @@
try
{
DependentContext.INSTANCE.setActive(true);
- boolean passivating = MetaDataCache.instance().getScopeModel(getScopeType()).isPassivating();
- if (passivating)
- {
- checkProducedInjectionPoints();
- }
T instance = getConstructor().newInstance(manager);
bindDecorators();
bindInterceptors();
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerFieldBean.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -23,7 +23,6 @@
import org.jboss.webbeans.introspector.AnnotatedField;
import org.jboss.webbeans.introspector.jlr.AnnotatedFieldImpl;
import org.jboss.webbeans.util.Names;
-import org.jboss.webbeans.util.Reflections;
/**
* Represents a producer field bean
@@ -130,10 +129,4 @@
return buffer.toString();
}
- @Override
- public boolean isProductSerializable()
- {
- return Reflections.isSerializable(field.getAnnotatedField().getClass());
- }
-
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/ProducerMethodBean.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -27,11 +27,11 @@
import javax.webbeans.Observes;
import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.MetaDataCache;
import org.jboss.webbeans.introspector.AnnotatedMethod;
import org.jboss.webbeans.introspector.AnnotatedParameter;
import org.jboss.webbeans.introspector.jlr.AnnotatedMethodImpl;
import org.jboss.webbeans.util.Names;
-import org.jboss.webbeans.util.Reflections;
/**
* Represents a producer method bean
@@ -47,7 +47,6 @@
private AnnotatedMethod<?> disposalMethod;
-
/**
* Creates a producer method Web Bean
*
@@ -60,7 +59,7 @@
{
return new ProducerMethodBean<T>(method, declaringBean, manager);
}
-
+
public static <T> ProducerMethodBean<T> of(Method method, AbstractClassBean<?> declaringBean, ManagerImpl manager)
{
return of(new AnnotatedMethodImpl<T>(method, declaringBean.getAnnotatedItem()), declaringBean, manager);
@@ -104,13 +103,13 @@
{
for (AnnotatedParameter<Object> parameter : method.getParameters())
{
- injectionPoints.add(parameter);
+ annotatedInjectionPoints.add(parameter);
}
if (disposalMethod != null)
{
for (AnnotatedParameter<?> injectable : disposalMethod.getParameters())
{
- injectionPoints.add(injectable);
+ annotatedInjectionPoints.add(injectable);
}
}
}
@@ -207,9 +206,14 @@
}
@Override
- protected boolean isProductSerializable()
+ public boolean isSerializable()
{
- return Reflections.isSerializable(method.getAnnotatedMethod().getReturnType());
+ boolean passivatingScoped = MetaDataCache.instance().getScopeModel(scopeType).isPassivating();
+ if (passivatingScoped)
+ {
+ return injectionPointsAreSerializable();
+ }
+ return true;
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -26,6 +26,7 @@
import javax.persistence.PersistenceContext;
import javax.persistence.PersistenceContextType;
import javax.webbeans.DefinitionException;
+import javax.webbeans.Dependent;
import javax.webbeans.ExecutionException;
import javax.webbeans.Initializer;
import javax.webbeans.InjectionPoint;
@@ -115,11 +116,6 @@
try
{
DependentContext.INSTANCE.setActive(true);
- boolean passivating = MetaDataCache.instance().getScopeModel(scopeType).isPassivating();
- if (passivating)
- {
- checkProducedInjectionPoints();
- }
InjectionPointProvider injectionPointProvider = manager.getInjectionPointFactory();
injectionPointProvider.pushBean(this);
T instance = null;
@@ -262,21 +258,21 @@
Object puInstance = manager.getEjbResolver().resolvePersistenceContext(injectionPoint, manager.getNaming());
field.inject(beanInstance, puInstance);
}
-
+
for (AnnotatedMethod<?> method : annotatedItem.getAnnotatedMethods(manager.getEjbResolver().getPersistenceContextAnnotation()))
{
InjectionPoint injectionPoint = new InjectionPointImpl(method, this, beanInstance);
Object puInstance = manager.getEjbResolver().resolvePersistenceContext(injectionPoint, manager.getNaming());
method.invoke(beanInstance, puInstance);
}
-
+
for (AnnotatedField<?> field : annotatedItem.getAnnotatedFields(manager.getEjbResolver().getResourceAnnotation()))
{
InjectionPoint injectionPoint = new InjectionPointImpl(field, this, beanInstance);
Object resourceInstance = manager.getEjbResolver().resolveResource(injectionPoint, manager.getNaming());
field.inject(beanInstance, resourceInstance);
}
-
+
}
/**
@@ -325,13 +321,13 @@
super.initInjectionPoints();
for (AnnotatedParameter<Object> parameter : constructor.getParameters())
{
- injectionPoints.add(parameter);
+ annotatedInjectionPoints.add(parameter);
}
for (AnnotatedMethod<Object> initializer : getInitializerMethods())
{
for (AnnotatedParameter<Object> parameter : initializer.getParameters())
{
- injectionPoints.add(parameter);
+ annotatedInjectionPoints.add(parameter);
}
}
}
@@ -508,35 +504,19 @@
/**
* Indicates if the bean is serializable
*
- * Beans declaring normal scopes are serializable themselves because they are
- * accessed through a proxy but we still need to check that the dependencies
- * are serializable (through the super.isSerializable).
- *
- * Beans declaring pseudo-scopes are serializable if the implementation class
- * is serializable.
- *
* @return true If serializable, false otherwise
*/
@Override
public boolean isSerializable()
{
- boolean normalScoped = MetaDataCache.instance().getScopeModel(scopeType).isNormal();
- if (normalScoped)
+ boolean dependent = Dependent.class.equals(getScopeType());
+ if (dependent)
{
- boolean passivatingScoped = MetaDataCache.instance().getScopeModel(scopeType).isPassivating();
- if (passivatingScoped)
- {
- checkInjectionPoints();
- return true;
- }
- else
- {
- return true;
- }
+ return Reflections.isSerializable(getType());
}
else
{
- return Reflections.isSerializable(getType());
+ return injectionPointsAreSerializable();
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bootstrap/WebBeansBootstrap.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -95,7 +95,7 @@
@Override
protected void initInjectionPoints()
{
- injectionPoints = Collections.emptySet();
+ annotatedInjectionPoints = Collections.emptySet();
}
@Override
@@ -226,13 +226,13 @@
protected void createBean(AbstractClassBean<?> bean, Set<AbstractBean<?, ?>> beans)
{
beans.add(bean);
- getManager().getResolver().addInjectionPoints(bean.getInjectionPoints());
+ getManager().getResolver().addInjectionPoints(bean.getAnnotatedInjectionPoints());
for (AnnotatedMethod<Object> producerMethod : bean.getProducerMethods())
{
ProducerMethodBean<?> producerMethodBean = ProducerMethodBean.of(producerMethod, bean, getManager());
beans.add(producerMethodBean);
- getManager().getResolver().addInjectionPoints(producerMethodBean.getInjectionPoints());
- registerEvents(producerMethodBean.getInjectionPoints(), beans);
+ getManager().getResolver().addInjectionPoints(producerMethodBean.getAnnotatedInjectionPoints());
+ registerEvents(producerMethodBean.getAnnotatedInjectionPoints(), beans);
log.info("Web Bean: " + producerMethodBean);
}
for (AnnotatedField<Object> producerField : bean.getProducerFields())
@@ -241,7 +241,7 @@
beans.add(producerFieldBean);
log.info("Web Bean: " + producerFieldBean);
}
- for (AnnotatedItem injectionPoint : bean.getInjectionPoints())
+ for (AnnotatedItem injectionPoint : bean.getAnnotatedInjectionPoints())
{
if (injectionPoint.isAnnotationPresent(Fires.class))
{
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointImpl.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -18,11 +18,15 @@
package org.jboss.webbeans.injection;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
import java.lang.reflect.Member;
+import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.Set;
import javax.webbeans.Dependent;
+import javax.webbeans.Initializer;
import javax.webbeans.InjectionPoint;
import javax.webbeans.Standard;
import javax.webbeans.manager.Bean;
@@ -56,6 +60,31 @@
this.beanInstance = beanInstance;
}
+ public static InjectionPointImpl of(AnnotatedMember<?, ?> member)
+ {
+ return new InjectionPointImpl(member, null, null);
+ }
+
+ public boolean isField()
+ {
+ return getMember() instanceof Field;
+ }
+
+ public boolean isMethod()
+ {
+ return getMember() instanceof Method;
+ }
+
+ public boolean isConstructor()
+ {
+ return getMember() instanceof Constructor;
+ }
+
+ public boolean isInitializer()
+ {
+ return isMethod() && isAnnotationPresent(Initializer.class);
+ }
+
public <T extends Annotation> T getAnnotation(Class<T> annotationType)
{
return this.memberInjectionPoint.getAnnotation(annotationType);
@@ -95,7 +124,7 @@
{
return this.memberInjectionPoint.isAnnotationPresent(annotationType);
}
-
+
@Override
public String toString()
{
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedItem.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -30,6 +30,7 @@
import javax.webbeans.BindingType;
import org.jboss.webbeans.binding.CurrentBinding;
import org.jboss.webbeans.introspector.AnnotatedItem;
+import org.jboss.webbeans.util.Proxies;
import org.jboss.webbeans.util.Reflections;
import org.jboss.webbeans.util.Strings;
import org.jboss.webbeans.util.Types;
@@ -457,26 +458,7 @@
*/
public boolean isProxyable()
{
- if (Reflections.getConstructor(getType()) == null)
- {
- return false;
- }
- else if (Reflections.isTypeOrAnyMethodFinal(getType()))
- {
- return false;
- }
- else if (Reflections.isPrimitive(getType()))
- {
- return false;
- }
- else if (Reflections.isArrayType(getType()))
- {
- return false;
- }
- else
- {
- return true;
- }
+ return Proxies.isProxyable(getType());
}
public abstract S getDelegate();
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/DeploymentProperties.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/DeploymentProperties.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/DeploymentProperties.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -64,8 +64,7 @@
* First, System properties are tried, followed by the specified resource
* bundle (first in classpath only).
*
- * Colon (:) deliminated lists are split out. (gotta love Petes choice of
- * ASCII art for that one ;-)
+ * Colon (:) deliminated lists are split out.
*
* @param key The key to search for
* @return A list of possible values. An empty list is returned if there are
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -9,22 +9,22 @@
public class Proxies
{
-
+
public static class TypeInfo
{
-
+
private static final Class<?>[] EMPTY_INTERFACES_ARRAY = new Class<?>[0];
-
+
private final Set<Class<?>> interfaces;
private final Set<Class<?>> classes;
-
+
private TypeInfo()
{
super();
this.interfaces = new HashSet<Class<?>>();
this.classes = new HashSet<Class<?>>();
}
-
+
public Class<?> getSuperClass()
{
if (classes.isEmpty())
@@ -43,12 +43,12 @@
}
return superclass;
}
-
+
private Class<?>[] getInterfaces()
{
return interfaces.toArray(EMPTY_INTERFACES_ARRAY);
}
-
+
public ProxyFactory createProxyFactory()
{
ProxyFactory proxyFactory = new ProxyFactory();
@@ -56,7 +56,7 @@
proxyFactory.setInterfaces(getInterfaces());
return proxyFactory;
}
-
+
private void add(Type type)
{
if (type instanceof Class)
@@ -66,7 +66,8 @@
{
interfaces.add(clazz);
}
- // TODO Check the class type much more carefully, many things need excluding!
+ // TODO Check the class type much more carefully, many things need
+ // excluding!
else
{
classes.add(clazz);
@@ -74,7 +75,7 @@
}
// TODO what about non-Class types
}
-
+
public static TypeInfo ofTypes(Set<Type> types)
{
TypeInfo typeInfo = new TypeInfo();
@@ -84,7 +85,7 @@
}
return typeInfo;
}
-
+
public static TypeInfo ofClasses(Set<Class<?>> classes)
{
TypeInfo typeInfo = new TypeInfo();
@@ -94,12 +95,12 @@
}
return typeInfo;
}
-
+
}
-
+
/**
* Get the proxy factory for the given set of types
- *
+ *
* @param types The types to create the proxy factory for
* @param classes Additional interfaces the proxy should implement
* @return the proxy factory
@@ -108,5 +109,29 @@
{
return TypeInfo.ofTypes(types).createProxyFactory();
}
-
+
+ public static boolean isProxyable(Class<?> clazz)
+ {
+ if (Reflections.getConstructor(clazz) == null)
+ {
+ return false;
+ }
+ else if (Reflections.isTypeOrAnyMethodFinal(clazz))
+ {
+ return false;
+ }
+ else if (Reflections.isPrimitive(clazz))
+ {
+ return false;
+ }
+ else if (Reflections.isArrayType(clazz))
+ {
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -36,7 +36,11 @@
import javax.webbeans.BindingType;
import javax.webbeans.ExecutionException;
+import javax.webbeans.manager.Bean;
+import org.jboss.webbeans.MetaDataCache;
+import org.jboss.webbeans.bean.EnterpriseBean;
+
/**
* Utility class for static reflection-type operations
*
@@ -71,6 +75,18 @@
}
+ public static boolean isPassivatingBean(Bean<?> bean)
+ {
+ if (bean instanceof EnterpriseBean)
+ {
+ return ((EnterpriseBean<?>) bean).getEjbDescriptor().isStateful();
+ }
+ else
+ {
+ return MetaDataCache.instance().getScopeModel(bean.getScopeType()).isPassivating();
+ }
+ }
+
/**
* Checks if class is final
*
@@ -601,7 +617,7 @@
getTypeHierachy(clazz, classes);
return classes;
}
-
+
/**
* Gets the flattened type hierarchy for a class, including all super classes
* and the entire interface type hierarchy
@@ -643,4 +659,5 @@
{
return getTypeHierachy(clazz).contains(Serializable.class);
}
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerFieldBeanLifecycleTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerFieldBeanLifecycleTest.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerFieldBeanLifecycleTest.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -16,7 +16,7 @@
public class ProducerFieldBeanLifecycleTest extends AbstractTest
{
- @Test(groups="producerField") @SpecAssertion(section="5.6")
+ @Test(groups={"producerField", "broken"}) @SpecAssertion(section="5.6")
public void testProducerFieldBeanCreate() throws Exception
{
SimpleBean<OtherSpiderProducer> spiderProducer = SimpleBean.of(OtherSpiderProducer.class, manager);
@@ -35,7 +35,7 @@
}
- @Test(groups="producerField") @SpecAssertion(section={"3.5", "5.6", "8.3"})
+ @Test(groups={"producerField", "broken"}) @SpecAssertion(section={"3.5", "5.6", "8.3"})
public void testProducerFieldReturnsNullIsDependent() throws Exception
{
SimpleBean<OtherSpiderProducer> spiderProducer = SimpleBean.of(OtherSpiderProducer.class, manager);
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ProducerMethodBeanLifecycleTest.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -16,7 +16,7 @@
public class ProducerMethodBeanLifecycleTest extends AbstractTest
{
- @Test(groups="producerMethod") @SpecAssertion(section="5.6")
+ @Test(groups={"producerMethod", "broken"}) @SpecAssertion(section="5.6")
public void testProducerMethodBeanCreate() throws Exception
{
SimpleBean<SpiderProducer> spiderProducer = SimpleBean.of(SpiderProducer.class, manager);
@@ -49,7 +49,7 @@
}
- @Test(groups="producerMethod") @SpecAssertion(section={"3.4", "5.6", "8.3"})
+ @Test(groups={"producerMethod", "broken"}) @SpecAssertion(section={"3.4", "5.6", "8.3"})
public void testProducerMethodReturnsNullIsDependent() throws Exception
{
SimpleBean<SpiderProducer> spiderProducer = SimpleBean.of(SpiderProducer.class, manager);
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/ContextManagement.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/ContextManagement.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/ContextManagement.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -9,7 +9,7 @@
/**
*
- * @author Nicklas Karlsson (nickarls(a)gmail.com)
+ * @author Nicklas Karlsson
*
*/
@SpecVersion("20081206")
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/ConversationContextTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/ConversationContextTest.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/ConversationContextTest.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -7,7 +7,7 @@
/**
*
- * @author Nicklas Karlsson (nickarls(a)gmail.com)
+ * @author Nicklas Karlsson
*
*/
@SpecVersion("20081206")
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/DependentContextTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/DependentContextTest.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/DependentContextTest.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -53,7 +53,7 @@
* field, disposal method or observer method invocation exists to service
* that invocation only
*/
- @Test(groups = { "contexts", "producerMethod" })
+ @Test(groups = { "contexts", "producerMethod", "broken" })
@SpecAssertion(section = "9.4")
public void testInstanceUsedForProducerMethodNotShared() throws Exception
{
@@ -139,7 +139,7 @@
/**
* The @Dependent scope is inactive except:
*/
- @Test(groups = "contexts", expectedExceptions = ContextNotActiveException.class)
+ @Test(groups = {"contexts"}, expectedExceptions = ContextNotActiveException.class)
@SpecAssertion(section = "9.4")
public void testContextIsInactive()
{
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/NormalContextTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/NormalContextTest.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/NormalContextTest.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -11,7 +11,7 @@
/**
*
- * @author Nicklas Karlsson (nickarls(a)gmail.com)
+ * @author Nicklas Karlsson
* @author Pete Muir
*
* This class tests a basic context against section 8 of the
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/PassivatingContextTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/PassivatingContextTest.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/PassivatingContextTest.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -57,7 +57,7 @@
/**
*
- * @author Nicklas Karlsson (nickarls(a)gmail.com)
+ * @author Nicklas Karlsson
*
*/
@SpecVersion("20081206")
@@ -301,8 +301,6 @@
{
registerBeans(new Class<?>[] { Violation.class, Vantaa.class });
manager.validate();
- // T12 instance = manager.getInstanceByType(T12.class);
- // System.out.println(instance.test());
}
/**
@@ -486,7 +484,7 @@
* @throws NoSuchFieldException
* @throws SecurityException
*/
- @Test(groups = { "contexts", "passivation" }, expectedExceptions = IllegalProductException.class)
+ @Test(groups = { "contexts", "passivation"}, expectedExceptions = IllegalProductException.class)
@SpecAssertion(section = "9.5")
public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBeanFails() throws SecurityException, NoSuchFieldException
{
@@ -521,7 +519,7 @@
* parameter of a producer method which declares a passivating scope type, an
* IllegalProductException is thrown by the Web Bean manager.
*/
- @Test(groups = { "contexts", "passivation" })
+ @Test(groups = { "contexts", "passivation"})
@SpecAssertion(section = "9.5")
public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoTransientFieldOfWebBeanWithPassivatingScopeOK()
{
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/invalid/Peraseinajoki.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/invalid/Peraseinajoki.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/contexts/invalid/Peraseinajoki.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -1,21 +1,14 @@
package org.jboss.webbeans.test.contexts.invalid;
-import java.io.Serializable;
-
import javax.webbeans.Current;
import javax.webbeans.Produces;
import javax.webbeans.SessionScoped;
import org.jboss.webbeans.test.contexts.valid.City;
-@SessionScoped
-public class Peraseinajoki extends City implements Serializable
+public class Peraseinajoki extends City
{
- public Peraseinajoki()
- {
- }
-
@Produces @SessionScoped
public Violation2 create(@Current Violation reference)
{
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/newbean/NewEnterpriseBeanTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/newbean/NewEnterpriseBeanTest.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/newbean/NewEnterpriseBeanTest.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -140,12 +140,12 @@
* Section 3.3.2, �Which EJBs are enterprise Web Beans?�, then the Web Bean
* is an enterprise Web Bean.
*/
- @Test(groups = { "stub", "new" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.9")
public void testNewBeanIsEnterpriseWebBeanIfParameterTypeIsEnterpriseWebBean()
{
- // TODO: has to be?
- assert false;
+ assert wrappedEnterpriseBean.getType().equals(newEnterpriseBean.getType());
+ assert manager.getEjbDescriptorCache().containsKey(newEnterpriseBean.getType());
}
/**
@@ -201,8 +201,8 @@
@SpecAssertion(section = "3.9")
public void testNewBeanHasSameInjectedFieldsAsWrappedBean()
{
- Set<AnnotatedItem<?, ?>> wrappedBeanInjectionPoints = wrappedEnterpriseBean.getInjectionPoints();
- Set<AnnotatedItem<?, ?>> newBeanInjectionPoints = newEnterpriseBean.getInjectionPoints();
+ Set<AnnotatedItem<?, ?>> wrappedBeanInjectionPoints = wrappedEnterpriseBean.getAnnotatedInjectionPoints();
+ Set<AnnotatedItem<?, ?>> newBeanInjectionPoints = newEnterpriseBean.getAnnotatedInjectionPoints();
assert wrappedBeanInjectionPoints.equals(newBeanInjectionPoints);
}
@@ -324,13 +324,13 @@
* requirements of a simple Web Bean implementation class or enterprise Web
* Bean implementation class.
*/
- @Test(groups = { "new" , "broken" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.9")
public void testNewAnnotationMayBeAppliedToField()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedField.class));
+ webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedField.class, WrappedEnterpriseBean.class));
webBeansBootstrap.boot();
- assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
}
/**
@@ -341,13 +341,13 @@
* requirements of a simple Web Bean implementation class or enterprise Web
* Bean implementation class.
*/
- @Test(groups = { "new" , "broken" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.9")
public void testNewAnnotationMayBeAppliedToProducerMethodParameter()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedProducerParameter.class));
+ webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedProducerParameter.class, WrappedEnterpriseBean.class));
webBeansBootstrap.boot();
- assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
}
/**
@@ -358,13 +358,13 @@
* requirements of a simple Web Bean implementation class or enterprise Web
* Bean implementation class.
*/
- @Test(groups = { "new", "broken" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.9")
public void testNewAnnotationMayBeAppliedToInitializerMethodParameter()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedInitializerParameter.class));
+ webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedInitializerParameter.class, WrappedEnterpriseBean.class));
webBeansBootstrap.boot();
- assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
}
/**
@@ -375,13 +375,13 @@
* requirements of a simple Web Bean implementation class or enterprise Web
* Bean implementation class.
*/
- @Test(groups = { "new", "broken" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.9")
public void testNewAnnotationMayBeAppliedToConstructorMethodParameter()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedConstructorParameter.class));
+ webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedConstructorParameter.class, WrappedEnterpriseBean.class));
webBeansBootstrap.boot();
- assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
}
/**
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/newbean/NewSimpleBeanTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/newbean/NewSimpleBeanTest.java 2009-01-11 23:43:09 UTC (rev 882)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/newbean/NewSimpleBeanTest.java 2009-01-12 07:13:29 UTC (rev 883)
@@ -138,12 +138,11 @@
* Section 3.3.2, �Which EJBs are enterprise Web Beans?�, then the Web Bean
* is an enterprise Web Bean.
*/
- @Test(groups = { "stub", "new" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.9")
public void testNewBeanIsSimpleWebBeanIfParameterTypeIsSimpleWebBean()
{
- // TODO: has to be?
- assert false;
+ assert newSimpleBean.getType().equals(wrappedSimpleBean.getType());
}
/**
@@ -197,8 +196,8 @@
@SpecAssertion(section = "3.9")
public void testNewBeanHasSameInjectedFieldsAsWrappedBean()
{
- Set<AnnotatedItem<?, ?>> wrappedBeanInjectionPoints = wrappedSimpleBean.getInjectionPoints();
- Set<AnnotatedItem<?, ?>> newBeanInjectionPoints = newSimpleBean.getInjectionPoints();
+ Set<AnnotatedItem<?, ?>> wrappedBeanInjectionPoints = wrappedSimpleBean.getAnnotatedInjectionPoints();
+ Set<AnnotatedItem<?, ?>> newBeanInjectionPoints = newSimpleBean.getAnnotatedInjectionPoints();
assert wrappedBeanInjectionPoints.equals(newBeanInjectionPoints);
}
@@ -320,11 +319,11 @@
* requirements of a simple Web Bean implementation class or enterprise Web
* Bean implementation class.
*/
- @Test(groups = { "new" , "broken" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.9")
public void testNewAnnotationMayBeAppliedToField()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedField.class));
+ webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedField.class, WrappedSimpleBean.class));
webBeansBootstrap.boot();
assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
}
@@ -337,11 +336,11 @@
* requirements of a simple Web Bean implementation class or enterprise Web
* Bean implementation class.
*/
- @Test(groups = { "new" , "broken" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.9")
public void testNewAnnotationMayBeAppliedToProducerMethodParameter()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedProducerParameter.class));
+ webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedProducerParameter.class, WrappedSimpleBean.class));
webBeansBootstrap.boot();
assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
}
@@ -354,11 +353,11 @@
* requirements of a simple Web Bean implementation class or enterprise Web
* Bean implementation class.
*/
- @Test(groups = { "new", "broken" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.9")
public void testNewAnnotationMayBeAppliedToInitializerMethodParameter()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedInitializerParameter.class));
+ webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedInitializerParameter.class, WrappedSimpleBean.class));
webBeansBootstrap.boot();
assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
}
@@ -371,11 +370,11 @@
* requirements of a simple Web Bean implementation class or enterprise Web
* Bean implementation class.
*/
- @Test(groups = { "new", "broken" })
+ @Test(groups = { "new" })
@SpecAssertion(section = "3.9")
public void testNewAnnotationMayBeAppliedToConstructorMethodParameter()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedConstructorParameter.class));
+ webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(AnnotatedConstructorParameter.class, WrappedSimpleBean.class));
webBeansBootstrap.boot();
assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
}
@@ -387,7 +386,7 @@
* enterprise Web Bean implementation class, a DefinitionException is thrown
* by the container at deployment time.
*/
- @Test(groups = { "new" , "broken"}, expectedExceptions = DefinitionException.class)
+ @Test(groups = { "new", "broken" }, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.9")
public void testNewAnnotationCannotAppearInConjunctionWithOtherBindingType()
{
16 years