[webbeans-commits] Webbeans SVN: r1102 - doc/trunk/reference/zh-TW.
by webbeans-commits@lists.jboss.org
Author: tchuang
Date: 2009-01-19 20:04:23 -0500 (Mon, 19 Jan 2009)
New Revision: 1102
Modified:
doc/trunk/reference/zh-TW/ri-spi.po
Log:
Translation updated
Modified: doc/trunk/reference/zh-TW/ri-spi.po
===================================================================
--- doc/trunk/reference/zh-TW/ri-spi.po 2009-01-19 23:58:42 UTC (rev 1101)
+++ doc/trunk/reference/zh-TW/ri-spi.po 2009-01-20 01:04:23 UTC (rev 1102)
@@ -8,7 +8,7 @@
"Project-Id-Version: ri-spi\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-18 16:31+0000\n"
-"PO-Revision-Date: 2009-01-13 10:13+1000\n"
+"PO-Revision-Date: 2009-01-20 11:03+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"
@@ -88,7 +88,7 @@
msgid ""
"All interfaces in the SPI support the decorator pattern and provide a "
"<literal>Forwarding</literal> class."
-msgstr ""
+msgstr "SPI 中所有的介面都支援裝飾器模式並提供了一個 <literal>Forwarding</literal> class。"
#. Tag: title
#: ri-spi.xml:48
@@ -98,7 +98,7 @@
#. Tag: programlisting
#: ri-spi.xml:50
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[public interface WebBeanDiscovery {\n"
" /**\n"
@@ -134,13 +134,6 @@
" */\n"
" public Iterable<URL> discoverWebBeansXml();\n"
" \n"
-" /**\n"
-" * Gets a descriptor for each EJB in the application\n"
-" * \n"
-" * @return The bean class to descriptor map \n"
-" */\n"
-" public Iterable<EjbDescriptor<?>> discoverEjbs();\n"
-" \n"
"}]]>"
#. Tag: para
@@ -156,16 +149,16 @@
#. Tag: para
#: ri-spi.xml:58
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The Web Beans RI can be told to load your implementation of "
"<literal>WebBeanDiscovery</literal> using the property <literal>org.jboss."
"webbeans.bootstrap.spi.WebBeanDiscovery</literal> with the fully qualified "
"class name as the value. For example:"
msgstr ""
-"Web Beans RI 可被指定來透過使用 <literal>org.jboss.webbeans.bootstrap."
-"WebBeanDiscovery</literal> 這個內容以及完整的 class 名稱為值來載入您的 "
-"<literal>WebBeanDiscovery</literal> 實做。例如:"
+"Web Beans RI 可被指定來透過使用 <literal>org.jboss."
+"webbeans.bootstrap.spi.WebBeanDiscovery</literal> 以及完整的 class 名稱為值來載入您 "
+"<literal>WebBeanDiscovery</literal> 的實做。例如:"
#. Tag: programlisting
#: ri-spi.xml:65
@@ -183,14 +176,13 @@
msgid ""
"If the Web Beans RI is being used in a servlet container, it expects a "
"constructor of the form:"
-msgstr ""
+msgstr "若 Web Bean RI 被使用在一個 servlet container 中的話,它會預期一個含有下列格式的 constructor:"
#. Tag: programlisting
#: ri-spi.xml:72
#, no-c-format
-msgid ""
-"<![CDATA[public WebBeanDiscoveryImpl(ServletContext servletContext) {}]]>"
-msgstr ""
+msgid "<![CDATA[public WebBeanDiscoveryImpl(ServletContext servletContext) {}]]>"
+msgstr "<![CDATA[public WebBeanDiscoveryImpl(ServletContext servletContext) {}]]>"
#. Tag: para
#: ri-spi.xml:74
@@ -198,13 +190,13 @@
msgid ""
"The servlet context can be used to allow your implementation of "
"<literal>WebBeanDiscovery</literal> to interact with the container."
-msgstr ""
+msgstr "servlet 的 context 可被用來允許您 <literal>WebBeanDiscovery</literal> 的實做來與 container 進行互動。"
#. Tag: title
#: ri-spi.xml:82
-#, fuzzy, no-c-format
+#, no-c-format
msgid "EJB Discovery"
-msgstr "Web Bean 搜尋"
+msgstr "EJB Discovery"
#. Tag: para
#: ri-spi.xml:84
@@ -236,10 +228,22 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[public interface EjbDiscovery\n"
+"{\n"
+" public static final String PROPERTY_NAME = EjbDiscovery.class.getName();\n"
+" \n"
+" /**\n"
+" * Gets a descriptor for each EJB in the application\n"
+" * \n"
+" * @return The bean class to descriptor map \n"
+" */\n"
+" public Iterable<EjbDescriptor<?>> discoverEjbs();\n"
+" \n"
+"}]]>"
#. Tag: programlisting
#: ri-spi.xml:93
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[public interface EjbDescriptor<T> {\n"
" \n"
@@ -378,18 +382,12 @@
" */\n"
" public String getEjbName();\n"
" \n"
-" /**\n"
-" * @return The JNDI string which can be used to lookup a proxy which \n"
-" * implements all local business interfaces \n"
-" * \n"
-" */\n"
-" public String getLocalJndiName();\n"
" \n"
"}]]>"
#. Tag: para
#: ri-spi.xml:95
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The <literal>EjbDescriptor</literal> is fairly self-explanatory, and should "
"return the relevant metadata as defined in the EJB specification. In "
@@ -397,39 +395,36 @@
"<literal>BusinessInterfaceDescriptor</literal> which represents a local "
"business interface (encapsulating the interface class and jndi name used to "
"look up an instance of the EJB)."
-msgstr ""
-"描述 JavaDoc 的合同已足夠實做一個 EJBDescriptor。除了這兩個介面,還有個代表本"
-"地商業介面的 <literal>BusinessInterfaceDescriptor</literal>(包含了介面類別以"
-"及 jndi 名稱)。"
+msgstr "<literal>EjbDescriptor</literal> 本身已不解自明並且不需加以說明,它應會依照 EJB 規格中所定義地來回傳相關的 metadata。除了這兩個介面,還有個代表本地商業介面的 <literal>BusinessInterfaceDescriptor</literal>(包含了使用來查詢某個 EJB instance 的 interface class 以及 jndi 名稱)。"
#. Tag: para
#: ri-spi.xml:104
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The Web Beans RI can be told to load your implementation of "
"<literal>EjbDiscovery</literal> using the property <literal>org.jboss."
"webbeans.bootstrap.spi.EjbDiscovery</literal> with the fully qualified class "
"name as the value. For example:"
msgstr ""
-"Web Beans RI 可被指定來透過使用 <literal>org.jboss.webbeans.bootstrap."
-"WebBeanDiscovery</literal> 這個內容以及完整的 class 名稱為值來載入您的 "
-"<literal>WebBeanDiscovery</literal> 實做。例如:"
+"Web Beans RI 可被指定來透過使用 <literal>org.jboss."
+"webbeans.bootstrap.spi.EjbDiscovery</literal> 以及完整的 class 名稱為值來載入您 "
+"<literal>EjbDiscovery</literal> 的實做。例如:"
#. Tag: programlisting
#: ri-spi.xml:111
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"org.jboss.webbeans.bootstrap.spi.EjbDiscovery=org.jboss.webbeans.integration."
"jbossas.EjbDiscoveryImpl"
msgstr ""
-"org.jboss.webbeans.bootstrap.spi.WebBeanDiscovery=org.jboss.webbeans."
-"integration.jbossas.WebBeanDiscoveryImpl"
+"org.jboss.webbeans.bootstrap.spi.EjbDiscovery=org.jboss.webbeans.integration."
+"jbossas.EjbDiscoveryImpl"
#. Tag: programlisting
#: ri-spi.xml:118
#, no-c-format
msgid "<![CDATA[public EjbDiscoveryImpl(ServletContext servletContext) {}]]>"
-msgstr ""
+msgstr "<![CDATA[public EjbDiscoveryImpl(ServletContext servletContext) {}]]>"
#. Tag: para
#: ri-spi.xml:120
@@ -437,7 +432,7 @@
msgid ""
"The servlet context can be used to allow your implementation of "
"<literal>EjbDiscovery</literal> to interact with the container."
-msgstr ""
+msgstr "servlet 的 context 可被用來允許您 <literal>EjbDiscovery</literal> 的實做來與 container 進行互動。"
#. Tag: title
#: ri-spi.xml:128
@@ -447,20 +442,17 @@
#. Tag: para
#: ri-spi.xml:130
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The Web Beans RI implements JNDI binding and lookup according to standards, "
"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.NamingContext</literal>:"
-msgstr ""
-"Web Beans RI 會實做 JNDI 綁定並依照標準來進行搜尋,不過您可能在某些情況下會希"
-"望修改綁定和搜尋(例如在一個 JNDI 無法使用的環境下)。若要如此,請實做 "
-"<literal>org.jboss.webbeans.spi.resources.Naming</literal>:"
+msgstr "Web Beans RI 會實做 JNDI 綁定並依照標準來進行搜尋,不過您可能在某些情況下會希望修改綁定和搜尋(比方說在一個 JNDI 無法使用的環境下)。若要如此,請實做 <literal>org.jboss.webbeans.spi.resources.NamingContext</literal>:"
#. Tag: programlisting
#: ri-spi.xml:138
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"<![CDATA[public interface NamingContext extends Serializable {\n"
" \n"
@@ -484,7 +476,7 @@
" \n"
"}]]>"
msgstr ""
-"<![CDATA[public interface Naming extends Serializable {\n"
+"<![CDATA[public interface NamingContext extends Serializable {\n"
" \n"
" /**\n"
" * Typed JNDI lookup\n"
@@ -499,10 +491,10 @@
" /**\n"
" * Binds an item to JNDI\n"
" * \n"
-" * @param key The key to bind under\n"
+" * @param name The key to bind under\n"
" * @param value The item to bind\n"
" */\n"
-" public void bind(String key, Object value);\n"
+" public void bind(String name, Object value);\n"
" \n"
"}]]>"
@@ -514,15 +506,15 @@
#. Tag: programlisting
#: ri-spi.xml:144
-#, fuzzy, no-c-format
+#, no-c-format
msgid "org.jboss.webbeans.resources.spi.NamingContext=com.acme.MyNamingContext"
-msgstr "org.jboss.webbeans.resources.spi.Naming=com.acme.MyNaming"
+msgstr "org.jboss.webbeans.resources.spi.NamingContext=com.acme.MyNamingContext"
#. Tag: programlisting
#: ri-spi.xml:151
#, no-c-format
msgid "<![CDATA[public MyNamingContext(ServletContext servletContext) {}]]>"
-msgstr ""
+msgstr "<![CDATA[public MyNamingContext(ServletContext servletContext) {}]]>"
#. Tag: para
#: ri-spi.xml:153
@@ -530,7 +522,7 @@
msgid ""
"The servlet context can be used to allow your implementation of "
"<literal>NamingContext</literal> to interact with the container."
-msgstr ""
+msgstr "servlet 的 context 可被用來允許您 <literal>NamingContext</literal> 的實做來與 container 進行互動。"
#. Tag: title
#: ri-spi.xml:161
@@ -621,14 +613,13 @@
#: ri-spi.xml:177
#, 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: programlisting
#: ri-spi.xml:184
#, no-c-format
msgid "<![CDATA[public MyResourceLoader(ServletContext servletContext) {}]]>"
-msgstr ""
+msgstr "<![CDATA[public MyResourceLoader(ServletContext servletContext) {}]]>"
#. Tag: para
#: ri-spi.xml:186
@@ -728,3 +719,4 @@
"若您要將 Web Bean 整合入一個支援應用程式建置的環境中,您就必須將 "
"<literal>webbeans-ri.jar</literal> 插入應用程式隔離的 classholder 中。它無法"
"藉由共享的 classloader 來被載入。"
+
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1101 - tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance and 2 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-19 18:58:42 -0500 (Mon, 19 Jan 2009)
New Revision: 1101
Added:
ri/trunk/webbeans-api/src/main/java/javax/webbeans/Realizes.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractCow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractFarmHouse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractHorse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractKennel.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractStable.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Cow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Cuddly.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Dog.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Dung.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/FarmAnimalDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/FarmHouse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Horse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/LabradorKennel.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/RealizationTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Smelly.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Stable.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Tame.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/TameCow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/TameHorse.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/Farmer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/OrganicFarmer.java
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/SpecializationTest.java
Log:
realization tests, marked broken for now
Added: ri/trunk/webbeans-api/src/main/java/javax/webbeans/Realizes.java
===================================================================
--- ri/trunk/webbeans-api/src/main/java/javax/webbeans/Realizes.java (rev 0)
+++ ri/trunk/webbeans-api/src/main/java/javax/webbeans/Realizes.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,40 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package javax.webbeans;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * Specifies that an implementation class directly specializes its superclass,
+ * of that a producer method directly specializes the method it overrides.
+ *
+ * @author Gavin King
+ * @author Pete Muir
+ */
+
+@Target(TYPE)
+@Retention(RUNTIME)
+@Documented
+public @interface Realizes
+{
+}
Property changes on: ri/trunk/webbeans-api/src/main/java/javax/webbeans/Realizes.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractCow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractCow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractCow.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
+
+abstract class AbstractCow
+{
+
+ @Produces @RequestScoped @Smelly @FarmAnimalDeploymentType Dung getDung()
+ {
+ return new Dung();
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractCow.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractFarmHouse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractFarmHouse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractFarmHouse.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import javax.webbeans.Observes;
+
+abstract class AbstractFarmHouse
+{
+
+ public void observeTameCows(@Observes @Tame Cow cow)
+ {
+
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractFarmHouse.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractHorse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractHorse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractHorse.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
+
+abstract class AbstractHorse
+{
+
+ @Produces @Smelly @RequestScoped @FarmAnimalDeploymentType private Dung dung = new Dung();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractHorse.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractKennel.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractKennel.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractKennel.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import javax.webbeans.Produces;
+
+class AbstractKennel
+{
+
+ @Produces @Cuddly public Dog get()
+ {
+ return new Dog() {};
+ }
+
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractKennel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractStable.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractStable.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractStable.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
+
+abstract class AbstractStable
+{
+
+ private @Produces @Cuddly Horse horse = new Horse();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AbstractStable.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AnotherDeploymentType.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface AnotherDeploymentType
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/AnotherDeploymentType.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Cow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Cow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Cow.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import javax.webbeans.Realizes;
+
+@Realizes @AnotherDeploymentType
+class Cow extends AbstractCow
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Cow.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Cuddly.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Cuddly.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Cuddly.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.RequestScoped;
+import javax.webbeans.Stereotype;
+
+@Stereotype
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@interface Cuddly
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Cuddly.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Dog.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Dog.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Dog.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+interface Dog
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Dog.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Dung.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Dung.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Dung.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+class Dung
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Dung.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/FarmAnimalDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/FarmAnimalDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/FarmAnimalDeploymentType.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,21 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Documented
+@DeploymentType
+@interface FarmAnimalDeploymentType
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/FarmAnimalDeploymentType.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/FarmHouse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/FarmHouse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/FarmHouse.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+class FarmHouse extends AbstractFarmHouse
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/FarmHouse.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Horse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Horse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Horse.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+@AnotherDeploymentType
+class Horse extends AbstractHorse
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Horse.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/LabradorKennel.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/LabradorKennel.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/LabradorKennel.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import javax.webbeans.Realizes;
+
+@Realizes
+class LabradorKennel extends AbstractKennel
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/LabradorKennel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/RealizationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/RealizationTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/RealizationTest.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,130 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import static org.jboss.webbeans.tck.impl.util.Reflections.annotationSetMatches;
+
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.RequestScoped;
+
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.tests.AbstractTest;
+import org.testng.annotations.Test;
+
+public class RealizationTest extends AbstractTest
+{
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasSameScope()
+ {
+ deployBeans(Cow.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasScopeOfRealizingClass()
+ {
+ deployBeans(Cow.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getDeploymentType().equals(AnotherDeploymentType.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasSameBindings()
+ {
+ deployBeans(Cow.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().iterator().next().annotationType().equals(Smelly.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasBindingsOfMethodAndRealizingType()
+ {
+ deployBeans(TameCow.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().size() == 2;
+ assert annotationSetMatches(manager.resolveByType(Dung.class).iterator().next().getBindings(), Smelly.class, Tame.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasSameStereotypes()
+ {
+ deployBeans(LabradorKennel.class);
+ assert manager.resolveByType(Dog.class).size() == 1;
+ assert manager.resolveByType(Dog.class).iterator().next().getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerMethodHasSameInterceptorBindings()
+ {
+ assert false;
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasSameScope()
+ {
+ deployBeans(Horse.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasScopeOfRealizingClass()
+ {
+ deployBeans(Horse.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getDeploymentType().equals(AnotherDeploymentType.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasSameBindings()
+ {
+ deployBeans(Horse.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().iterator().next().annotationType().equals(Smelly.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasBindingsOfMethodAndRealizingType()
+ {
+ deployBeans(TameHorse.class);
+ assert manager.resolveByType(Dung.class).size() == 1;
+ assert manager.resolveByType(Dung.class).iterator().next().getBindings().size() == 2;
+ assert annotationSetMatches(manager.resolveByType(Dung.class).iterator().next().getBindings(), Smelly.class, Tame.class);
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasSameStereotypes()
+ {
+ deployBeans(Stable.class);
+ assert manager.resolveByType(Horse.class).size() == 1;
+ assert manager.resolveByType(Horse.class).iterator().next().getScopeType().equals(RequestScoped.class);
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="4.1")
+ public void testRealizedBeanWithProducerFieldHasSameInterceptorBindings()
+ {
+ assert false;
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="4.1")
+ public void testDisposalMethodInherited()
+ {
+ assert false;
+ }
+
+ @Test(groups="stub") @SpecAssertion(section="4.1")
+ public void testRealizedDisposalMethodHasBindingsOfMethodAndRealizingType()
+ {
+ assert false;
+ }
+
+ @Test(groups="broken") @SpecAssertion(section="4.1")
+ public void testObserverMethodInheritedAndHasSameBindings()
+ {
+ deployBeans(FarmHouse.class);
+ assert manager.resolveObservers(new Cow(), new AnnotationLiteral<Tame>(){}).size() == 1;
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/RealizationTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Smelly.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Smelly.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Smelly.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.BindingType;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Smelly
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Smelly.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Stable.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Stable.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Stable.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+public class Stable
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Stable.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Tame.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.BindingType;
+
+@Target( { TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+@BindingType
+@interface Tame
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/Tame.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/TameCow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/TameCow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/TameCow.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import javax.webbeans.Realizes;
+
+@Realizes @Tame
+class TameCow extends Cow
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/TameCow.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/TameHorse.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/TameHorse.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/TameHorse.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.tests.inheritance.realization;
+
+import javax.webbeans.Realizes;
+
+@Realizes @Tame
+class TameHorse extends AbstractHorse
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/realization/TameHorse.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/Farmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/Farmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/Farmer.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.inheritance.specialization;
+
+public class Farmer
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/Farmer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/OrganicFarmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/OrganicFarmer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/OrganicFarmer.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.tests.inheritance.specialization;
+
+import javax.webbeans.Specializes;
+
+@Specializes
+public class OrganicFarmer extends Farmer
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/OrganicFarmer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/SpecializationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/SpecializationTest.java 2009-01-19 23:06:59 UTC (rev 1100)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/inheritance/specialization/SpecializationTest.java 2009-01-19 23:58:42 UTC (rev 1101)
@@ -2,6 +2,7 @@
import javax.webbeans.InconsistentSpecializationException;
+import org.jboss.webbeans.tck.impl.SpecAssertion;
import org.testng.annotations.Test;
public class SpecializationTest
@@ -13,4 +14,10 @@
}
+ @Test @SpecAssertion(section="4.3")
+ public void testSpecializedBeanDirectlyExtendsLowerPriorityBean()
+ {
+
+ }
+
}
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1100 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector and 4 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-19 18:06:59 -0500 (Mon, 19 Jan 2009)
New Revision: 1100
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/Leopard_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/Tiger.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.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/unit/bootstrap/BootstrapTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/SimpleBeanDefinitionTest.java
Log:
WBRI-105 and tidy up simple bean a bit
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-19 22:53:13 UTC (rev 1099)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/SimpleBean.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -305,13 +305,13 @@
/**
* Validates the type
*/
- private void checkType()
+ protected void checkType()
{
- if (Reflections.isNonStaticInnerClass(type))
+ if (getAnnotatedItem().isNonStaticMemberClass())
{
throw new DefinitionException("Simple Web Bean " + type + " cannot be a non-static inner class");
}
- if (Reflections.isParameterizedType(type))
+ if (getAnnotatedItem().isParameterizedType())
{
throw new DefinitionException("Simple Web Bean " + type + " cannot be a parameterized type");
}
@@ -321,6 +321,22 @@
throw new DefinitionException("Simple Web Beans declaring a passivating scope must have a serializable implementation class");
}
}
+
+ @Override
+ protected void checkBeanImplementation()
+ {
+ super.checkBeanImplementation();
+ if (!scopeType.equals(Dependent.class))
+ {
+ for (AnnotatedField<?> field : getAnnotatedItem().getFields())
+ {
+ if (field.isPublic() && !field.isStatic())
+ {
+ throw new DefinitionException("Normal scoped Web Bean implementation class has a public field " + getAnnotatedItem());
+ }
+ }
+ }
+ }
/**
* Initializes the constructor
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java 2009-01-19 22:53:13 UTC (rev 1099)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedClass.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -142,5 +142,14 @@
* @return The abstracted superclass, null if there is no superclass
*/
public AnnotatedClass<?> getSuperclass();
+
+ /**
+ * Determine if this is a non-static member class
+ *
+ * @return true if this is a non-static member
+ */
+ public boolean isNonStaticMemberClass();
+
+ public boolean isParameterizedType();
}
\ No newline at end of file
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java 2009-01-19 22:53:13 UTC (rev 1099)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedItem.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -166,6 +166,13 @@
* @return True if proxyable, false otherwise
*/
public boolean isProxyable();
+
+ /**
+ * Indicates if this annotated item is public
+ *
+ * @return if public, returns true
+ */
+ public boolean isPublic();
/**
* Gets the name of this AnnotatedItem
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java 2009-01-19 22:53:13 UTC (rev 1099)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedItem.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -151,6 +151,11 @@
{
return delegate().isProxyable();
}
+
+ public boolean isPublic()
+ {
+ return delegate().isPublic();
+ }
/**
* Overridden method into delegate
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java 2009-01-19 22:53:13 UTC (rev 1099)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -19,6 +19,7 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Member;
+import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -98,6 +99,8 @@
// Cached string representation
private String toString;
+
+ private final boolean _public;
/**
* Constructor
@@ -108,6 +111,7 @@
{
super(annotationMap, declaredAnnotationMap);
name = member.getName();
+ _public = Modifier.isPublic(member.getModifiers());
}
/**
@@ -138,6 +142,11 @@
{
return Reflections.isTransient(getDelegate());
}
+
+ public boolean isPublic()
+ {
+ return _public;
+ }
/**
* Gets the current value of the member
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java 2009-01-19 22:53:13 UTC (rev 1099)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedType.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -17,6 +17,8 @@
package org.jboss.webbeans.introspector.jlr;
+import java.lang.reflect.Modifier;
+
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.util.Reflections;
@@ -38,6 +40,7 @@
// Cached string representation
private String toString;
+ private final boolean _public;
/**
* Constructor
@@ -56,6 +59,7 @@
{
this.superclass = null;
}
+ this._public = Modifier.isFinal(type.getModifiers());
}
public AbstractAnnotatedType(AnnotationMap annotationMap, Class<T> type)
@@ -86,6 +90,11 @@
{
return Reflections.isFinal(getDelegate());
}
+
+ public boolean isPublic()
+ {
+ return _public;
+ }
/**
* Gets the name of the type
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java 2009-01-19 22:53:13 UTC (rev 1099)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedClassImpl.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -38,6 +38,7 @@
import org.jboss.webbeans.introspector.AnnotatedField;
import org.jboss.webbeans.introspector.AnnotatedMethod;
import org.jboss.webbeans.util.Names;
+import org.jboss.webbeans.util.Reflections;
import org.jboss.webbeans.util.Strings;
import com.google.common.collect.ForwardingMap;
@@ -255,6 +256,9 @@
// Cached string representation
private String toString;
+ private final boolean _nonStaticMemberClass;
+ private final boolean _parameterizedType;
+
public static <T> AnnotatedClass<T> of(Class<T> clazz)
{
return new AnnotatedClassImpl<T>(clazz, clazz, clazz.getAnnotations(), clazz.getDeclaredAnnotations());
@@ -293,6 +297,8 @@
this.declaredFields = new HashSet<AnnotatedField<?>>();
this.declaredAnnotatedFields = new AnnotatedFieldMap();
this.declaredMetaAnnotatedFields = new AnnotatedFieldMap();
+ this._nonStaticMemberClass = Reflections.isNonMemberInnerClass(rawType);
+ this._parameterizedType = Reflections.isParameterizedType(rawType);
for (Class<?> c = clazz; c != Object.class && c != null; c = c.getSuperclass())
{
for (Field field : c.getDeclaredFields())
@@ -493,6 +499,16 @@
return clazz;
}
+ public boolean isNonStaticMemberClass()
+ {
+ return _nonStaticMemberClass;
+ }
+
+ public boolean isParameterizedType()
+ {
+ return _parameterizedType;
+ }
+
/**
* Gets the actual type arguments
*
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java 2009-01-19 22:53:13 UTC (rev 1099)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AnnotatedParameterImpl.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -45,6 +45,7 @@
private final boolean _final = false;
// The static state
private final boolean _static = false;
+ private final boolean _public = false;
private final AnnotatedMember<?, ?> declaringMember;
// Cached string representation
@@ -127,6 +128,11 @@
{
return _static;
}
+
+ public boolean isPublic()
+ {
+ return _public;
+ }
/**
* Gets the current value
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-19 22:53:13 UTC (rev 1099)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Reflections.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -197,7 +197,7 @@
* @param clazz Class to Check
* @return True if static, false otherwise
*/
- public static boolean isNonStaticInnerClass(Class<?> clazz)
+ public static boolean isNonMemberInnerClass(Class<?> clazz)
{
return clazz.isMemberClass() && !isStatic(clazz);
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/bootstrap/BootstrapTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/bootstrap/BootstrapTest.java 2009-01-19 22:53:13 UTC (rev 1099)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/bootstrap/BootstrapTest.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -10,6 +10,7 @@
import org.jboss.webbeans.bean.EnterpriseBean;
import org.jboss.webbeans.bean.ProducerMethodBean;
import org.jboss.webbeans.bean.SimpleBean;
+import org.jboss.webbeans.test.mock.MockBootstrap;
import org.jboss.webbeans.test.unit.AbstractTest;
import org.testng.annotations.Test;
@@ -201,7 +202,9 @@
@Test(groups="bootstrap", expectedExceptions=IllegalStateException.class)
public void testDiscoverFails()
{
- deployBeans();
+ MockBootstrap bootstrap = new MockBootstrap();
+ bootstrap.setWebBeanDiscovery(null);
+ bootstrap.boot();
}
@Test(groups="bootstrap")
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/Leopard_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/Leopard_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/Leopard_Broken.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.tests.implementation.simple;
+
+import javax.webbeans.RequestScoped;
+
+@RequestScoped
+class Leopard_Broken
+{
+
+ public String name = "pete";
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/Leopard_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/SimpleBeanDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/SimpleBeanDefinitionTest.java 2009-01-19 22:53:13 UTC (rev 1099)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/SimpleBeanDefinitionTest.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -301,4 +301,27 @@
assert false;
}
+ @Test @SpecAssertion(section="3.2")
+ public void testDependentScopedBeanCanHavePublicField() throws Exception
+ {
+ deployBeans(Tiger.class);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ assert manager.getInstanceByType(Tiger.class).name.equals("pete");
+ }
+
+ }.run();
+
+ }
+
+ @Test(expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.2")
+ public void testNonDependentScopedBeanCanNotHavePublicField()
+ {
+ deployBeans(Leopard_Broken.class);
+ }
+
}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/Tiger.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/Tiger.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/Tiger.java 2009-01-19 23:06:59 UTC (rev 1100)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.tests.implementation.simple;
+
+import javax.webbeans.Dependent;
+
+@Dependent
+class Tiger
+{
+
+ public String name = "pete";
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/simple/Tiger.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1099 - tck/trunk.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-19 17:53:13 -0500 (Mon, 19 Jan 2009)
New Revision: 1099
Modified:
tck/trunk/pom.xml
Log:
fix build
Modified: tck/trunk/pom.xml
===================================================================
--- tck/trunk/pom.xml 2009-01-19 22:38:54 UTC (rev 1098)
+++ tck/trunk/pom.xml 2009-01-19 22:53:13 UTC (rev 1099)
@@ -132,6 +132,13 @@
<version>${webbeans.tck.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>tck-utils</artifactId>
+ <version>0.9-SNAPSHOT</version>
+ </dependency>
+
+
</dependencies>
</dependencyManagement>
@@ -157,6 +164,20 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>apt-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-process</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <testOutputDirectory>${project.build.directory}/site</testOutputDirectory>
+ </configuration>
+ </plugin>
</plugins>
<pluginManagement>
<plugins>
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1098 - in ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test: unit and 3 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-19 17:38:54 -0500 (Mon, 19 Jan 2009)
New Revision: 1098
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/examples/Tests.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/AbstractTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/bootstrap/BootstrapTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/event/DeferredEventNotificationTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/NewSimpleBeanTest.java
Log:
tidy up tests
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/examples/Tests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/examples/Tests.java 2009-01-19 22:37:47 UTC (rev 1097)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/examples/Tests.java 2009-01-19 22:38:54 UTC (rev 1098)
@@ -8,7 +8,6 @@
import org.jboss.webbeans.bean.ProducerMethodBean;
import org.jboss.webbeans.bean.SimpleBean;
-import org.jboss.webbeans.context.DependentContext;
import org.jboss.webbeans.test.unit.AbstractTest;
import org.testng.annotations.Test;
@@ -18,31 +17,32 @@
public void testGameGenerator() throws Exception {
setupGameGenerator();
- try
+ new RunInDependentContext()
{
- DependentContext.INSTANCE.setActive(true);
- Game game1 = manager.getInstanceByType(Game.class);
- Game game2 = manager.getInstanceByType(Game.class);
- assert game1!=game2;
- assert game1.getNumber()!=game2.getNumber();
- Generator gen1 = manager.getInstanceByType(Generator.class);
- Generator gen2 = manager.getInstanceByType(Generator.class);
- assert gen1.getRandom()!=null;
- assert gen1.getRandom()==gen2.getRandom();
- }
- finally
- {
- DependentContext.INSTANCE.setActive(false);
- }
+
+ @Override
+ protected void execute() throws Exception
+ {
+ Game game1 = manager.getInstanceByType(Game.class);
+ Game game2 = manager.getInstanceByType(Game.class);
+ assert game1!=game2;
+ assert game1.getNumber()!=game2.getNumber();
+ Generator gen1 = manager.getInstanceByType(Generator.class);
+ Generator gen2 = manager.getInstanceByType(Generator.class);
+ assert gen1.getRandom()!=null;
+ assert gen1.getRandom()==gen2.getRandom();
+ }
+
+ }.run();
}
private void setupGameGenerator() throws NoSuchMethodException
{
- SimpleBean<Game> gameBean = SimpleBean.of(Game.class, manager);
- SimpleBean<Generator> generatorBean = SimpleBean.of(Generator.class, manager);
+ SimpleBean<Game> gameBean = createSimpleBean(Game.class);
+ SimpleBean<Generator> generatorBean = createSimpleBean(Generator.class);
Method method = Generator.class.getDeclaredMethod("next");
method.setAccessible(true);
- ProducerMethodBean<Integer> nextBean = ProducerMethodBean.of(method, generatorBean, manager);
+ ProducerMethodBean<Integer> nextBean = createProducerMethod(method, generatorBean);
manager.addBean(gameBean);
manager.addBean(generatorBean);
@@ -55,48 +55,50 @@
manager.setEnabledDeploymentTypes(Arrays.asList(Standard.class, Production.class, Mock.class));
- try
+ new RunInDependentContext()
{
- DependentContext.INSTANCE.setActive(true);
- TextTranslator tt2 = manager.getInstanceByType(TextTranslator.class);
- assert "Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.".equals( tt2.translate("Hello world. How's tricks?") );
- }
- finally
- {
- DependentContext.INSTANCE.setActive(false);
- }
+
+ @Override
+ protected void execute() throws Exception
+ {
+ TextTranslator tt2 = manager.getInstanceByType(TextTranslator.class);
+ assert "Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.".equals( tt2.translate("Hello world. How's tricks?") );
+ }
+
+ }.run();
}
@Test
public void testSentenceTranslator() throws Exception {
setupTextTranslator();
- try
+ new RunInDependentContext()
{
- DependentContext.INSTANCE.setActive(true);
- TextTranslator tt1 = manager.getInstanceByType(TextTranslator.class);
- try
+
+ @Override
+ protected void execute() throws Exception
{
- tt1.translate("hello world");
- assert false;
+ TextTranslator tt1 = manager.getInstanceByType(TextTranslator.class);
+ try
+ {
+ tt1.translate("hello world");
+ assert false;
+ }
+ catch (UnsupportedOperationException uoe)
+ {
+ //expected
+ }
}
- catch (UnsupportedOperationException uoe)
- {
- //expected
- }
- }
- finally
- {
- DependentContext.INSTANCE.setActive(false);
- }
+
+ }.run();
}
private void setupTextTranslator()
{
- SimpleBean<SentenceParser> spBean = SimpleBean.of(SentenceParser.class, manager);
- SimpleBean<SentenceTranslator> stBean = SimpleBean.of(SentenceTranslator.class, manager);
- SimpleBean<MockSentenceTranslator> mstBean = SimpleBean.of(MockSentenceTranslator.class, manager);
- SimpleBean<TextTranslator> ttBean = SimpleBean.of(TextTranslator.class, manager);
+ SimpleBean<SentenceParser> spBean = createSimpleBean(SentenceParser.class);
+ SimpleBean<SentenceTranslator> stBean = createSimpleBean(SentenceTranslator.class);
+ SimpleBean<MockSentenceTranslator> mstBean = createSimpleBean(MockSentenceTranslator.class);
+ SimpleBean<TextTranslator> ttBean = createSimpleBean(TextTranslator.class);
manager.addBean(spBean);
manager.addBean(stBean);
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/AbstractTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/AbstractTest.java 2009-01-19 22:37:47 UTC (rev 1097)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/AbstractTest.java 2009-01-19 22:38:54 UTC (rev 1098)
@@ -1,6 +1,8 @@
package org.jboss.webbeans.test.unit;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.List;
@@ -8,8 +10,13 @@
import javax.webbeans.Standard;
import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.bean.AbstractClassBean;
import org.jboss.webbeans.bean.EnterpriseBean;
import org.jboss.webbeans.bean.NewEnterpriseBean;
+import org.jboss.webbeans.bean.NewSimpleBean;
+import org.jboss.webbeans.bean.ProducerFieldBean;
+import org.jboss.webbeans.bean.ProducerMethodBean;
+import org.jboss.webbeans.bean.SimpleBean;
import org.jboss.webbeans.context.DependentContext;
import org.jboss.webbeans.test.mock.MockBootstrap;
import org.jboss.webbeans.test.mock.MockEjbDescriptor;
@@ -86,22 +93,42 @@
manager.getEjbDescriptorCache().add(MockEjbDescriptor.of(clazz));
return NewEnterpriseBean.of(clazz, manager);
}
+
+ protected <T> NewSimpleBean<T> createNewSimpleBean(Class<T> clazz)
+ {
+ return NewSimpleBean.of(clazz, manager);
+ }
- protected static void activateDependentContext()
+ protected <T> SimpleBean<T> createSimpleBean(Class<T> clazz)
{
+ return SimpleBean.of(clazz, manager);
+ }
+
+ protected <T> ProducerMethodBean<T> createProducerMethod(Method method, AbstractClassBean<?> declaringBean)
+ {
+ return ProducerMethodBean.of(method, declaringBean, manager);
+ }
+
+ protected <T> ProducerFieldBean<T> createProducerField(Field field, AbstractClassBean<?> declaringBean)
+ {
+ return ProducerFieldBean.of(field, declaringBean, manager);
+ }
+
+ private static void activateDependentContext()
+ {
DependentContext.INSTANCE.setActive(true);
}
- protected static void deactivateDependentContext()
+ private static void deactivateDependentContext()
{
DependentContext.INSTANCE.setActive(false);
}
- protected ManagerImpl deploy(Class<?>... classes)
+ protected void deployBeans(Class<?>... classes)
{
MockBootstrap bootstrap = new MockBootstrap();
bootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(classes));
bootstrap.boot();
- return bootstrap.getManager();
+ manager = bootstrap.getManager();
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/bootstrap/BootstrapTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/bootstrap/BootstrapTest.java 2009-01-19 22:37:47 UTC (rev 1097)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/bootstrap/BootstrapTest.java 2009-01-19 22:38:54 UTC (rev 1098)
@@ -10,7 +10,6 @@
import org.jboss.webbeans.bean.EnterpriseBean;
import org.jboss.webbeans.bean.ProducerMethodBean;
import org.jboss.webbeans.bean.SimpleBean;
-import org.jboss.webbeans.test.mock.MockWebBeanDiscovery;
import org.jboss.webbeans.test.unit.AbstractTest;
import org.testng.annotations.Test;
@@ -19,8 +18,7 @@
@Test(groups="bootstrap")
public void testSingleSimpleBean()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Tuna.class));
- webBeansBootstrap.boot();
+ deployBeans(Tuna.class);
List<Bean<?>> beans = manager.getBeans();
Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
for (Bean<?> bean : beans)
@@ -36,8 +34,7 @@
@Test(groups="bootstrap")
public void testSingleEnterpriseBean()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Hound.class));
- webBeansBootstrap.boot();
+ deployBeans(Hound.class);
List<Bean<?>> beans = manager.getBeans();
Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
for (Bean<?> bean : beans)
@@ -53,8 +50,7 @@
@Test(groups="bootstrap")
public void testMultipleSimpleBean()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Tuna.class, Salmon.class, SeaBass.class, Sole.class));
- webBeansBootstrap.boot();
+ deployBeans(Tuna.class, Salmon.class, SeaBass.class, Sole.class);
List<Bean<?>> beans = manager.getBeans();
Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
for (Bean<?> bean : beans)
@@ -78,8 +74,7 @@
@Test(groups="bootstrap")
public void testProducerMethodBean()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(TarantulaProducer.class));
- webBeansBootstrap.boot();
+ deployBeans(TarantulaProducer.class);
List<Bean<?>> beans = manager.getBeans();
Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
for (Bean<?> bean : beans)
@@ -99,8 +94,7 @@
@Test(groups="bootstrap")
public void testMultipleEnterpriseBean()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Hound.class, Elephant.class, Panther.class, Tiger.class));
- webBeansBootstrap.boot();
+ deployBeans(Hound.class, Elephant.class, Panther.class, Tiger.class);
List<Bean<?>> beans = manager.getBeans();
Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
for (Bean<?> bean : beans)
@@ -124,8 +118,7 @@
@Test(groups="bootstrap")
public void testMultipleEnterpriseAndSimpleBean()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Hound.class, Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class, Sole.class));
- webBeansBootstrap.boot();
+ deployBeans(Hound.class, Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class, Sole.class);
List<Bean<?>> beans = manager.getBeans();
Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
for (Bean<?> bean : beans)
@@ -157,8 +150,7 @@
@Test(groups="bootstrap")
public void testRegisterProducerMethodBean()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(TarantulaProducer.class));
- webBeansBootstrap.boot();
+ deployBeans(TarantulaProducer.class);
Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
for (Bean<?> bean : manager.getBeans())
{
@@ -178,8 +170,7 @@
@Test(groups="bootstrap")
public void testRegisterMultipleEnterpriseAndSimpleBean()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Hound.class, Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class, Sole.class));
- webBeansBootstrap.boot();
+ deployBeans(Hound.class, Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class, Sole.class);
Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
for (Bean<?> bean : manager.getBeans())
{
@@ -210,15 +201,13 @@
@Test(groups="bootstrap", expectedExceptions=IllegalStateException.class)
public void testDiscoverFails()
{
- webBeansBootstrap.setWebBeanDiscovery(null);
- webBeansBootstrap.boot();
+ deployBeans();
}
@Test(groups="bootstrap")
public void testDiscover()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(Hound.class, Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class, Sole.class));
- webBeansBootstrap.boot();
+ deployBeans(Hound.class, Elephant.class, Panther.class, Tiger.class, Tuna.class, Salmon.class, SeaBass.class, Sole.class);
Map<Class<?>, Bean<?>> classes = new HashMap<Class<?>, Bean<?>>();
for (Bean<?> bean : manager.getBeans())
@@ -251,8 +240,7 @@
public void testInitializedEvent()
{
assert !InitializedObserver.observered;
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(InitializedObserver.class));
- webBeansBootstrap.boot();
+ deployBeans(InitializedObserver.class);
assert InitializedObserver.observered;
}
@@ -260,15 +248,13 @@
@Test(groups="bootstrap")
public void testRequestContextActiveDuringInitializtionEvent()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(InitializedObserverWhichUsesRequestContext.class, Tuna.class));
- webBeansBootstrap.boot();
+ deployBeans(InitializedObserverWhichUsesRequestContext.class, Tuna.class);
}
@Test(groups={"bootstrap", "broken"})
public void testApplicationContextActiveDuringInitializtionEvent()
{
- webBeansBootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(InitializedObserverWhichUsesApplicationContext.class, LadybirdSpider.class));
- webBeansBootstrap.boot();
+ deployBeans(InitializedObserverWhichUsesApplicationContext.class, LadybirdSpider.class);
}
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/event/DeferredEventNotificationTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/event/DeferredEventNotificationTest.java 2009-01-19 22:37:47 UTC (rev 1097)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/event/DeferredEventNotificationTest.java 2009-01-19 22:38:54 UTC (rev 1098)
@@ -66,7 +66,7 @@
//annotations.put(Asynchronous.class, new AsynchronousAnnotationLiteral());
//AnnotatedClass<Tuna> annotatedItem = new SimpleAnnotatedClass<Tuna>(Tuna.class, annotations);
// TODO This should test a real class
- tuna = SimpleBean.of(Tuna.class, manager);
+ tuna = createSimpleBean(Tuna.class);
om = new AnnotatedMethodImpl<Object>(AnObserver.class.getMethod("observe", new Class[] { Event.class }), AnnotatedClassImpl.of(AnObserver.class));
AnObserver observerInstance = new AnObserver();
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/NewSimpleBeanTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/NewSimpleBeanTest.java 2009-01-19 22:37:47 UTC (rev 1097)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/NewSimpleBeanTest.java 2009-01-19 22:38:54 UTC (rev 1098)
@@ -16,9 +16,9 @@
@BeforeMethod
public void initNewBean() {
- wrappedSimpleBean = SimpleBean.of(WrappedSimpleBean.class, manager);
+ wrappedSimpleBean = createSimpleBean(WrappedSimpleBean.class);
manager.addBean(wrappedSimpleBean);
- newSimpleBean = NewSimpleBean.of(WrappedSimpleBean.class, manager);
+ newSimpleBean = createNewSimpleBean(WrappedSimpleBean.class);
manager.addBean(newSimpleBean);
}
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1097 - tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-19 17:37:47 -0500 (Mon, 19 Jan 2009)
New Revision: 1097
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Farmer.java
Log:
minor
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Farmer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Farmer.java 2009-01-19 22:24:39 UTC (rev 1096)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/Farmer.java 2009-01-19 22:37:47 UTC (rev 1097)
@@ -2,7 +2,7 @@
import javax.webbeans.Observes;
-public class Farmer
+class Farmer
{
public void observeEggLaying(@Observes Egg egg)
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1096 - in tck/trunk: impl/src/main/java/org/jboss/webbeans/tck/tests/context/dependent and 3 other directories.
by webbeans-commits@lists.jboss.org
Author: dallen6
Date: 2009-01-19 17:24:39 -0500 (Mon, 19 Jan 2009)
New Revision: 1096
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/dependent/DependentContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/passivating/Jamsa_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/passivating/PassivatingContextTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EventTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/enterprise/EnterpriseBeanDeclarationTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/enterprise/EnterpriseBeanRemoveMethodTest.java
tck/trunk/pom.xml
Log:
Cleanup of some tests and fixed missing dependency version
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/dependent/DependentContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/dependent/DependentContextTest.java 2009-01-19 21:31:21 UTC (rev 1095)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/dependent/DependentContextTest.java 2009-01-19 22:24:39 UTC (rev 1096)
@@ -53,7 +53,7 @@
* field, disposal method or observer method invocation exists to service
* that invocation only
*/
- @Test(groups = { "contexts", "producerMethod", "broken" })
+ @Test(groups = { "contexts", "producerMethod" })
@SpecAssertion(section = "9.4")
public void testInstanceUsedForProducerMethodNotShared() throws Exception
{
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/passivating/Jamsa_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/passivating/Jamsa_Broken.java 2009-01-19 21:31:21 UTC (rev 1095)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/passivating/Jamsa_Broken.java 2009-01-19 22:24:39 UTC (rev 1096)
@@ -2,6 +2,7 @@
import java.io.Serializable;
+import javax.webbeans.Current;
import javax.webbeans.Produces;
import javax.webbeans.SessionScoped;
@@ -14,8 +15,8 @@
@Produces
@SessionScoped
- public Violation create()
+ public Violation create(@Current Violation violation)
{
- return new Violation();
+ return violation;
}
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/passivating/PassivatingContextTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/passivating/PassivatingContextTest.java 2009-01-19 21:31:21 UTC (rev 1095)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/context/passivating/PassivatingContextTest.java 2009-01-19 22:24:39 UTC (rev 1096)
@@ -26,7 +26,7 @@
* EJB local objects are serializable. Therefore, an enterprise Web Bean may
* declare any passivating scope.
*/
- @Test(groups = { "contexts", "passivation", "enterpriseBean" })
+ @Test(groups = { "contexts", "passivation", "enterpriseBean", "integration" })
@SpecAssertion(section = "9.5")
public void testEJBWebBeanCanDeclarePassivatingScope()
{
@@ -275,14 +275,12 @@
* @throws NoSuchMethodException
* @throws SecurityException
*/
- @Test(groups = { "contexts", "passivation" , "broken" }, expectedExceptions = IllegalProductException.class)
+ @Test(groups = { "contexts", "passivation", "integration", "broken" }, expectedExceptions = IllegalProductException.class)
@SpecAssertion(section = "9.5")
public void testDependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBeanFails() throws SecurityException, NoSuchMethodException
{
- // TODO This test isn't testing SFSB, but enterprise beans
- //deployBeans(CityProducer2.class, Maarianhamina_Broken.class);
- //manager.getInstanceByType(Maarianhamina_Broken.class);
- assert false;
+ deployBeans(CityProducer2.class, Maarianhamina_Broken.class);
+ manager.getInstanceByType(Maarianhamina_Broken.class);
}
/**
@@ -463,8 +461,8 @@
public void testDependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoProducerMethodParameterWithPassivatingScopeFails()
{
// TODO Not quite sure what this test is doing
- //deployBeans(CityProducer.class, Jamsa_Broken.class);
- //manager.getInstanceByType(Jamsa_Broken.class).ping();
+ deployBeans(CityProducer.class, Jamsa_Broken.class);
+ manager.getInstanceByType(Jamsa_Broken.class).ping();
assert false;
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EventTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EventTest.java 2009-01-19 21:31:21 UTC (rev 1095)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/event/EventTest.java 2009-01-19 22:24:39 UTC (rev 1096)
@@ -517,12 +517,11 @@
assert false;
}
- @Test(groups = { "broken", "events" })
+ @Test(groups = { "events" })
@SpecAssertion(section = "8.5.7")
public void testObserverMethodRegistration()
{
// For now, this test is checking the registration of methods
- // TODO Check the called test to make sure it is still valid here
testObserverMethodOnEnterpriseBeanIsBusinessMethodOrStatic();
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/enterprise/EnterpriseBeanDeclarationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/enterprise/EnterpriseBeanDeclarationTest.java 2009-01-19 21:31:21 UTC (rev 1095)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/enterprise/EnterpriseBeanDeclarationTest.java 2009-01-19 22:24:39 UTC (rev 1096)
@@ -123,7 +123,7 @@
* illegal scope, a DefinitionException is thrown by the Web Bean manager at
* initialization time
*/
- @Test(groups = { "enterpriseBeans", "broken" }, expectedExceptions = DefinitionException.class)
+ @Test(groups = { "enterpriseBeans" }, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testSingletonWithConversationScopeFails()
{
@@ -137,7 +137,7 @@
* illegal scope, a DefinitionException is thrown by the Web Bean manager at
* initialization time
*/
- @Test(groups = { "enterpriseBeans" , "broken"}, expectedExceptions = DefinitionException.class)
+ @Test(groups = { "enterpriseBeans" }, expectedExceptions = DefinitionException.class)
@SpecAssertion(section = "3.3")
public void testSingletonWithSessionScopeFails()
{
@@ -150,7 +150,7 @@
* illegal scope, a DefinitionException is thrown by the Web Bean manager at
* initialization time
*/
- @Test(groups = { "enterpriseBeans" , "broken" })
+ @Test(groups = { "enterpriseBeans" })
@SpecAssertion(section = "3.3")
public void testSingletonWithApplicationScopeOK()
{
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/enterprise/EnterpriseBeanRemoveMethodTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/enterprise/EnterpriseBeanRemoveMethodTest.java 2009-01-19 21:31:21 UTC (rev 1095)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/enterprise/EnterpriseBeanRemoveMethodTest.java 2009-01-19 22:24:39 UTC (rev 1096)
@@ -1,12 +1,5 @@
package org.jboss.webbeans.tck.tests.implementation.enterprise;
-import static org.jboss.webbeans.tck.impl.WebBeansTCKImpl.configuration;
-
-import javax.webbeans.DefinitionException;
-import javax.webbeans.UnremovedException;
-import javax.webbeans.manager.Bean;
-import javax.webbeans.manager.Context;
-
import org.jboss.webbeans.tck.impl.SpecAssertion;
import org.jboss.webbeans.tck.impl.SpecVersion;
import org.jboss.webbeans.tck.tests.AbstractTest;
@@ -21,95 +14,17 @@
*
* @author Nicklas Karlsson
*/
-@SpecVersion("20081206")
+@SpecVersion("20090116")
public class EnterpriseBeanRemoveMethodTest extends AbstractTest
{
/**
- * EJB spec
- */
- @Test(groups = { "enterpriseBeans", "removeMethod" }, expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = "3.3.5")
- public void testStatelessEnterpriseBeansWithRemoveMethodsFails()
- {
- deployBeans(Armant_Broken.class);
- }
-
- /**
- * When the Web Bean manager destroys an enterprise Web Bean instance that is
- * an EJB stateful session bean, it calls the Web Bean remove method
- */
- @Test(groups = { "enterpriseBeans", "removeMethod", "lifecycle", "stub" })
- @SpecAssertion(section = "3.3.5")
- public void testStatefulEnterpriseBeanRemoveMethodCalledWhenDestroyedByManager()
- {
- Toller.removeCalled = false;
- Bean<Toller> bean = createEnterpriseBean(Toller.class);
- Context context = configuration().getContexts().getRequestContext();
- context.get(bean, true);
- configuration().getContexts().destroyContext(context);
- assert Toller.removeCalled;
- }
-
- /**
- * The Web Bean remove method is a remove method of the EJB stateful session
- * bean.
- */
- @Test(groups = { "enterpriseBeans", "removeMethod", "lifecycle", "stub" })
- @SpecAssertion(section = "3.3.5")
- public void testWebBeanRemoveMethodIsEJBRemoveMethod()
- {
- assert false;
- }
-
- /**
- * If an enterprise Web Bean that is a stateful session bean and does not
- * have a Web Bean remove method declares any scope other than @Dependent, a
- * DefinitionException is thrown by the Web Bean manager at initialization
- * time
- */
- @Test(groups = { "enterpriseBeans", "removeMethod" }, expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = "3.3.5")
- public void testStatefulEnterpriseBeanWithoutRemoveMethodMustBeDependentScoped()
- {
- deployBeans(Pumi_Broken.class);
- }
-
- /**
- * If an enterprise Web Bean that is a stateful session bean and does not
- * have a Web Bean remove method declares any scope other than @Dependent, a
- * DefinitionException is thrown by the Web Bean manager at initialization
- * time
- */
- @Test(groups = { "enterpriseBeans", "removeMethod" })
- @SpecAssertion(section = "3.3.5")
- public void testStatefulEnterpriseBeanWithoutRemoveMethodMustBeDependentScoped2()
- {
- createEnterpriseBean(WelshCorgie.class);
- }
-
- /**
- * If an instance of an enterprise Web Bean that is a stateful session bean
- * and does not have a Web Bean remove method is not explicitly destroyed by
- * the application before the Web Bean manager attempts to destroy the
- * instance, an UnremovedException is thrown by the Web Bean manager
- */
- @Test(groups = { "enterpriseBeans", "removeMethod", "stub" }, expectedExceptions = UnremovedException.class)
- @SpecAssertion(section = "3.3.5")
- public void testStatefulEnterpriseBeanWithoutRemoveMethodMustBeRemovedByApplicationBeforeManager()
- {
- Bean<Toller> bean = createEnterpriseBean(Toller.class);
- manager.getInstance(bean);
- configuration().getContexts().destroyContext(configuration().getContexts().getRequestContext());
- }
-
- /**
* If the scope is @Dependent, the application may call any EJB remove method
* of an instance of the enterprise Web Bean, but then no parameters will be
* passed to the method by the Web Bean manager
*/
@Test(groups = { "enterpriseBeans", "removeMethod", "lifecycle", "stub" })
- @SpecAssertion(section = "3.3.5")
+ @SpecAssertion(section = "3.3.1")
public void applicationMayCallRemoveMethodOnDependentScopedSessionEnterpriseBeansButNoParametersArePassed()
{
assert false;
@@ -121,7 +36,7 @@
* scope other than @Dependent, an UnsupportedOperationException is thrown.
*/
@Test(groups = { "enterpriseBeans", "removeMethod", "lifecycle", "stub" }, expectedExceptions = UnsupportedOperationException.class)
- @SpecAssertion(section = "3.3.5")
+ @SpecAssertion(section = "3.3.1")
public void applicationCannotCallRemoveMethodOnNonDependentScopedSessionEnterpriseBean()
{
assert false;
@@ -134,213 +49,10 @@
* destroying it
*/
@Test(groups = { "enterpriseBeans", "removeMethod", "lifecycle", "stub" })
- @SpecAssertion(section = "3.3.5")
+ @SpecAssertion(section = "3.3.1")
public void applicationMayCallRemoveMethodOnDependentScopedSessionEnterpriseBeansButInstanceIsNotDestroyed()
{
assert false;
}
- @Test(groups = { "enterpriseBeans", "removeMethod", "lifecycle", "stub" })
- @SpecAssertion(section = "3.3.5")
- public void testApplicationRemoveMethodCallRemovesInstanceFromContext()
- {
- Bean<Toller> bean = createEnterpriseBean(Toller.class);
- Context context = configuration().getContexts().getRequestContext();
- Toller instance = context.get(bean, true);
- instance.bye();
- instance = context.get(bean, false);
- assert instance == null;
- }
-
- /**
- * If an enterprise Web Bean defined using annotations does not explicitly
- * declare a Web Bean remove method using @Destructor, and exactly one remove
- * method that accepts no parameters exists, then that remove method is the
- * Web Bean remove method.
- */
- @Test(groups = { "enterpriseBeans", "removeMethod" })
- @SpecAssertion(section = { "3.3.5.1" })
- public void testEnterpriseBeanWithoutDestructorUsesNoArgsRemoveAnnotatedMethodAsWebBeansRemoveMethod()
- {
- Toller.removeCalled = true;
- Bean<Toller> bean = createEnterpriseBean(Toller.class);
- bean.create();
- configuration().getContexts().destroyContext(configuration().getContexts().getRequestContext());
- assert Toller.removeCalled;
- }
-
- /**
- * Otherwise, if no remove method that accepts no parameters exists, or if
- * multiple remove methods that accept no parameters exist, the enterprise
- * Web Bean has no Web Bean remove method.
- */
- @Test(groups = { "enterpriseBeans", "removeMethod", "broken" })
- @SpecAssertion(section = { "3.3.5.1" })
- public void testEnterpriseBeanWithoutDestructorAndNoOrMultipleNoArgsRemoveMethodsHasNoWebBeansRemoveMethod()
- {
- Koirus.removeCalled = false;
- Bean<Koirus> bean = createEnterpriseBean(Koirus.class);
- bean.create();
- configuration().getContexts().destroyContext(configuration().getContexts().getDependentContext());
- assert Koirus.removeCalled;
- }
-
- /**
- * If an enterprise Web Bean defined using annotations has more than one
- * method annotated @Destructor, a DefinitionException is thrown by the Web
- * Bean manager at initialization time.
- */
- @Test(groups = { "enterpriseBeans", "removeMethod" }, expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = { "3.3.5.1" })
- public void testMultipleDestructorAnnotatedMethodsFails()
- {
- createEnterpriseBean(Rottweiler.class);
- }
-
- /**
- * If an enterprise Web Bean defined using annotations has a method annotated
- *
- * @Destructor, and that method is not an EJB remove method, a
- * DefinitionException is thrown by the Web Bean manager at
- * initialization time.
- */
- @Test(groups = { "enterpriseBeans", "removeMethod" }, expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = { "3.3.5.1" })
- public void testDestructorAnnotatedMethodNotRemoveAnnotatedFails()
- {
- createEnterpriseBean(RussellTerrier.class);
- }
-
- @Test(groups = { "enterpriseBeans", "removeMethod" })
- @SpecAssertion(section = { "3.3.5.1" })
- public void testDestructorAnnotatedSingleRemoveMethod()
- {
- createEnterpriseBean(GoodDoggie.class);
- }
-
- /**
- * If a Web Bean remove method is annotated @Initializer or @Produces, has a
- * parameter annotated @Disposes, or has a parameter annotated @Observes, a
- * DefinitionException is thrown by the Web Bean manager at initialization
- * time.
- */
- @Test(groups = { "enterpriseBeans", "removeMethod" }, expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = { "3.3.5.1" })
- public void testRemoveMethodIsInitializerFails()
- {
- createEnterpriseBean(Saluki.class);
- }
-
- /**
- * If a Web Bean remove method is annotated @Initializer or @Produces, has a
- * parameter annotated @Disposes, or has a parameter annotated @Observes, a
- * DefinitionException is thrown by the Web Bean manager at initialization
- * time.
- */
- @Test(groups = { "enterpriseBeans", "removeMethod" }, expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = { "3.3.5.1" })
- public void testRemoveMethodIsProducerFails()
- {
- createEnterpriseBean(Spitz.class);
- }
-
- /**
- * If a Web Bean remove method is annotated @Initializer or @Produces, has a
- * parameter annotated @Disposes, or has a parameter annotated @Observes, a
- * DefinitionException is thrown by the Web Bean manager at initialization
- * time.
- */
- @Test(groups = { "enterpriseBeans", "removeMethod" }, expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = { "3.3.5.1" })
- public void testRemoveMethodWithDisposesParameterFails()
- {
- createEnterpriseBean(GoldenRetriever.class);
- }
-
- /**
- * If a Web Bean remove method is annotated @Initializer or @Produces, has a
- * parameter annotated @Disposes, or has a parameter annotated @Observes, a
- * DefinitionException is thrown by the Web Bean manager at initialization
- * time.
- */
- @Test(groups = { "enterpriseBeans", "removeMethod" }, expectedExceptions = DefinitionException.class)
- @SpecAssertion(section = { "3.3.5.1" })
- public void testRemoveMethodWithObservesParameterFails()
- {
- createEnterpriseBean(JackRussellTerrier.class);
- }
-
- /**
- * If an enterprise Web Bean defined using XML does not explicitly declare a
- * Web Bean remove method using XML, and exactly one remove method that
- * accepts no parameters exists, then that remove method is the Web Bean
- * remove method
- */
- @Test(groups = { "enterpriseBeans", "webbeansxml", "removeMethod", "stub" })
- @SpecAssertion(section = { "3.3.5.1", "3.3.5.2" })
- public void testXMLDefinedEnterpriseBeanWithoutDestructorUsesNoArgsRemoveAnnotatedMethodAsWebBeansRemoveMethod()
- {
- assert false;
- }
-
- /**
- * Otherwise, if no remove method that accepts no parameters exists, or if
- * multiple remove methods that accept no parameters exist, the enterprise
- * Web Bean has no Web Bean remove method.
- */
- @Test(groups = { "enterpriseBeans", "webbeansxml", "removeMethod", "stub" })
- @SpecAssertion(section = { "3.3.5.1", "3.3.5.2" })
- public void testXMLDefinedEnterpriseBeanWithoutDestructorAndNoOrMultipleNoArgsRemoveMethodsHasNoWebBeansRemoveMethod()
- {
- assert false;
- }
-
- /**
- * If the implementation class of an enterprise Web Bean declared in XML does
- * not have an EJB remove method with the name and parameter types declared
- * in XML, a NonexistentMethodException is thrown by the Web Bean manager at
- * initialization time
- */
- @Test(groups = { "enterpriseBeans", "webbeansxml", "removeMethod", "stub" })
- @SpecAssertion(section = "3.3.5.2")
- public void testXMLDefinedEnterpriseBeanWithoutMatchingRemoveMethodFails()
- {
- assert false;
- }
-
- /**
- * If an enterprise Web Bean defined using XML declares more than one Web
- * Bean remove method in XML, a DefinitionException is thrown by the Web Bean
- * manager at initialization time.
- */
- @Test(groups = { "enterpriseBeans", "webbeansxml", "removeMethod", "stub" })
- @SpecAssertion(section = "3.3.5.2")
- public void testXMLDefinedEnterpriseBeanWithMultipleRemoveMethodsFails()
- {
- assert false;
- }
-
- /**
- * When a Web Bean remove method is declared in XML, the Web Bean manager
- * ignores binding annotations applied to the Java method parameters
- */
- @Test(groups = { "enterpriseBeans", "webbeansxml", "removeMethod", "stub" })
- @SpecAssertion(section = "3.3.5.2")
- public void testXMLDefinedEnterpriseBeanIgnoresBindingAnnotationOnParameters()
- {
- assert false;
- }
-
- /**
- * If the Web Bean remove method has parameters, the Web Bean manager calls
- * Manager.getInstanceByType() to determine a value for each parameter and
- * calls the method with these parameter values.
- */
- @Test(groups = { "enterpriseBeans", "removeMethod", "stub" })
- @SpecAssertion(section = "3.3.5.3")
- public void testRemoveMethodParameterResolving()
- {
- assert false;
- }
-
}
Modified: tck/trunk/pom.xml
===================================================================
--- tck/trunk/pom.xml 2009-01-19 21:31:21 UTC (rev 1095)
+++ tck/trunk/pom.xml 2009-01-19 22:24:39 UTC (rev 1096)
@@ -115,6 +115,12 @@
</dependency>
<dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>tck-utils</artifactId>
+ <version>0.9-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss.webbeans</groupId>
<artifactId>webbeans-api</artifactId>
<version>${webbeans.version}</version>
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1095 - ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-19 16:31:21 -0500 (Mon, 19 Jan 2009)
New Revision: 1095
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/RemoveMethodTests.java
Log:
Fix build
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/RemoveMethodTests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/RemoveMethodTests.java 2009-01-19 21:19:40 UTC (rev 1094)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/RemoveMethodTests.java 2009-01-19 21:31:21 UTC (rev 1095)
@@ -1,10 +1,9 @@
package org.jboss.webbeans.test.unit.implementation;
-import org.jboss.webbeans.bean.EnterpriseBean;
-import org.jboss.webbeans.test.unit.AbstractEjbEmbeddableTest;
+import org.jboss.webbeans.tck.tests.AbstractTest;
import org.testng.annotations.Test;
-public class RemoveMethodTests extends AbstractEjbEmbeddableTest
+public class RemoveMethodTests extends AbstractTest
{
/**
@@ -26,13 +25,8 @@
@Test(groups = { "enterprisebean", "removemethod", "lifecycle", "stub" })
public void testApplicationCalledRemoveMethodOfStatefulSessionBeanWithDependentScopeHasNoInjectedParameters()
{
- addToEjbCache(Bad.class);
- addToEjbCache(BadLocal.class);
- EnterpriseBean<Bad> bean = EnterpriseBean.of(Bad.class, manager);
- manager.addBean(bean);
- EnterpriseBean<BadLocal> lbean = EnterpriseBean.of(BadLocal.class, manager);
- manager.addBean(lbean);
- BadLocal x = manager.getInstance(bean);
+ deployBeans(Bad.class);
+ BadLocal x = manager.getInstanceByType(BadLocal.class);
x.bye();
}
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1094 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/bean/proxy and 4 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2009-01-19 16:19:40 -0500 (Mon, 19 Jan 2009)
New Revision: 1094
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/Bad.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/BadLocal.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/RemoveMethodTests.java
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/NewEnterpriseBean.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/proxy/EnterpriseBeanProxyMethodHandler.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/InternalEjbDescriptor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointProvider.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java
Log:
EJB remove method changes + broken tests for Pete to check.
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-19 21:14:14 UTC (rev 1093)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java 2009-01-19 21:19:40 UTC (rev 1094)
@@ -50,6 +50,7 @@
import org.jboss.webbeans.log.LogProvider;
import org.jboss.webbeans.log.Logging;
import org.jboss.webbeans.util.Proxies;
+import org.jboss.webbeans.util.Reflections;
/**
* An enterprise bean representation
@@ -64,12 +65,9 @@
// The EJB descriptor
private InternalEjbDescriptor<T> ejbDescriptor;
-
+
private Class<T> proxyClass;
- // The remove method on the bean class (do not call!)
- private AnnotatedMethod<?> removeMethod;
-
/**
* Creates a simple, annotation defined Enterprise Web Bean
*
@@ -125,13 +123,11 @@
}
super.init();
initProxyClass();
- initRemoveMethod();
initInjectionPoints();
checkEnterpriseBeanTypeAllowed();
checkEnterpriseScopeAllowed();
checkConflictingRoles();
checkSpecialization();
- checkRemoveMethod();
}
/**
@@ -141,15 +137,8 @@
protected void initInjectionPoints()
{
super.initInjectionPoints();
- if (removeMethod != null)
- {
- for (AnnotatedParameter<?> injectable : removeMethod.getParameters())
- {
- annotatedInjectionPoints.add(injectable);
- }
- }
}
-
+
protected void initTypes()
{
types = new HashSet<Type>();
@@ -159,14 +148,14 @@
}
types.add(Object.class);
}
-
+
protected void initProxyClass()
{
ProxyFactory proxyFactory = Proxies.getProxyFactory(getTypes());
-
+
@SuppressWarnings("unchecked")
Class<T> proxyClass = proxyFactory.createClass();
-
+
this.proxyClass = proxyClass;
}
@@ -218,83 +207,6 @@
}
/**
- * Initializes the remvoe method
- */
- protected void initRemoveMethod()
- {
-
- // >1 @Destructor
- if (getAnnotatedItem().getAnnotatedMethods(Destructor.class).size() > 1)
- {
- throw new DefinitionException("Multiple @Destructor methods not allowed on " + getAnnotatedItem());
- }
-
- if (getAnnotatedItem().getAnnotatedMethods(Destructor.class).size() == 1)
- {
- AnnotatedMethod<?> destructorMethod = getAnnotatedItem().getAnnotatedMethods(Destructor.class).iterator().next();
- for (Method removeMethod : ejbDescriptor.getRemoveMethods())
- {
- if (removeMethod != null && destructorMethod.isEquivalent(removeMethod))
- {
- this.removeMethod = destructorMethod;
- return;
- }
- }
- throw new DefinitionException("Method annotated @Destructor is not an EJB remove method on " + toString());
- }
- Set<Method> noArgsRemoveMethods = new HashSet<Method>();
- for (Method removeMethod : ejbDescriptor.getRemoveMethods())
- {
- if (removeMethod.getParameterTypes().length == 0)
- {
- noArgsRemoveMethods.add(removeMethod);
- }
- }
- if (noArgsRemoveMethods.size() == 1)
- {
- this.removeMethod = annotatedItem.getMethod(noArgsRemoveMethods.iterator().next());
- return;
- }
-
- if (!getScopeType().equals(Dependent.class))
- {
- throw new DefinitionException("Only @Dependent scoped enterprise beans can be without remove methods " + toString());
- }
-
- }
-
- /**
- * Validates the remove method
- */
- private void checkRemoveMethod()
- {
- if (removeMethod == null)
- {
- return;
- }
- else if (ejbDescriptor.isStateless())
- {
- throw new DefinitionException("Can't define a remove method on SLSBs");
- }
- if (removeMethod.isAnnotationPresent(Initializer.class))
- {
- throw new DefinitionException("Remove methods cannot be initializers on " + removeMethod.getName());
- }
- else if (removeMethod.isAnnotationPresent(Produces.class))
- {
- throw new DefinitionException("Remove methods cannot be producers on " + removeMethod.getName());
- }
- else if (removeMethod.getAnnotatedParameters(Disposes.class).size() > 0)
- {
- throw new DefinitionException("Remove method can't have @Disposes annotated parameters on " + removeMethod.getName());
- }
- else if (removeMethod.getAnnotatedParameters(Observes.class).size() > 0)
- {
- throw new DefinitionException("Remove method can't have @Observes annotated parameters on " + removeMethod.getName());
- }
- }
-
- /**
* Creates an instance of the bean
*
* @return The instance
@@ -306,7 +218,7 @@
{
DependentContext.INSTANCE.setActive(true);
T instance = proxyClass.newInstance();
- ((ProxyObject) instance).setHandler(new EnterpriseBeanProxyMethodHandler(this));
+ ((ProxyObject) instance).setHandler(new EnterpriseBeanProxyMethodHandler(this, ejbDescriptor.getRemoveMethods()));
return instance;
}
catch (InstantiationException e)
@@ -335,19 +247,11 @@
@Override
public void destroy(T instance)
{
- try
+ Boolean isDestroyed = (Boolean) Reflections.invokeAndWrap("isDestroyed", null, instance, null);
+ if (isDestroyed.booleanValue())
{
- DependentContext.INSTANCE.setActive(true);
- removeMethod.invokeOnInstance(instance, manager);
+ return;
}
- catch (Exception e)
- {
- log.error("Error destroying " + toString(), e);
- }
- finally
- {
- DependentContext.INSTANCE.setActive(false);
- }
}
/**
@@ -394,11 +298,6 @@
}
- public AnnotatedMethod<?> getRemoveMethod()
- {
- return removeMethod;
- }
-
/**
* Validates the bean type
*/
@@ -454,9 +353,8 @@
}
- public void preDestroy(T target)
+ public void preDestroy(T instance)
{
-
}
@Override
@@ -470,4 +368,9 @@
return ejbDescriptor;
}
+ public boolean canCallRemoveMethods()
+ {
+ return getEjbDescriptor().isStateful() && Dependent.class.equals(getScopeType());
+ }
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java 2009-01-19 21:14:14 UTC (rev 1093)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/NewEnterpriseBean.java 2009-01-19 21:19:40 UTC (rev 1094)
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.jboss.webbeans.bean;
import java.lang.annotation.Annotation;
@@ -31,47 +30,87 @@
import org.jboss.webbeans.literal.NewLiteral;
/**
+ * Represents a @New enterprise bean
*
* @author Nicklas Karlsson
- *
*/
public class NewEnterpriseBean<T> extends EnterpriseBean<T>
{
private static Set<Annotation> NEW_BINDING_SET = new HashSet<Annotation>(Arrays.asList(new NewLiteral()));
+ /**
+ * Creates an instance of a NewEnterpriseBean from an annotated class
+ *
+ * @param clazz The annotated class
+ * @param manager The Web Beans manager
+ * @return a new NewEnterpriseBean instance
+ */
public static <T> NewEnterpriseBean<T> of(AnnotatedClass<T> clazz, ManagerImpl manager)
{
return new NewEnterpriseBean<T>(clazz, manager);
}
+ /**
+ * Creates an instance of a NewEnterpriseBean from a class
+ *
+ * @param clazz The class
+ * @param manager The Web Beans manager
+ * @return a new NewEnterpriseBean instance
+ */
public static <T> NewEnterpriseBean<T> of(Class<T> clazz, ManagerImpl manager)
{
return of(AnnotatedClassImpl.of(clazz), manager);
}
+ /**
+ * Protected constructor
+ *
+ * @param type An annotated class
+ * @param manager The Web Beans manager
+ */
protected NewEnterpriseBean(AnnotatedClass<T> type, ManagerImpl manager)
{
super(type, manager);
}
+ /**
+ * Gets the scope type
+ *
+ * @return @Dependent
+ */
@Override
public Class<? extends Annotation> getScopeType()
{
return Dependent.class;
}
+ /**
+ * Gets the deployment type
+ *
+ * @return The standard deployment type
+ */
@Override
public Class<? extends Annotation> getDeploymentType()
{
return Standard.class;
}
+ /**
+ * Gets the name of the bean
+ *
+ * @return null
+ */
@Override
public String getName()
{
return null;
}
+ /**
+ * Gets the bindings
+ *
+ * @returns @New
+ */
@Override
public Set<Annotation> getBindings()
{
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-19 21:14:14 UTC (rev 1093)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/NewSimpleBean.java 2009-01-19 21:19:40 UTC (rev 1094)
@@ -32,29 +32,52 @@
import org.jboss.webbeans.literal.NewLiteral;
/**
+ * Represents a @New simple bean
*
- * @author Nicklas Karlsson
- *
+ * @author Nicklas Karlsson
*/
public class NewSimpleBean<T> extends SimpleBean<T>
{
private static Set<Annotation> NEW_BINDING_SET = new HashSet<Annotation>(Arrays.asList(new NewLiteral()));
+ /**
+ * Creates an instance of a NewSimpleBean from an annotated class
+ *
+ * @param clazz The annotated class
+ * @param manager The Web Beans manager
+ * @return a new NewSimpleBean instance
+ */
public static <T> NewSimpleBean<T> of(AnnotatedClass<T> clazz, ManagerImpl manager)
{
return new NewSimpleBean<T>(clazz, manager);
}
-
+
+ /**
+ * Creates an instance of a NewSimpleBean from a class
+ *
+ * @param clazz The class
+ * @param manager The Web Beans manager
+ * @return a new NewSimpleBean instance
+ */
public static <T> NewSimpleBean<T> of(Class<T> clazz, ManagerImpl manager)
{
return of(AnnotatedClassImpl.of(clazz), manager);
}
-
+
+ /**
+ * Protected constructor
+ *
+ * @param type An annotated class
+ * @param manager The Web Beans manager
+ */
protected NewSimpleBean(AnnotatedClass<T> type, ManagerImpl manager)
{
super(type, manager);
}
+ /**
+ * Creates a new instance
+ */
@Override
public T create()
{
@@ -76,24 +99,44 @@
}
}
+ /**
+ * Gets the scope type
+ *
+ * @return @Dependent
+ */
@Override
public Class<? extends Annotation> getScopeType()
{
return Dependent.class;
}
+ /**
+ * Gets the deployment type
+ *
+ * @return The standard deployment type
+ */
@Override
public Class<? extends Annotation> getDeploymentType()
{
return Standard.class;
}
+ /**
+ * Gets the name of the bean
+ *
+ * @return null
+ */
@Override
public String getName()
{
return null;
}
+ /**
+ * Gets the bindings
+ *
+ * @returns @New
+ */
@Override
public Set<Annotation> getBindings()
{
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpriseBeanProxyMethodHandler.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpriseBeanProxyMethodHandler.java 2009-01-19 21:14:14 UTC (rev 1093)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpriseBeanProxyMethodHandler.java 2009-01-19 21:19:40 UTC (rev 1094)
@@ -18,11 +18,15 @@
package org.jboss.webbeans.bean.proxy;
import java.lang.reflect.Method;
+import java.util.ArrayList;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javassist.util.proxy.MethodHandler;
+import javax.webbeans.Dependent;
+
import org.jboss.webbeans.CurrentManager;
import org.jboss.webbeans.bean.EnterpriseBean;
import org.jboss.webbeans.log.LogProvider;
@@ -34,7 +38,7 @@
*
* @author Nicklas Karlsson
* @author Pete Muir
- *
+ *
*/
public class EnterpriseBeanProxyMethodHandler implements MethodHandler
{
@@ -44,39 +48,50 @@
// The container provided proxy that implements all interfaces
private final Map<Class<?>, Object> proxiedInstances;
private final Map<Class<?>, String> jndiNames;
+ private boolean destroyed;
+ private boolean canCallRemoveMethods;
+ private final List<Method> removeMethods;
/**
* Constructor
*
+ * @param removeMethods
+ *
* @param proxy The generic proxy
*/
- public EnterpriseBeanProxyMethodHandler(EnterpriseBean<?> bean)
+ public EnterpriseBeanProxyMethodHandler(EnterpriseBean<?> bean, Iterable<Method> removeMethods)
{
this.proxiedInstances = new HashMap<Class<?>, Object>();
this.jndiNames = bean.getEjbDescriptor().getLocalBusinessInterfacesJndiNames();
+ this.canCallRemoveMethods = bean.canCallRemoveMethods();
+ this.removeMethods = bean.getEjbDescriptor().getRemoveMethods();
+ this.destroyed = false;
log.trace("Created enterprise bean proxy method handler for " + bean);
}
/**
* Lookups the EJB in the container and executes the method on it
*
- * @param self the proxy instance.
- * @param method the overridden method declared in the super
- * class or interface.
- * @param proceed the forwarder method for invoking the overridden
- * method. It is null if the overridden method is
- * abstract or declared in the interface.
- * @param args an array of objects containing the values of
- * the arguments passed in the method invocation
- * on the proxy instance. If a parameter type is
- * a primitive type, the type of the array element
- * is a wrapper class.
- * @return the resulting value of the method invocation.
- *
- * @throws Throwable if the method invocation fails.
+ * @param self the proxy instance.
+ * @param method the overridden method declared in the super class or
+ * interface.
+ * @param proceed the forwarder method for invoking the overridden method. It
+ * is null if the overridden method is abstract or declared in the
+ * interface.
+ * @param args an array of objects containing the values of the arguments
+ * passed in the method invocation on the proxy instance. If a
+ * parameter type is a primitive type, the type of the array
+ * element is a wrapper class.
+ * @return the resulting value of the method invocation.
+ *
+ * @throws Throwable if the method invocation fails.
*/
public Object invoke(Object self, Method method, Method proceed, Object[] args) throws Throwable
{
+ if ("isDestroyed".equals(method.getName()))
+ {
+ return destroyed;
+ }
Class<?> businessInterface = method.getDeclaringClass();
Object proxiedInstance = proxiedInstances.get(businessInterface);
if (proxiedInstance == null)
@@ -90,9 +105,19 @@
proxiedInstances.put(businessInterface, proxiedInstance);
}
Method proxiedMethod = Reflections.lookupMethod(method, proxiedInstance);
+ if (removeMethods.contains(proxiedMethod))
+ {
+ if (canCallRemoveMethods)
+ {
+ destroyed = true;
+ }
+ else
+ {
+ throw new UnsupportedOperationException("Remove method can't be called directly on non-dependent scoped Enterprise Beans");
+ }
+ }
Object returnValue = Reflections.invokeAndWrap(proxiedMethod, proxiedInstance, args);
log.trace("Executed " + method + " on " + proxiedInstance + " with parameters " + args + " and got return value " + returnValue);
return returnValue;
}
-
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/InternalEjbDescriptor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/InternalEjbDescriptor.java 2009-01-19 21:14:14 UTC (rev 1093)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/InternalEjbDescriptor.java 2009-01-19 21:19:40 UTC (rev 1094)
@@ -17,8 +17,11 @@
package org.jboss.webbeans.ejb;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.jboss.webbeans.ejb.spi.BusinessInterfaceDescriptor;
@@ -34,10 +37,11 @@
*/
public class InternalEjbDescriptor<T> extends ForwardingEjbDescriptor<T> implements EjbDescriptor<T>
{
-
+
private final Map<Class<?>, String> localBusinessInterfacesJndiNames;
private final EjbDescriptor<T> delegate;
-
+ public List<Method> removeMethods;
+
public InternalEjbDescriptor(EjbDescriptor<T> ejbDescriptor)
{
this.delegate = ejbDescriptor;
@@ -46,21 +50,31 @@
{
localBusinessInterfacesJndiNames.put(businessInterfaceDescriptor.getInterface(), businessInterfaceDescriptor.getJndiName());
}
- // Internally, Object.class is added to the type hierachy of an
+ // Internally, Object.class is added to the type hierachy of an
// EnterpriseBean, so we need to represent that here. We can just use any
// of the local business interfaces
localBusinessInterfacesJndiNames.put(Object.class, ejbDescriptor.getLocalBusinessInterfaces().iterator().next().getJndiName());
+ removeMethods = new ArrayList<Method>();
+ for (Method removeMethod : ejbDescriptor.getRemoveMethods())
+ {
+ removeMethods.add(removeMethod);
+ }
}
-
+
public Map<Class<?>, String> getLocalBusinessInterfacesJndiNames()
{
return Collections.unmodifiableMap(localBusinessInterfacesJndiNames);
}
-
+
+ public List<Method> getRemoveMethods()
+ {
+ return Collections.unmodifiableList(removeMethods);
+ }
+
@Override
protected EjbDescriptor<T> delegate()
{
return delegate;
}
-
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointProvider.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointProvider.java 2009-01-19 21:14:14 UTC (rev 1093)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/injection/InjectionPointProvider.java 2009-01-19 21:19:40 UTC (rev 1094)
@@ -68,7 +68,9 @@
{
injectionPoints.push(InjectionPointImpl.of(injectionPoint, getCurrentBean()));
if (beans.size() != injectionPoints.size())
+ {
throw new IllegalStateException("Number of beans on stack is inconsistent with number of injection points: " + this);
+ }
}
/**
@@ -107,7 +109,7 @@
* Gets the current bean
*
* @return The current bean or null if there is none on the stack
- */
+ */
protected Bean<?> getCurrentBean()
{
return beans.isEmpty() ? null : beans.peek();
@@ -117,7 +119,7 @@
* Gets the previous bean
*
* @return The previous bean or null if there is none on the stack
- */
+ */
protected Bean<?> getPreviousBean()
{
return beans.size() < 2 ? null : beans.elementAt(beans.size() - 2);
@@ -126,8 +128,7 @@
@Override
public String toString()
{
- return "InjectionPointProvider: Bean stack = " + beans.toString() +
- " InjectionPoint stack = " + injectionPoints.toString();
+ return "InjectionPointProvider: Bean stack = " + beans.toString() + " InjectionPoint stack = " + injectionPoints.toString();
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java 2009-01-19 21:14:14 UTC (rev 1093)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/jlr/AbstractAnnotatedMember.java 2009-01-19 21:19:40 UTC (rev 1094)
@@ -220,7 +220,9 @@
else
{
if (!producerMethod)
+ {
injectionPointProvider.pushInjectionPoint(param);
+ }
try
{
parameterValues[i] = param.getValue(manager);
@@ -228,7 +230,9 @@
finally
{
if (!producerMethod)
+ {
injectionPointProvider.popInjectionPoint();
+ }
}
}
}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/Bad.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/Bad.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/Bad.java 2009-01-19 21:19:40 UTC (rev 1094)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.test.unit.implementation;
+
+import javax.ejb.Remove;
+import javax.ejb.Stateful;
+import javax.webbeans.RequestScoped;
+
+
+@Stateful
+@RequestScoped
+public class Bad implements BadLocal
+{
+ @Remove
+ public void bye()
+ {
+ }
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/BadLocal.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/BadLocal.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/BadLocal.java 2009-01-19 21:19:40 UTC (rev 1094)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.test.unit.implementation;
+
+import javax.ejb.Local;
+import javax.ejb.Remove;
+
+@Local
+public interface BadLocal
+{
+ @Remove
+ public void bye();
+}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/RemoveMethodTests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/RemoveMethodTests.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/RemoveMethodTests.java 2009-01-19 21:19:40 UTC (rev 1094)
@@ -0,0 +1,50 @@
+package org.jboss.webbeans.test.unit.implementation;
+
+import org.jboss.webbeans.bean.EnterpriseBean;
+import org.jboss.webbeans.test.unit.AbstractEjbEmbeddableTest;
+import org.testng.annotations.Test;
+
+public class RemoveMethodTests extends AbstractEjbEmbeddableTest
+{
+
+ /**
+ * If the application directly calls an EJB remove method of an instance of a
+ * session bean that is a stateful session bean and declares any scope other
+ * than @Dependent, an UnsupportedOperationException is thrown.
+ */
+ @Test(groups = { "enterprisebean", "removemethod", "lifecycle", "stub" })
+ public void testApplicationCalledRemoveMethodOfStatefulSessionBeanWithNonDependentScopeFails()
+ {
+ assert false;
+ }
+
+ /**
+ * If the application directly calls an EJB remove method of an instance of a
+ * session bean that is a stateful session bean and has scope @Dependent then
+ * no parameters are passed to the method by the container.
+ */
+ @Test(groups = { "enterprisebean", "removemethod", "lifecycle", "stub" })
+ public void testApplicationCalledRemoveMethodOfStatefulSessionBeanWithDependentScopeHasNoInjectedParameters()
+ {
+ addToEjbCache(Bad.class);
+ addToEjbCache(BadLocal.class);
+ EnterpriseBean<Bad> bean = EnterpriseBean.of(Bad.class, manager);
+ manager.addBean(bean);
+ EnterpriseBean<BadLocal> lbean = EnterpriseBean.of(BadLocal.class, manager);
+ manager.addBean(lbean);
+ BadLocal x = manager.getInstance(bean);
+ x.bye();
+ }
+
+ /**
+ * Furthermore, the container ignores the instance instead of destroying it
+ * when Bean.destroy() is called, as defined in Section 6.5, �Lifecycle of
+ * stateful session beans�.
+ */
+ @Test(groups = { "enterprisebean", "removemethod", "lifecycle", "stub" })
+ public void testApplicationCalledRemoveMethodOfStatefulSessionBeanWithDependentScopeIsIgnoredWhenDestroyed()
+ {
+ assert false;
+ }
+
+}
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1093 - in ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit: implementation and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-19 16:14:14 -0500 (Mon, 19 Jan 2009)
New Revision: 1093
Modified:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/AbstractTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java
Log:
utility methods
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/AbstractTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/AbstractTest.java 2009-01-19 20:50:53 UTC (rev 1092)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/AbstractTest.java 2009-01-19 21:14:14 UTC (rev 1093)
@@ -1,30 +1,19 @@
package org.jboss.webbeans.test.unit;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.List;
import javax.webbeans.Production;
import javax.webbeans.Standard;
-import org.jboss.webbeans.CurrentManager;
import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.bean.AbstractClassBean;
-import org.jboss.webbeans.bean.AbstractProducerBean;
import org.jboss.webbeans.bean.EnterpriseBean;
-import org.jboss.webbeans.bean.ProducerFieldBean;
-import org.jboss.webbeans.bean.ProducerMethodBean;
-import org.jboss.webbeans.bean.SimpleBean;
+import org.jboss.webbeans.bean.NewEnterpriseBean;
import org.jboss.webbeans.context.DependentContext;
import org.jboss.webbeans.test.mock.MockBootstrap;
import org.jboss.webbeans.test.mock.MockEjbDescriptor;
+import org.jboss.webbeans.test.mock.MockWebBeanDiscovery;
import org.testng.annotations.BeforeMethod;
public class AbstractTest
@@ -75,111 +64,29 @@
manager.setEnabledDeploymentTypes(getEnabledDeploymentTypes());
}
- private boolean hasField(Class<?> clazz, String name)
- {
- try
- {
- Field field = clazz.getDeclaredField(name);
- }
- catch (NoSuchFieldException e)
- {
- return false;
- }
- return true;
- }
-
- private Method getMethod(Class<?> clazz, String name)
- {
- for (Method method : clazz.getDeclaredMethods())
- {
- if (method.getName().equals(name))
- {
- return method;
- }
- }
- return null;
- }
-
- protected AbstractProducerBean<?, ?> registerProducerBean(Class<?> producerBeanClass, String fieldOrMethodName, Class<?> productClass)
- {
- SimpleBean<?> producerContainerBean = SimpleBean.of(producerBeanClass, manager);
- manager.addBean(producerContainerBean);
- AbstractProducerBean<?, ?> producerBean = null;
- try
- {
- if (hasField(producerBeanClass, fieldOrMethodName))
- {
- Field producerField = producerBeanClass.getDeclaredField(fieldOrMethodName);
- producerBean = ProducerFieldBean.of(producerField, producerContainerBean, manager);
- }
- else
- {
- Method producerMethod = getMethod(producerBeanClass, fieldOrMethodName);
- producerBean = ProducerMethodBean.of(producerMethod, producerContainerBean, manager);
- }
- }
- catch (Exception e)
- {
- throw new RuntimeException("Could not initialize producer bean", e);
- }
- manager.addBean(producerBean);
- return producerBean;
- }
-
-
- protected <T> AbstractClassBean<T> registerBean(Class<T> clazz)
- {
- AbstractClassBean<T> bean = null;
- if (CurrentManager.rootManager().getEjbDescriptorCache().containsKey(clazz))
- {
- bean = EnterpriseBean.of(clazz, manager);
- }
- else
- {
- bean = SimpleBean.of(clazz, manager);
- }
- CurrentManager.rootManager().addBean(bean);
- return bean;
- }
-
- protected void registerBeans(Class<?>[] classes)
- {
- for (Class<?> clazz : classes)
- {
- registerBean(clazz);
- }
- }
-
- @SuppressWarnings("unchecked")
protected List<Class<? extends Annotation>> getEnabledDeploymentTypes()
{
return getDefaultDeploymentTypes();
}
+ @SuppressWarnings("unchecked")
protected final List<Class<? extends Annotation>> getDefaultDeploymentTypes()
{
return Arrays.asList(Standard.class, Production.class);
}
-
- protected <T> void addToEjbCache(Class<T> clazz)
+
+ protected <T> EnterpriseBean<T> createEnterpriseBean(Class<T> clazz)
{
manager.getEjbDescriptorCache().add(MockEjbDescriptor.of(clazz));
+ return EnterpriseBean.of(clazz, manager);
}
-
- protected byte[] serialize(Object instance) throws IOException
+
+ protected <T> NewEnterpriseBean<T> createNewEnterpriseBean(Class<T> clazz)
{
- ByteArrayOutputStream bytes = new ByteArrayOutputStream();
- ObjectOutputStream out = new ObjectOutputStream(bytes);
- out.writeObject(instance);
- return bytes.toByteArray();
+ manager.getEjbDescriptorCache().add(MockEjbDescriptor.of(clazz));
+ return NewEnterpriseBean.of(clazz, manager);
}
- protected Object deserialize(byte[] bytes) throws IOException, ClassNotFoundException
- {
- ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes));
- return in.readObject();
- }
-
protected static void activateDependentContext()
{
DependentContext.INSTANCE.setActive(true);
@@ -189,4 +96,12 @@
{
DependentContext.INSTANCE.setActive(false);
}
+
+ protected ManagerImpl deploy(Class<?>... classes)
+ {
+ MockBootstrap bootstrap = new MockBootstrap();
+ bootstrap.setWebBeanDiscovery(new MockWebBeanDiscovery(classes));
+ bootstrap.boot();
+ return bootstrap.getManager();
+ }
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java 2009-01-19 20:50:53 UTC (rev 1092)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/unit/implementation/NewEnterpriseBeanTest.java 2009-01-19 21:14:14 UTC (rev 1093)
@@ -18,10 +18,9 @@
@BeforeMethod
public void initNewBean() {
- addToEjbCache(WrappedEnterpriseBean.class);
- wrappedEnterpriseBean = EnterpriseBean.of(WrappedEnterpriseBean.class, manager);
+ wrappedEnterpriseBean = createEnterpriseBean(WrappedEnterpriseBean.class);
manager.addBean(wrappedEnterpriseBean);
- newEnterpriseBean = NewEnterpriseBean.of(WrappedEnterpriseBean.class, manager);
+ newEnterpriseBean = createNewEnterpriseBean(WrappedEnterpriseBean.class);
manager.addBean(newEnterpriseBean);
}
16 years, 8 months