[webbeans-commits] Webbeans SVN: r1212 - doc/trunk/reference/de-DE.
by webbeans-commits@lists.jboss.org
Author: jdimanos
Date: 2009-01-23 23:17:32 -0500 (Fri, 23 Jan 2009)
New Revision: 1212
Modified:
doc/trunk/reference/de-DE/injection.po
Log:
update
Modified: doc/trunk/reference/de-DE/injection.po
===================================================================
--- doc/trunk/reference/de-DE/injection.po 2009-01-23 21:01:40 UTC (rev 1211)
+++ doc/trunk/reference/de-DE/injection.po 2009-01-24 04:17:32 UTC (rev 1212)
@@ -1,3 +1,4 @@
+# translation of injection.po to
# Language de-DE translations for Introduction_to_Web_Beans package.
# Automatically generated, 2009.
#
@@ -3,19 +4,20 @@
msgid ""
msgstr ""
-"Project-Id-Version: Introduction_to_Web_Beans VERSION\n"
+"Project-Id-Version: injection\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-01-10 14:18+0000\n"
-"PO-Revision-Date: 2009-01-10 14:18+0000\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
+"PO-Revision-Date: 2009-01-24 15:14+1100\n"
+"Last-Translator: \n"
+"Language-Team: <en(a)li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
#. Tag: title
#: injection.xml:4
#, no-c-format
msgid "Dependency injection"
-msgstr ""
+msgstr "Dependency-Einspeisung"
#. Tag: para
@@ -46,12 +48,22 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[public class Checkout {\n"
+" \n"
+" private final ShoppingCart cart;\n"
+" \n"
+" @Initializer\n"
+" public Checkout(ShoppingCart cart) {\n"
+" this.cart = cart;\n"
+" }\n"
+"\n"
+"}]]>"
#. Tag: para
#: injection.xml:12
#, no-c-format
msgid "<emphasis>Initializer</emphasis> method parameter injection:"
-msgstr ""
+msgstr "<emphasis>Initializer</emphasis>-Methode Parameter-Einspeisung:"
#. Tag: programlisting
#: injection.xml:14
@@ -68,6 +80,16 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[public class Checkout {\n"
+" \n"
+" private ShoppingCart cart;\n"
+"\n"
+" @Initializer \n"
+" void setShoppingCart(ShoppingCart cart) {\n"
+" this.cart = cart;\n"
+" }\n"
+" \n"
+"}]]>"
#. Tag: para
#: injection.xml:16
@@ -85,6 +107,11 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[public class Checkout {\n"
+"\n"
+" private @Current ShoppingCart cart;\n"
+" \n"
+"}]]>"
#. Tag: para
#: injection.xml:20
@@ -157,6 +184,9 @@
" return new Checkout(cart);\n"
"}]]>"
msgstr ""
+"<![CDATA[@Produces Checkout createCheckout(ShoppingCart cart) {\n"
+" return new Checkout(cart);\n"
+"}]]>"
#. Tag: para
#: injection.xml:55
@@ -218,8 +248,7 @@
#. Tag: para
#: injection.xml:88
#, no-c-format
-msgid ""
-"Let's explore how the Web Beans manager determines a Web Bean to be injected."
+msgid "Let's explore how the Web Beans manager determines a Web Bean to be injected."
msgstr ""
#. Tag: title
@@ -247,6 +276,10 @@
" public void process(Payment payment) { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[@PayByCheque\n"
+"public class ChequePaymentProcessor implements PaymentProcessor {\n"
+" public void process(Payment payment) { ... }\n"
+"}]]>"
#. Tag: programlisting
#: injection.xml:100
@@ -257,6 +290,10 @@
" public void process(Payment payment) { ... }\n"
"}]]>"
msgstr ""
+"<![CDATA[@PayByCreditCard\n"
+"public class CreditCardPaymentProcessor implements PaymentProcessor {\n"
+" public void process(Payment payment) { ... }\n"
+"}]]>"
#. Tag: para
#: injection.xml:102
@@ -275,6 +312,10 @@
"@BindingType\n"
"public @interface PayByCheque {}]]>"
msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayByCheque {}]]>"
#. Tag: programlisting
#: injection.xml:107
@@ -285,6 +326,10 @@
"@BindingType\n"
"public @interface PayByCreditCard {}]]>"
msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayByCreditCard {}]]>"
#. Tag: para
#: injection.xml:109
@@ -307,6 +352,8 @@
"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
msgstr ""
+"<![CDATA[@PayByCheque PaymentProcessor chequePaymentProcessor;\n"
+"@PayByCreditCard PaymentProcessor creditCardPaymentProcessor;]]>"
#. Tag: para
#: injection.xml:116
@@ -327,6 +374,14 @@
" this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
"}]]>"
msgstr ""
+"<![CDATA[@Initializer\n"
+"public void setPaymentProcessors(@PayByCheque PaymentProcessor "
+"chequePaymentProcessor, \n"
+" @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
+" this.chequePaymentProcessor = chequePaymentProcessor;\n"
+" this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"}]]>"
#. Tag: para
#: injection.xml:120
@@ -346,6 +401,13 @@
" this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
"}]]>"
msgstr ""
+"<![CDATA[@Initializer\n"
+"public Checkout(@PayByCheque PaymentProcessor chequePaymentProcessor, \n"
+" @PayByCreditCard PaymentProcessor "
+"creditCardPaymentProcessor) {\n"
+" this.chequePaymentProcessor = chequePaymentProcessor;\n"
+" this.creditCardPaymentProcessor = creditCardPaymentProcessor;\n"
+"}]]>"
#. Tag: title
#: injection.xml:125
@@ -370,6 +432,12 @@
" PaymentType value();\n"
"}]]>"
msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"@BindingType\n"
+"public @interface PayBy {\n"
+" PaymentType value();\n"
+"}]]>"
#. Tag: para
#: injection.xml:131
@@ -384,6 +452,8 @@
"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
msgstr ""
+"<![CDATA[@PayBy(CHEQUE) PaymentProcessor chequePaymentProcessor;\n"
+"@PayBy(CREDIT_CARD) PaymentProcessor creditCardPaymentProcessor;]]>"
#. Tag: para
#: injection.xml:135
@@ -408,9 +478,8 @@
#. Tag: programlisting
#: injection.xml:145
#, no-c-format
-msgid ""
-"<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
-msgstr ""
+msgid "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
+msgstr "<![CDATA[@Asynchronous @PayByCheque PaymentProcessor paymentProcessor]]>"
#. Tag: para
#: injection.xml:147
@@ -443,6 +512,12 @@
" return new AsynchronousPaymentProcessor(processor);\n"
"}]]>"
msgstr ""
+"<![CDATA[@Produces \n"
+"@Asynchronous @PayByCheque \n"
+"PaymentProcessor createAsyncPaymentProcessor(@PayByCheque PaymentProcessor "
+"processor) {\n"
+" return new AsynchronousPaymentProcessor(processor);\n"
+"}]]>"
#. Tag: title
#: injection.xml:162
@@ -487,7 +562,7 @@
#: injection.xml:187
#, no-c-format
msgid "Deployment types"
-msgstr ""
+msgstr "Deployment Typen"
#. Tag: para
#: injection.xml:189
@@ -516,6 +591,10 @@
" @DeploymentType\n"
" public @interface Mock {}]]>"
msgstr ""
+"<![CDATA[@Retention(RUNTIME)\n"
+" @Target({TYPE, METHOD})\n"
+" @DeploymentType\n"
+" public @interface Mock {}]]>"
#. Tag: para
#: injection.xml:199
@@ -537,6 +616,13 @@
" \n"
"}]]>"
msgstr ""
+"<![CDATA[public class ExternalPaymentProcessor {\n"
+" \n"
+" public void process(Payment p) {\n"
+" ...\n"
+" }\n"
+" \n"
+"}]]>"
#. Tag: para
#: injection.xml:204
@@ -568,6 +654,15 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[@Mock \n"
+"public class MockPaymentProcessor implements PaymentProcessor {\n"
+"\n"
+" @Override\n"
+" public void process(Payment p) {\n"
+" p.setSuccessful(true);\n"
+" }\n"
+"\n"
+"}]]>"
#. Tag: para
#: injection.xml:212
@@ -614,6 +709,13 @@
" </Deploy>\n"
"</WebBeans>]]>"
msgstr ""
+"<![CDATA[<WebBeans>\n"
+" <Deploy>\n"
+" <Standard/>\n"
+" <Production/>\n"
+" <test:Mock/>\n"
+" </Deploy>\n"
+"</WebBeans>]]>"
#. Tag: para
#: injection.xml:229
@@ -662,7 +764,7 @@
#: injection.xml:251
#, no-c-format
msgid "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
-msgstr ""
+msgstr "<![CDATA[@Current PaymentProcessor paymentProcessor]]>"
#. Tag: para
#: injection.xml:253
@@ -719,13 +821,12 @@
#: injection.xml:284
#, no-c-format
msgid "Example deployment types"
-msgstr ""
+msgstr "Beispiel Deployment-Typen"
#. Tag: para
#: injection.xml:286
#, no-c-format
-msgid ""
-"Deployment types are useful for all kinds of things, here's some examples:"
+msgid "Deployment types are useful for all kinds of things, here's some examples:"
msgstr ""
#. Tag: para
@@ -931,7 +1032,7 @@
#: injection.xml:397
#, no-c-format
msgid "<![CDATA[@Current Manager manager;]]>"
-msgstr ""
+msgstr "<![CDATA[@Current Manager manager;]]>"
#. Tag: para
#: injection.xml:399
@@ -948,6 +1049,8 @@
"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
"class);]]>"
msgstr ""
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+"class);]]>"
#. Tag: para
#: injection.xml:404
@@ -967,6 +1070,10 @@
" new "
"AnnotationLiteral<CreditCard>(){});]]>"
msgstr ""
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+"class, \n"
+" new "
+"AnnotationLiteral<CreditCard>(){});]]>"
#. Tag: para
#: injection.xml:410
@@ -985,6 +1092,9 @@
" extends AnnotationLiteral<CreditCard> \n"
" implements CreditCard {}]]>"
msgstr ""
+"<![CDATA[abstract class CreditCardBinding \n"
+" extends AnnotationLiteral<CreditCard> \n"
+" implements CreditCard {}]]>"
#. Tag: programlisting
#: injection.xml:415
@@ -997,6 +1107,12 @@
"{ return paymentType; } \n"
" } );]]>"
msgstr ""
+"<![CDATA[PaymentProcessor p = manager.getInstanceByType(PaymentProcessor."
+"class, \n"
+" new CreditCardBinding() { \n"
+" public void value() "
+"{ return paymentType; } \n"
+" } );]]>"
#. Tag: title
#: injection.xml:419
@@ -1104,7 +1220,7 @@
#: injection.xml:468
#, no-c-format
msgid "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
-msgstr ""
+msgstr "<![CDATA[Logger log = Logger.getLogger(MyClass.class.getName());]]>"
#. Tag: para
#: injection.xml:470
@@ -1127,18 +1243,26 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[class LogFactory {\n"
+"\n"
+" @Produces Logger createLogger(InjectionPoint injectionPoint) { \n"
+" return Logger.getLogger(injectionPoint.getMember().getDeclaringClass()."
+"getName()); \n"
+" }\n"
+"\n"
+"}]]>"
#. Tag: para
#: injection.xml:475
#, no-c-format
msgid "We can now write:"
-msgstr ""
+msgstr "Wir können jetzt schreiben:"
#. Tag: programlisting
#: injection.xml:477
#, no-c-format
msgid "<![CDATA[@Current Logger log;]]>"
-msgstr ""
+msgstr "<![CDATA[@Current Logger log;]]>"
#. Tag: para
#: injection.xml:479
@@ -1159,6 +1283,12 @@
" @NonBinding public String value();\n"
"}]]>"
msgstr ""
+"<![CDATA[@BindingType\n"
+"@Retention(RUNTIME)\n"
+"@Target({TYPE, METHOD, FIELD, PARAMETER})\n"
+"public @interface HttpParam {\n"
+" @NonBinding public String value();\n"
+"}]]>"
#. Tag: para
#: injection.xml:484
@@ -1173,12 +1303,14 @@
"<![CDATA[@HttpParam(\"username\") String username;\n"
"@HttpParam(\"password\") String password;]]>"
msgstr ""
+"<![CDATA[@HttpParam(\"username\") String username;\n"
+"@HttpParam(\"password\") String password;]]>"
#. Tag: para
#: injection.xml:488
#, no-c-format
msgid "The following producer method does the work:"
-msgstr ""
+msgstr "Die folgende Producer-Methode erledigt die Arbeit:"
#. Tag: programlisting
#: injection.xml:490
@@ -1194,6 +1326,15 @@
"\n"
"}]]>"
msgstr ""
+"<![CDATA[class HttpParams\n"
+"\n"
+" @Produces @HttpParam(\"\")\n"
+" String getParamValue(ServletRequest request, InjectionPoint ip) {\n"
+" return request.getParameter(ip.getAnnotation(HttpParam.class).value"
+"());\n"
+" }\n"
+"\n"
+"}]]>"
#. Tag: para
#: injection.xml:492
@@ -1224,3 +1365,11 @@
" public Set<T extends Annotation> getAnnotations(); \n"
"}]]>"
msgstr ""
+"<![CDATA[public interface InjectionPoint { \n"
+" public Object getInstance(); \n"
+" public Bean<?> getBean(); \n"
+" public Member getMember(): \n"
+" public <T extends Annotation> T getAnnotation(Class<T> annotation); \n"
+" public Set<T extends Annotation> getAnnotations(); \n"
+"}]]>"
+
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1211 - tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field.
by webbeans-commits@lists.jboss.org
Author: dallen6
Date: 2009-01-23 16:01:40 -0500 (Fri, 23 Jan 2009)
New Revision: 1211
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderStereotype.java
Log:
Fixed default named producer field test based on latest specification.
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java 2009-01-23 20:45:43 UTC (rev 1210)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java 2009-01-23 21:01:40 UTC (rev 1211)
@@ -328,8 +328,8 @@
*
* @throws Exception
*/
- @Test(groups = { "producerField", "broken" })
- @SpecAssertion(section = "3.5.4")
+ @Test(groups = { "producerField" })
+ @SpecAssertion(section = { "2.6.3", "3.5.4" })
public void testDefaultNamedField() throws Exception
{
deployBeans(StaticTarantulaProducer.class);
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderStereotype.java 2009-01-23 20:45:43 UTC (rev 1210)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderStereotype.java 2009-01-23 21:01:40 UTC (rev 1211)
@@ -25,6 +25,7 @@
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
+import javax.webbeans.Named;
import javax.webbeans.Production;
import javax.webbeans.RequestScoped;
import javax.webbeans.Stereotype;
@@ -41,6 +42,7 @@
@Retention(RUNTIME)
@RequestScoped
@Production
+@Named
public @interface SpiderStereotype
{
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1210 - in ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans: bean and 6 other directories.
by webbeans-commits@lists.jboss.org
Author: nickarls
Date: 2009-01-23 15:45:43 -0500 (Fri, 23 Jan 2009)
New Revision: 1210
Added:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpriseBeanInstance.java
Removed:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpiseBeanInstance.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanValidator.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/ContextualInstance.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/DependentContext.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/DependentInstancesStore.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/el/ForwardingELContext.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedType.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedAnnotation.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedConstructor.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedField.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMember.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedParameter.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedType.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedClass.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedField.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedMethod.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedParameter.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log4JProvider.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ApiAbstraction.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Beans.java
Log:
minor cleanups, typos, making ejb remove method actually use the interface.
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanValidator.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanValidator.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanValidator.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -130,7 +130,6 @@
}
-
private boolean hasHigherPrecedence(Class<? extends Annotation> deploymentType, Class<? extends Annotation> otherDeploymentType)
{
Comparator<Class<? extends Annotation>> comparator = new ListComparator<Class<? extends Annotation>>(manager.getEnabledDeploymentTypes());
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractClassBean.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -33,7 +33,6 @@
import javax.webbeans.ScopeType;
import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.context.DependentInstancesStore;
import org.jboss.webbeans.injection.InjectionPointProvider;
import org.jboss.webbeans.introspector.AnnotatedClass;
import org.jboss.webbeans.introspector.AnnotatedField;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -362,7 +362,7 @@
{
if (other instanceof AbstractProducerBean)
{
- AbstractProducerBean that = (AbstractProducerBean) other;
+ AbstractProducerBean<?, ?> that = (AbstractProducerBean<?, ?>) other;
return super.equals(other) && this.getDeclaringBean().equals(that.getDeclaringBean());
}
else
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-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -32,7 +32,7 @@
import javax.webbeans.Interceptor;
import org.jboss.webbeans.ManagerImpl;
-import org.jboss.webbeans.bean.proxy.EnterpiseBeanInstance;
+import org.jboss.webbeans.bean.proxy.EnterpriseBeanInstance;
import org.jboss.webbeans.bean.proxy.EnterpriseBeanProxyMethodHandler;
import org.jboss.webbeans.context.DependentContext;
import org.jboss.webbeans.ejb.InternalEjbDescriptor;
@@ -43,7 +43,6 @@
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
@@ -60,7 +59,7 @@
private InternalEjbDescriptor<T> ejbDescriptor;
private Class<T> proxyClass;
-
+
private EnterpriseBean<?> specializedBean;
/**
@@ -146,7 +145,7 @@
protected void initProxyClass()
{
Set<Type> types = new LinkedHashSet<Type>(getTypes());
- types.add(EnterpiseBeanInstance.class);
+ types.add(EnterpriseBeanInstance.class);
ProxyFactory proxyFactory = Proxies.getProxyFactory(types);
@SuppressWarnings("unchecked")
@@ -197,7 +196,7 @@
throw new DefinitionException("Annotation defined specializing EJB must have EJB superclass");
}
}
-
+
@Override
protected void initSpecialization()
{
@@ -245,9 +244,8 @@
@Override
public void destroy(T instance)
{
- EnterpiseBeanInstance enterpiseBeanInstance = (EnterpiseBeanInstance) instance;
- Boolean isDestroyed = (Boolean) Reflections.invokeAndWrap("isDestroyed", null, instance, null);
- if (isDestroyed.booleanValue())
+ EnterpriseBeanInstance enterpiseBeanInstance = (EnterpriseBeanInstance) instance;
+ if (enterpiseBeanInstance.isDestroyed())
{
return;
}
@@ -350,7 +348,7 @@
{
return getEjbDescriptor().isStateful() && isDependent();
}
-
+
@Override
public AbstractBean<?, ?> getSpecializedBean()
{
Deleted: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpiseBeanInstance.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpiseBeanInstance.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpiseBeanInstance.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,8 +0,0 @@
-package org.jboss.webbeans.bean.proxy;
-
-public interface EnterpiseBeanInstance
-{
-
- public boolean isDestroyed();
-
-}
Copied: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpriseBeanInstance.java (from rev 1209, ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpiseBeanInstance.java)
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpriseBeanInstance.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpriseBeanInstance.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -0,0 +1,36 @@
+/*
+ * 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 org.jboss.webbeans.bean.proxy;
+
+/**
+ * Interface implemented by all enterprise bean proxies to determine if
+ * the enterprise bean has already had a remove method called by the application
+ *
+ * @author Pete Muir
+ *
+ */
+public interface EnterpriseBeanInstance
+{
+
+ /**
+ * Indicated if a remove method has been invoked by the application
+ *
+ * @return True if invoked, false otherwise
+ */
+ public boolean isDestroyed();
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpriseBeanInstance.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:mergeinfo
+
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/ContextualInstance.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/ContextualInstance.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/ContextualInstance.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.context;
import javax.webbeans.manager.Contextual;
@@ -2,7 +18,20 @@
+/**
+ * A representation of a contextual bean plus associated instance
+ *
+ * @author Pete Muir
+ */
public class ContextualInstance<T>
{
+ // The contextual object
private Contextual<T> contextual;
+ // The instance
private T instance;
+ /**
+ * Protected constructor
+ *
+ * @param contextual The contextual item
+ * @param instance The instance
+ */
protected ContextualInstance(Contextual<T> contextual, T instance)
@@ -13,11 +42,23 @@
this.instance = instance;
}
+ /**
+ * Static constructor wrapper
+ *
+ * @param <T> The type of the contextual item
+ * @param contextual The contextual item
+ * @param instance The instance
+ * @return A new ContextualInstance from the given parameters
+ */
public static <T> ContextualInstance<T> of(Contextual<T> contextual, T instance)
{
return new ContextualInstance<T>(contextual, instance);
}
+ /**
+ * Destroys the instance by passing it to the destroy method of the
+ * contextual item
+ */
public void destroy()
{
contextual.destroy(instance);
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/DependentContext.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/DependentContext.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/DependentContext.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -32,13 +32,12 @@
*/
public class DependentContext extends AbstractContext
{
-
public static DependentContext INSTANCE = new DependentContext();
private ThreadLocal<AtomicInteger> reentrantActiveCount;
+ // Key to collect instances under in DependentInstacesStore
private ThreadLocal<Object> currentInjectionInstance;
-
/**
* Constructor
*/
@@ -103,15 +102,28 @@
}
}
}
-
- public void setCurrentInjectionInstance(Object currentInjectionInstance)
+
+ /**
+ * Sets the current injection instance. If there is already an instance
+ * registered, nothing is done.
+ *
+ * @param instance The current injection instance to register
+ * dependent objects under
+ */
+ public void setCurrentInjectionInstance(Object instance)
{
if (this.currentInjectionInstance.get() == null)
{
- this.currentInjectionInstance.set(currentInjectionInstance);
+ this.currentInjectionInstance.set(instance);
}
}
+ /**
+ * Clears the current injection instance. Can only be done by passing in the instance
+ * of the current instance.
+ *
+ * @param instance The instance to free
+ */
public void clearCurrentInjectionInstance(Object instance)
{
if (this.currentInjectionInstance.get() == instance)
@@ -119,5 +131,5 @@
this.currentInjectionInstance.set(null);
}
}
-
+
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/DependentInstancesStore.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/DependentInstancesStore.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/DependentInstancesStore.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.context;
import java.util.List;
@@ -5,36 +21,57 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
+/**
+ * A store for dependent instances created under a given key
+ *
+ * @author Nicklas Karlsson
+ */
public class DependentInstancesStore
{
+ // A object -> List of contextual instances mapping
private Map<Object, List<ContextualInstance<?>>> dependentInstances;
+ /**
+ * Creates a new DependentInstancesStore
+ */
public DependentInstancesStore()
{
dependentInstances = new ConcurrentHashMap<Object, List<ContextualInstance<?>>>();
}
- public <T> void addDependentInstance(Object parent, ContextualInstance<T> contextualInstance)
+ /**
+ * Adds a dependent instance under a given key
+ *
+ * @param key The key to store the instance under
+ * @param contextualInstance The instance to store
+ */
+ public <T> void addDependentInstance(Object key, ContextualInstance<T> contextualInstance)
{
- List<ContextualInstance<?>> instances = dependentInstances.get(parent);
+ List<ContextualInstance<?>> instances = dependentInstances.get(key);
if (instances == null)
{
instances = new CopyOnWriteArrayList<ContextualInstance<?>>();
- dependentInstances.put(parent, instances);
+ dependentInstances.put(key, instances);
}
instances.add(contextualInstance);
}
- public void destroyDependentInstances(Object parent)
+ /**
+ * Destroys all dependent objects associated with a particular key and remove
+ * that key from the map
+ *
+ * @param key The key to remove
+ */
+ public void destroyDependentInstances(Object key)
{
- if (!dependentInstances.containsKey(parent))
+ if (!dependentInstances.containsKey(key))
{
return;
}
- for (ContextualInstance<?> injectedInstance : dependentInstances.get(parent))
+ for (ContextualInstance<?> injectedInstance : dependentInstances.get(key))
{
injectedInstance.destroy();
}
- dependentInstances.remove(parent);
+ dependentInstances.remove(key);
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/el/ForwardingELContext.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/el/ForwardingELContext.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/el/ForwardingELContext.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.el;
import java.util.Locale;
@@ -7,6 +23,12 @@
import javax.el.FunctionMapper;
import javax.el.VariableMapper;
+/**
+ * A forwarding class that delegates to an ELContext
+ *
+ * @author Pete Muir
+ *
+ */
public abstract class ForwardingELContext extends ELContext
{
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedType.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedType.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/AnnotatedType.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.jboss.webbeans.introspector;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedAnnotation.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedAnnotation.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedAnnotation.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.annotation.Annotation;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedClass.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.annotation.Annotation;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedConstructor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedConstructor.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedConstructor.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.annotation.Annotation;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedField.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedField.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedField.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.annotation.Annotation;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMember.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMember.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMember.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.reflect.Member;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMethod.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMethod.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedMethod.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.annotation.Annotation;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedParameter.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedParameter.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedParameter.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.annotation.Annotation;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedType.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedType.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/ForwardingAnnotatedType.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,8 +1,21 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
-
-
-
public abstract class ForwardingAnnotatedType<T> extends ForwardingAnnotatedItem<T, Class<T>> implements AnnotatedType<T>
{
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedClass.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedClass.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedClass.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.annotation.Annotation;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedField.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedField.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedField.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,4 +1,19 @@
-package org.jboss.webbeans.introspector;
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.annotation.Annotation;
import java.util.Set;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedMethod.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedMethod.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedMethod.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.annotation.Annotation;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedParameter.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedParameter.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/introspector/WrappedAnnotatedParameter.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.introspector;
import java.lang.annotation.Annotation;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log4JProvider.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log4JProvider.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/log/Log4JProvider.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,4 +1,3 @@
-package org.jboss.webbeans.log;
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
@@ -15,6 +14,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+package org.jboss.webbeans.log;
+
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ApiAbstraction.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ApiAbstraction.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/ApiAbstraction.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,5 +1,3 @@
-package org.jboss.webbeans.util;
-
/*
* JBoss, Home of Professional Open Source
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
@@ -17,6 +15,8 @@
* limitations under the License.
*/
+package org.jboss.webbeans.util;
+
import java.lang.annotation.Annotation;
import org.jboss.webbeans.resources.spi.ResourceLoader;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Beans.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Beans.java 2009-01-23 19:55:53 UTC (rev 1209)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Beans.java 2009-01-23 20:45:43 UTC (rev 1210)
@@ -1,3 +1,19 @@
+/*
+ * 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 org.jboss.webbeans.util;
import java.lang.reflect.Type;
@@ -9,9 +25,21 @@
import org.jboss.webbeans.bean.AbstractBean;
import org.jboss.webbeans.bean.EnterpriseBean;
+/**
+ * Helper class for bean inspection
+ *
+ * @author Pete Muir
+ *
+ */
public class Beans
{
+ /**
+ * Indicates if a bean is passivating
+ *
+ * @param bean The bean to inspect
+ * @return True if passivating, false otherwise
+ */
public static boolean isPassivatingBean(Bean<?> bean)
{
if (bean instanceof EnterpriseBean)
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1209 - tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: dallen6
Date: 2009-01-23 14:55:53 -0500 (Fri, 23 Jan 2009)
New Revision: 1209
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidowConsumer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidowProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaverSpiderConsumer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaverSpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderConsumer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderProducer_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderAsAnimalProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderProducerWildCardType_Broken.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderStereotype.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/StaticTarantulaProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TameAnnotationLiteral.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TameTarantulaProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TarantulaProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/VibratingSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/VibratingSpiderImpl_Broken.java
Removed:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer_Broken.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldLifecycleTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Spider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TarantulaConsumer.java
Log:
Changed producer field tests to only use test framework and manager.
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-01-23 18:44:32 UTC (rev 1208)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -160,7 +160,7 @@
{
if (!(type instanceof Class))
{
- throw new DefinitionException("Producer type cannot be parameterized with type parameter or wildcard");
+ throw new DefinitionException("Producer type cannot be parameterized with type parameter or wildcard:\n" + this.getAnnotatedItem());
}
}
}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidowConsumer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidowConsumer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidowConsumer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,38 @@
+/*
+ * 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 org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Current;
+
+/**
+ * This simple bean contains an injection point to receive the value of a
+ * producer field in another bean.
+ *
+ * @author David Allen
+ *
+ */
+public class BlackWidowConsumer
+{
+ @Current
+ private BlackWidow injectedSpider;
+
+ public BlackWidow getInjectedSpider()
+ {
+ return injectedSpider;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidowConsumer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidowProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidowProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidowProducer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,13 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Named;
+import javax.webbeans.Produces;
+
+public class BlackWidowProducer
+{
+ public static BlackWidow blackWidow = new BlackWidow();
+ @Produces
+ @Named("blackWidow")
+ public BlackWidow produceBlackWidow = blackWidow;
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/BlackWidowProducer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaverSpiderConsumer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaverSpiderConsumer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaverSpiderConsumer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Current;
+
+public class FunnelWeaverSpiderConsumer
+{
+ @Current
+ private FunnelWeaver<Spider> injectedSpider;
+
+ public FunnelWeaver<Spider> getInjectedSpider()
+ {
+ return injectedSpider;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaverSpiderConsumer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaverSpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaverSpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaverSpiderProducer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,19 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Produces;
+
+public class FunnelWeaverSpiderProducer
+{
+ private static FunnelWeaver<Spider> spider;
+ @Produces public FunnelWeaver<Spider> getFunnelWeaverSpider = new FunnelWeaver<Spider>();
+
+ public FunnelWeaverSpiderProducer()
+ {
+ spider = this.getFunnelWeaverSpider;
+ }
+
+ public static FunnelWeaver<Spider> getSpider()
+ {
+ return spider;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/FunnelWeaverSpiderProducer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderConsumer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderConsumer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderConsumer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,41 @@
+/*
+ * 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 org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import java.io.Serializable;
+
+import javax.webbeans.Current;
+
+/**
+ * Simple bean that has an injection point for a spider
+ *
+ * @author David Allen
+ *
+ */
+public class NullSpiderConsumer implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ @Current
+ private BlackWidow injectedSpider;
+
+ public BlackWidow getInjectedSpider()
+ {
+ return injectedSpider;
+ }
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderConsumer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderProducer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,34 @@
+/*
+ * 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 org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Named;
+import javax.webbeans.Produces;
+
+/**
+ * Contains producer for Spider which always is a null value and
+ * in Dependent scope
+ *
+ * @author David Allen
+ *
+ */
+public class NullSpiderProducer
+{
+ @Produces @Named("blackWidow") public BlackWidow produceBlackWidow = null;
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderProducer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderProducer_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderProducer_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderProducer_Broken.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,35 @@
+/*
+ * 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 org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Named;
+import javax.webbeans.Produces;
+import javax.webbeans.RequestScoped;
+
+/**
+ * Bean with a producer field that always returns null and is not
+ * in Dependent context (the produced result)
+ *
+ * @author David Allen
+ *
+ */
+public class NullSpiderProducer_Broken
+{
+ @Produces @RequestScoped @Named("blackWidow") public BlackWidow produceBlackWidow = null;
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/NullSpiderProducer_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer.java 2009-01-23 18:44:32 UTC (rev 1208)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -3,7 +3,6 @@
import javax.webbeans.Named;
import javax.webbeans.Produces;
import javax.webbeans.Production;
-import javax.webbeans.RequestScoped;
@AnotherDeploymentType
@@ -16,9 +15,10 @@
@Produces public static Tarantula produceTarantula = new Tarantula();
- @Produces @Named("blackWidow") public BlackWidow produceBlackWidow = new BlackWidow();
+ public static BlackWidow blackWidow = new BlackWidow();
+ @Produces @Named("blackWidow") public BlackWidow produceBlackWidow = blackWidow;
- @Produces @Named @RequestScoped public DaddyLongLegs produceDaddyLongLegs = new DaddyLongLegs();
+ //@Produces @Named @RequestScoped public DaddyLongLegs produceDaddyLongLegs = new DaddyLongLegs();
@Produces @Named @Production public LadybirdSpider getLadybirdSpider = new LadybirdSpider();
@@ -26,12 +26,10 @@
@Produces public Animal makeASpider = new WolfSpider();
- @Produces public int getWolfSpiderSize = 4;
+ @Produces @Named("SpiderSize") public int getWolfSpiderSize = 4;
@Produces public Spider[] getSpiders = ALL_SPIDERS;
- @Produces public FunnelWeaver<?> getAnotherFunnelWeaver = new FunnelWeaver<Object>();
-
@Produces public FunnelWeaver<Spider> getFunnelWeaverSpider = new FunnelWeaver<Spider>();
@Produces public Spider getNullSpider = null;
Deleted: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer_Broken.java 2009-01-23 18:44:32 UTC (rev 1208)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/OtherSpiderProducer_Broken.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -1,33 +0,0 @@
-package org.jboss.webbeans.tck.unit.implementation.producer.field;
-
-import javax.webbeans.Disposes;
-import javax.webbeans.Observes;
-import javax.webbeans.Produces;
-import javax.webbeans.Production;
-import javax.webbeans.RequestScoped;
-
-@Production
-class OtherSpiderProducer_Broken
-{
-
- @Produces
- public String observe(@Observes String foo)
- {
- return "foo";
- }
-
- @Produces
- public String dispose(@Disposes String foo)
- {
- return "foo";
- }
-
- @Produces
- public String destroy()
- {
- return "foo";
- }
-
- @Produces @RequestScoped public Spider getRequestScopedSpider = null;
-
-}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java 2009-01-23 18:44:32 UTC (rev 1208)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldDefinitionTest.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -1,8 +1,7 @@
package org.jboss.webbeans.tck.unit.implementation.producer.field;
-import java.lang.reflect.Field;
+import java.util.Set;
-import javax.webbeans.Current;
import javax.webbeans.DefinitionException;
import javax.webbeans.Production;
import javax.webbeans.RequestScoped;
@@ -11,266 +10,435 @@
import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.impl.SpecAssertion;
import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.impl.literals.CurrentBinding;
import org.testng.annotations.Test;
-@SpecVersion("20081206")
+@SpecVersion("PRD2")
public class ProducerFieldDefinitionTest extends AbstractTest
{
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section="2.5.3")
+
+ /**
+ * By default, if no deployment type annotation is explicitly specified, a
+ * producer method or field inherits the deployment type of the bean in which
+ * it is defined.
+ *
+ * @throws Exception
+ */
+ @Test(groups = { "producerField", "broken" })
+ @SpecAssertion(section = "2.5.3")
public void testProducerFieldInheritsDeploymentTypeOfDeclaringWebBean() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("produceTameTarantula");
- Bean<Tarantula> tarantulaModel = createProducerFieldBean(field, bean);
- tarantulaModel.getDeploymentType().equals(AnotherDeploymentType.class);
+ deployBeans(TarantulaProducer.class, TarantulaConsumer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<Tarantula>> tarantulaBeans = manager.resolveByType(Tarantula.class);
+ assert !tarantulaBeans.isEmpty();
+ assert tarantulaBeans.iterator().next().getDeploymentType().equals(AnotherDeploymentType.class);
+ }
+ }.run();
}
-
- /*@Test(groups="producerField", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.5")
- public void testStaticField() throws Exception
- {
- SimpleBean<BeanWithStaticProducerField> bean = createSimpleBean(BeanWithStaticProducerField.class);
- manager.addBean(bean);
- Field field = BeanWithStaticProducerField.class.getField("getString");
- createProducerFieldBean(String.class, field, bean);
- }*/
-
- @Test(groups={"stub", "producerField", "enterpriseBeans", "stub"}, expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.5")
+
+ /*
+ * @Test(groups="producerField",
+ * expectedExceptions=DefinitionException.class)
+ *
+ * @SpecAssertion(section="3.5") public void testStaticField() throws
+ * Exception { SimpleBean<BeanWithStaticProducerField> bean =
+ * createSimpleBean(BeanWithStaticProducerField.class);
+ * manager.addBean(bean); Field field =
+ * BeanWithStaticProducerField.class.getField("getString");
+ * createProducerFieldBean(String.class, field, bean); }
+ */
+
+ @Test(groups = { "broken", "producerField", "enterpriseBeans" }, expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.5")
public void testProducerFieldIsNotBusinessField() throws Exception
{
- assert false;
+ deployBeans(VibratingSpiderImpl_Broken.class);
}
-
- @Test(groups="producerField") @SpecAssertion(section="3.5")
+
+ /**
+ * If the producer field return type is a parameterized type, it must specify
+ * actual type parameters for each type parameter.
+ *
+ * @throws Exception
+ */
+ @Test(groups = "producerField")
+ @SpecAssertion(section = "3.5")
public void testParameterizedReturnType() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("getFunnelWeaverSpider");
- createProducerFieldBean(field, bean);
+ deployBeans(FunnelWeaverSpiderProducer.class, FunnelWeaverSpiderConsumer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ FunnelWeaverSpiderConsumer spiderConsumer = manager.getInstanceByType(FunnelWeaverSpiderConsumer.class);
+ assert spiderConsumer != null;
+ assert spiderConsumer.getInjectedSpider() != null;
+ assert spiderConsumer.getInjectedSpider().equals(FunnelWeaverSpiderProducer.getSpider());
+ }
+ }.run();
}
-
- @Test(groups="producerField", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.5")
- public void testParameterizedReturnTypeWithWildcard() throws Exception
+
+ /**
+ * If the producer field return type is a parameterized type, it must specify
+ * actual type parameters for each type parameter. If a producer field return
+ * type contains a wildcard type parameter or type variable, a
+ * DefinitionException is thrown by the container at deployment time.
+ *
+ * @throws Exception
+ */
+ @Test(groups = "producerField", expectedExceptions = DefinitionException.class)
+ @SpecAssertion(section = "3.5")
+ public void testParameterizedReturnTypeWithWildcard()
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("getAnotherFunnelWeaver");
- createProducerFieldBean(field, bean);
+ deployBeans(SpiderProducerWildCardType_Broken.class);
}
-
- @Test(groups={"stub", "producerField", "deployment"}) @SpecAssertion(section="3.5")
+
+ @Test(groups = { "stub", "producerField", "deployment" })
+ @SpecAssertion(section = "3.5")
public void testBeanDeclaresMultipleProducerFields()
{
assert false;
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section={"3.5", "2.3.1"})
+
+ @Test(groups = "producerField")
+ @SpecAssertion(section = { "3.5", "2.3.1" })
public void testDefaultBindingType() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("produceTarantula");
- Bean<Tarantula> tarantulaModel = createProducerFieldBean(field, bean);
- assert tarantulaModel.getBindings().size() == 1;
- assert tarantulaModel.getBindings().iterator().next().annotationType().equals(Current.class);
+ deployBeans(StaticTarantulaProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<Tarantula>> tarantulaBeans = manager.resolveByType(Tarantula.class);
+ assert !tarantulaBeans.isEmpty();
+ assert tarantulaBeans.iterator().next().getBindings().contains(new CurrentBinding());
+ }
+ }.run();
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section="3.5.1")
+
+ /**
+ * If the field type is a class, the set of bean types contains the field
+ * type, every superclass and all interfaces it implements directly or
+ * indirectly.
+ *
+ * @throws Exception
+ */
+ @Test(groups = "producerField")
+ @SpecAssertion(section = "3.5.1")
public void testApiTypeForClassReturn() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("produceTarantula");
- Bean<Tarantula> tarantulaModel = createProducerFieldBean(field, bean);
- assert tarantulaModel.getTypes().size() == 6;
- assert tarantulaModel.getTypes().contains(Tarantula.class);
- assert tarantulaModel.getTypes().contains(DeadlySpider.class);
- assert tarantulaModel.getTypes().contains(Spider.class);
- assert tarantulaModel.getTypes().contains(Animal.class);
- assert tarantulaModel.getTypes().contains(DeadlyAnimal.class);
- assert tarantulaModel.getTypes().contains(Object.class);
+ deployBeans(StaticTarantulaProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<Tarantula>> tarantulaBeans = manager.resolveByType(Tarantula.class);
+ assert !tarantulaBeans.isEmpty();
+ Bean<Tarantula> tarantulaModel = tarantulaBeans.iterator().next();
+ assert tarantulaModel.getTypes().size() == 6;
+ assert tarantulaModel.getTypes().contains(Tarantula.class);
+ assert tarantulaModel.getTypes().contains(DeadlySpider.class);
+ assert tarantulaModel.getTypes().contains(Spider.class);
+ assert tarantulaModel.getTypes().contains(Animal.class);
+ assert tarantulaModel.getTypes().contains(DeadlyAnimal.class);
+ assert tarantulaModel.getTypes().contains(Object.class);
+ }
+ }.run();
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section="3.5.1")
+
+ /**
+ * If the field type is an interface, the set of bean types contains the
+ * field type, all interfaces it extends directly or indir- ectly and
+ * java.lang.Object.
+ *
+ * @throws Exception
+ */
+ @Test(groups = { "producerField" })
+ @SpecAssertion(section = "3.5.1")
public void testApiTypeForInterfaceReturn() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("makeASpider");
- Bean<Animal> animalModel = createProducerFieldBean(field, bean);
- assert animalModel.getTypes().size() == 2;
- assert animalModel.getTypes().contains(Animal.class);
- assert animalModel.getTypes().contains(Object.class);
+ deployBeans(SpiderAsAnimalProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<Animal>> animalBeans = manager.resolveByType(Animal.class);
+ assert !animalBeans.isEmpty();
+ Bean<Animal> animalModel = animalBeans.iterator().next();
+ assert animalModel.getTypes().size() == 2;
+ assert animalModel.getTypes().contains(Animal.class);
+ assert animalModel.getTypes().contains(Object.class);
+ }
+ }.run();
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section="3.5.1")
+
+ /**
+ * If a field type is primitive or is a Java array type, the set of bean
+ * types contains exactly two types: the field type and java.lang.Object.
+ *
+ * @throws Exception
+ */
+ @Test(groups = { "producerField", "broken" })
+ @SpecAssertion(section = "3.5.1")
public void testApiTypeForPrimitiveReturn() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("getWolfSpiderSize");
- Bean<Integer> intModel = createProducerFieldBean(field, bean);
- assert intModel.getTypes().size() == 2;
- assert intModel.getTypes().contains(int.class);
- assert intModel.getTypes().contains(Object.class);
+ deployBeans(OtherSpiderProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<?>> beans = manager.resolveByName("SpiderSize");
+ assert !beans.isEmpty();
+ Bean<?> intModel = beans.iterator().next();
+ assert intModel.getTypes().size() == 2;
+ assert intModel.getTypes().contains(int.class);
+ assert intModel.getTypes().contains(Object.class);
+ }
+ }.run();
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section={"3.5.1", "2.2"})
+
+ /**
+ * If a field type is primitive or is a Java array type, the set of bean
+ * types contains exactly two types: the field type and java.lang.Object.
+ *
+ * @throws Exception
+ */
+ @Test(groups = { "producerField", "broken" })
+ @SpecAssertion(section = { "3.5.1", "2.2" })
public void testApiTypeForArrayTypeReturn() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("getSpiders");
- Bean<Spider[]> spidersModel = createProducerFieldBean(field, bean);
- assert spidersModel.getTypes().size() == 2;
- assert spidersModel.getTypes().contains(Spider[].class);
- assert spidersModel.getTypes().contains(Object.class);
+ deployBeans(OtherSpiderProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<Spider[]>> spidersModels = manager.resolveByType(Spider[].class);
+ assert !spidersModels.isEmpty();
+ Bean<Spider[]> spidersModel = spidersModels.iterator().next();
+ assert spidersModel.getTypes().size() == 2;
+ assert spidersModel.getTypes().contains(Spider[].class);
+ assert spidersModel.getTypes().contains(Object.class);
+ }
+ }.run();
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+
+ /**
+ * A producer field may also specify scope, name, deployment type,
+ * stereotypes and/or bindings.
+ *
+ * @throws Exception
+ */
+ @Test(groups = "producerField")
+ @SpecAssertion(section = "3.5.2")
public void testBindingType() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("produceTameTarantula");
- Bean<Tarantula> tarantulaModel = createProducerFieldBean(field, bean);
- assert tarantulaModel.getBindings().size() == 1;
- assert tarantulaModel.getBindings().iterator().next().annotationType().equals(Tame.class);
+ deployBeans(TameTarantulaProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<Tarantula>> tarantulaBeans = manager.resolveByType(Tarantula.class, new TameAnnotationLiteral());
+ assert !tarantulaBeans.isEmpty();
+ Bean<Tarantula> tarantulaModel = tarantulaBeans.iterator().next();
+ assert tarantulaModel.getBindings().size() == 1;
+ assert tarantulaModel.getBindings().iterator().next().annotationType().equals(Tame.class);
+ }
+ }.run();
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+
+ /**
+ * A producer field may also specify scope, name, deployment type,
+ * stereotypes and/or bindings.
+ *
+ * @throws Exception
+ */
+ @Test(groups = "producerField")
+ @SpecAssertion(section = "3.5.2")
public void testScopeType() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("produceDaddyLongLegs");
- Bean<DaddyLongLegs> daddyLongLegsModel = createProducerFieldBean(field, bean);
- assert daddyLongLegsModel.getScopeType().equals(RequestScoped.class);
-
+ deployBeans(TameTarantulaProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<Tarantula>> tarantulaBeans = manager.resolveByType(Tarantula.class, new TameAnnotationLiteral());
+ assert !tarantulaBeans.isEmpty();
+ Bean<Tarantula> tarantulaModel = tarantulaBeans.iterator().next();
+ assert tarantulaModel.getScopeType().equals(RequestScoped.class);
+ }
+ }.run();
+
// TODO Inherit scope from returned web bean?
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+
+ /**
+ * A producer field may also specify scope, name, deployment type,
+ * stereotypes and/or bindings.
+ *
+ * @throws Exception
+ */
+ @Test(groups = "producerField")
+ @SpecAssertion(section = "3.5.2")
public void testDeploymentType() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("getLadybirdSpider");
- Bean<LadybirdSpider> ladybirdSpiderModel = createProducerFieldBean(field, bean);
- assert ladybirdSpiderModel.getDeploymentType().equals(Production.class);
+ deployBeans(TameTarantulaProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<Tarantula>> tarantulaBeans = manager.resolveByType(Tarantula.class, new TameAnnotationLiteral());
+ assert !tarantulaBeans.isEmpty();
+ Bean<Tarantula> tarantulaModel = tarantulaBeans.iterator().next();
+ assert tarantulaModel.getDeploymentType().equals(Production.class);
+ }
+ }.run();
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+
+ /**
+ * A producer field may also specify scope, name, deployment type,
+ * stereotypes and/or bindings.
+ *
+ * @throws Exception
+ */
+ @Test(groups = "producerField")
+ @SpecAssertion(section = "3.5.2")
public void testNamedField() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("produceBlackWidow");
- Bean<BlackWidow> blackWidowSpiderModel = createProducerFieldBean(field, bean);
- assert blackWidowSpiderModel.getName().equals("blackWidow");
+ deployBeans(BlackWidowProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<?>> beans = manager.resolveByName("blackWidow");
+ assert !beans.isEmpty();
+
+ @SuppressWarnings("unchecked")
+ Bean<BlackWidow> blackWidowModel = (Bean<BlackWidow>) beans.iterator().next();
+ assert blackWidowModel.getName().equals("blackWidow");
+ }
+ }.run();
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+
+ /**
+ * The default name for a producer field is the field name.
+ *
+ * @throws Exception
+ */
+ @Test(groups = { "producerField", "broken" })
+ @SpecAssertion(section = "3.5.4")
public void testDefaultNamedField() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("produceDaddyLongLegs");
- Bean<DaddyLongLegs> daddyLongLegsSpiderModel = createProducerFieldBean(field, bean);
- assert daddyLongLegsSpiderModel.getName().equals("produceDaddyLongLegs");
+ deployBeans(StaticTarantulaProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<Tarantula>> tarantulaBeans = manager.resolveByType(Tarantula.class);
+ assert !tarantulaBeans.isEmpty();
+ Bean<Tarantula> tarantulaModel = tarantulaBeans.iterator().next();
+ assert tarantulaModel.getName().equals("produceTarantula");
+ }
+ }.run();
}
-
- @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+
+ @Test(groups = { "stub", "disposalField" })
+ @SpecAssertion(section = "3.3.5")
public void testDisposalFieldNonStatic()
{
// TODO Placeholder
assert false;
}
-
- @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+
+ @Test(groups = { "stub", "disposalField" })
+ @SpecAssertion(section = "3.3.5")
public void testDisposalFieldFieldDeclaredOnWebBeanImplementationClass()
{
// TODO Placeholder
assert false;
}
-
- @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+
+ @Test(groups = { "stub", "disposalField" })
+ @SpecAssertion(section = "3.3.5")
public void testDisposalFieldBindingAnnotations()
{
// TODO Placeholder
assert false;
}
-
- @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+
+ @Test(groups = { "stub", "disposalField" })
+ @SpecAssertion(section = "3.3.5")
public void testDisposalFieldDefaultBindingAnnotations()
{
// TODO Placeholder
assert false;
}
-
- @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+
+ @Test(groups = { "stub", "disposalField" })
+ @SpecAssertion(section = "3.3.5")
public void testDisposalFieldDoesNotResolveToProducerField()
{
// TODO Placeholder
assert false;
}
-
- @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+
+ @Test(groups = { "stub", "disposalField" })
+ @SpecAssertion(section = "3.3.5")
public void testDisposalFieldDeclaredOnEnabledBean()
{
// TODO Placeholder
// TODO Move this
-
+
assert false;
}
-
- @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+
+ @Test(groups = { "stub", "disposalField" })
+ @SpecAssertion(section = "3.3.5")
public void testBeanCanDeclareMultipleDisposalFields()
{
- // TODO move this
+ // TODO move this
// TODO Placeholder
assert false;
}
-
- @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+
+ @Test(groups = { "stub", "disposalField" })
+ @SpecAssertion(section = "3.3.5")
public void testProducerFieldHasNoMoreThanOneDisposalField()
{
- // TODO move this
+ // TODO move this
// TODO Placeholder
assert false;
}
-
- @SuppressWarnings("unchecked")
- @Test(groups="producerField") @SpecAssertion(section={"2.7.2", "3.5.2", "2.2"})
+
+ /**
+ * A producer field may also specify scope, name, deployment type,
+ * stereotypes and/or bindings.
+ *
+ * @throws Exception
+ */
+ @Test(groups = "producerField")
+ @SpecAssertion(section = { "2.7.2", "3.5.2", "2.2" })
public void testStereotype() throws Exception
{
- Bean<OtherSpiderProducer> bean = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(bean);
- Field field = OtherSpiderProducer.class.getField("produceWolfSpider");
- Bean<WolfSpider> wolfSpiderModel = createProducerFieldBean(field, bean);
-
-
- // TODO reimplement stereotype tests
- //assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().size() == 1;
- //assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().contains(Animal.class);
-
- assert wolfSpiderModel.getScopeType().equals(RequestScoped.class);
+ deployBeans(StaticTarantulaProducer.class);
+ new RunInDependentContext()
+ {
+ public void execute()
+ {
+ Set<Bean<Tarantula>> tarantulaBeans = manager.resolveByType(Tarantula.class);
+ assert !tarantulaBeans.isEmpty();
+ Bean<Tarantula> tarantulaModel = tarantulaBeans.iterator().next();
+ assert tarantulaModel.getScopeType().equals(RequestScoped.class);
+ assert tarantulaModel.getDeploymentType().equals(Production.class);
+ }
+ }.run();
}
-
- @Test @SpecAssertion(section="4.2")
+
+ @Test(groups = "producerField")
+ @SpecAssertion(section = "4.2")
public void testNonStaticProducerFieldNotInherited()
{
deployBeans(InfertileChicken.class);
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldLifecycleTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldLifecycleTest.java 2009-01-23 18:44:32 UTC (rev 1208)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/ProducerFieldLifecycleTest.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -1,17 +1,12 @@
package org.jboss.webbeans.tck.unit.implementation.producer.field;
-import java.lang.reflect.Field;
-import java.util.Set;
-
import javax.webbeans.IllegalProductException;
-import javax.webbeans.manager.Bean;
-
import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.impl.SpecAssertion;
import org.jboss.webbeans.tck.impl.SpecVersion;
import org.testng.annotations.Test;
-@SpecVersion("20081206")
+@SpecVersion("PRD2")
public class ProducerFieldLifecycleTest extends AbstractTest
{
@@ -22,30 +17,59 @@
*
* • If the producer method is static, the container must access the field
* value.
- *
- * @throws Exception
*/
@Test(groups = { "producerField", "broken" })
@SpecAssertion(section = "5.6")
public void testProducerStaticFieldBean()
{
- deployBeans(OtherSpiderProducer.class, TarantulaConsumer.class);
- TarantulaConsumer tarantulaConsumer = manager.getInstanceByType(TarantulaConsumer.class);
- assert tarantulaConsumer.getConsumedTarantula().equals(OtherSpiderProducer.produceTarantula);
+ deployBeans(StaticTarantulaProducer.class, TarantulaConsumer.class);
+ new RunInDependentContext()
+ {
+
+ @Override
+ protected void execute() throws Exception
+ {
+ TarantulaConsumer tarantulaConsumer = manager.getInstanceByType(TarantulaConsumer.class);
+ assert tarantulaConsumer.getConsumedTarantula().equals(StaticTarantulaProducer.produceTarantula);
+ }
+ };
}
+ /**
+ * When the create() method of a Bean object that represents a producer field
+ * is called, the container must access the producer field to obtain the
+ * current value of the field.
+ *
+ * • Otherwise, if the producer method is non-static, the container must:
+ *
+ * • obtain the Bean object for the most specialized bean that specializes
+ * the bean which declares the producer field, and then
+ *
+ * • obtain an instance of the most specialized bean, by calling
+ * Manager.getInstance(), passing the Bean object rep- resenting the bean,
+ * and
+ *
+ * • access the field value of this instance.
+ *
+ * The value of the producer field is the new contextual instance to be
+ * returned by Bean.create().
+ *
+ * @throws Exception
+ */
@Test(groups = { "producerField", "broken" })
- @SpecAssertion(section = "5.6")
+ @SpecAssertion(section = "6.8")
public void testProducerFieldBeanCreate() throws Exception
{
- deployBeans(OtherSpiderProducer.class);
- Set<Bean<OtherSpiderProducer>> beans = manager.resolveByType(OtherSpiderProducer.class);
- assert beans.size() == 1;
- Bean<OtherSpiderProducer> spiderProducer = beans.iterator().next();
- Field method = OtherSpiderProducer.class.getField("produceTarantula");
- Bean<Tarantula> tarantulaBean = createProducerFieldBean(method, spiderProducer);
- Tarantula tarantula = tarantulaBean.create();
- assert tarantula != null;
+ deployBeans(BlackWidowProducer.class, BlackWidowConsumer.class);
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ BlackWidowConsumer spiderConsumer = manager.getInstanceByType(BlackWidowConsumer.class);
+ assert spiderConsumer.getInjectedSpider().equals(BlackWidowProducer.blackWidow);
+ }
+ }.run();
}
@Test(groups = { "stub", "specialization" })
@@ -56,26 +80,48 @@
assert false;
}
- @Test(groups = { "producerField", "broken" })
- @SpecAssertion(section = { "3.5", "5.6", "8.3" })
+ /**
+ * If the producer field contains a null value and the producer field bean
+ * has the scope @Dependent, the create() method re- turns a null value.
+ *
+ * @throws Exception
+ */
+ @Test(groups = { "producerField" })
+ @SpecAssertion(section = { "3.5", "6.8", "8.3" })
public void testProducerFieldReturnsNullIsDependent() throws Exception
{
- Bean<OtherSpiderProducer> spiderProducer = createSimpleBean(OtherSpiderProducer.class);
- manager.addBean(spiderProducer);
- Field method = OtherSpiderProducer.class.getField("getNullSpider");
- Bean<Spider> spiderBean = createProducerFieldBean(method, spiderProducer);
- Spider spider = spiderBean.create();
- assert spider == null;
+ deployBeans(NullSpiderProducer.class, NullSpiderConsumer.class);
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ NullSpiderConsumer consumerBean = manager.getInstanceByType(NullSpiderConsumer.class);
+ assert consumerBean.getInjectedSpider() == null;
+ }
+ }.run();
}
- @Test(groups = "producerField", expectedExceptions = IllegalProductException.class)
- @SpecAssertion(section = { "3.5", "5.6" })
+ /**
+ * Otherwise, if the producer field contains a null value, and the scope of
+ * the producer method is not @Dependent, the cre- method throws an
+ * IllegalProductException. ate()
+ *
+ * @throws Exception
+ */
+ @Test(groups = { "producerField", "broken" }, expectedExceptions = IllegalProductException.class)
+ @SpecAssertion(section = { "3.5", "6.8" })
public void testProducerFieldReturnsNullIsNotDependent() throws Exception
{
- Bean<OtherSpiderProducer_Broken> spiderProducer = createSimpleBean(OtherSpiderProducer_Broken.class);
- manager.addBean(spiderProducer);
- Field method = OtherSpiderProducer_Broken.class.getField("getRequestScopedSpider");
- createProducerFieldBean(method, spiderProducer).create();
+ deployBeans(NullSpiderProducer_Broken.class, NullSpiderConsumer.class);
+ new RunInDependentContext()
+ {
+ @Override
+ protected void execute() throws Exception
+ {
+ manager.getInstanceByType(NullSpiderConsumer.class);
+ }
+ }.run();
}
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Spider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Spider.java 2009-01-23 18:44:32 UTC (rev 1208)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/Spider.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -3,7 +3,9 @@
class Spider implements Animal
{
- public final void layEggs()
+ private static final long serialVersionUID = 1L;
+
+ public void layEggs()
{
}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderAsAnimalProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderAsAnimalProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderAsAnimalProducer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Produces;
+
+public class SpiderAsAnimalProducer
+{
+ @Produces
+ public Animal makeASpider = new WolfSpider();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderAsAnimalProducer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderProducerWildCardType_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderProducerWildCardType_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderProducerWildCardType_Broken.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Produces;
+
+public class SpiderProducerWildCardType_Broken
+{
+ @Produces public FunnelWeaver<?> getAnotherFunnelWeaver = new FunnelWeaver<Object>();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderProducerWildCardType_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderStereotype.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderStereotype.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderStereotype.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,47 @@
+/*
+ * 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 org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+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.Production;
+import javax.webbeans.RequestScoped;
+import javax.webbeans.Stereotype;
+
+/**
+ * Test stereotype used to change the scope type and deployment type
+ * of another bean, in particular a producer field bean.
+ *
+ * @author David Allen
+ *
+ */
+(a)Stereotype(requiredTypes=Spider.class)
+@Target( { TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@RequestScoped
+@Production
+public @interface SpiderStereotype
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/SpiderStereotype.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/StaticTarantulaProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/StaticTarantulaProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/StaticTarantulaProducer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,26 @@
+/*
+ * 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 org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Produces;
+
+public class StaticTarantulaProducer
+{
+ @Produces @SpiderStereotype public static Tarantula produceTarantula = new Tarantula();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/StaticTarantulaProducer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TameAnnotationLiteral.java (from rev 1198, tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/event/TameAnnotationLiteral.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TameAnnotationLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TameAnnotationLiteral.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.AnnotationLiteral;
+
+class TameAnnotationLiteral extends AnnotationLiteral<Tame> implements Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TameTarantulaProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TameTarantulaProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TameTarantulaProducer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+public class TameTarantulaProducer
+{
+ @Produces @Tame @RequestScoped @Production public Tarantula produceTarantula = new DefangedTarantula();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TameTarantulaProducer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TarantulaConsumer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TarantulaConsumer.java 2009-01-23 18:44:32 UTC (rev 1208)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TarantulaConsumer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -21,7 +21,7 @@
/**
* This bean contains an injection point for a Tarantula that must be provided
- * by the container via a producer field.
+ * by the container via a (static) producer field.
*
* @author David Allen
*
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TarantulaProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TarantulaProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TarantulaProducer.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.webbeans.Produces;
+
+@AnotherDeploymentType
+public class TarantulaProducer
+{
+ @Produces public Tarantula produceTarantula = new DefangedTarantula();
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/TarantulaProducer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/VibratingSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/VibratingSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/VibratingSpider.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,12 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.ejb.Local;
+import javax.webbeans.Produces;
+
+@Local
+public interface VibratingSpider
+{
+ @Produces public Integer numberOfEyes = 5;
+
+ @Produces public Integer numberOfLegs = 8;
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/VibratingSpider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/VibratingSpiderImpl_Broken.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/VibratingSpiderImpl_Broken.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/VibratingSpiderImpl_Broken.java 2009-01-23 19:55:53 UTC (rev 1209)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.implementation.producer.field;
+
+import javax.ejb.Stateless;
+import javax.webbeans.Produces;
+
+@Stateless
+public class VibratingSpiderImpl_Broken implements VibratingSpider
+{
+ @Produces public Integer numberOfEggs = 5000;
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/producer/field/VibratingSpiderImpl_Broken.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1208 - in tck/trunk/impl/src/main/java/org/jboss/webbeans/tck: integration/lookup/non/contextual and 2 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-23 13:44:32 -0500 (Fri, 23 Jan 2009)
New Revision: 1208
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/literals/NewLiteral.java
Removed:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/literals/NewBinding.java
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/contextual/NonContextualInjectionTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java
Log:
fix b uild
Deleted: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/literals/NewBinding.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/literals/NewBinding.java 2009-01-23 17:50:40 UTC (rev 1207)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/literals/NewBinding.java 2009-01-23 18:44:32 UTC (rev 1208)
@@ -1,9 +0,0 @@
-package org.jboss.webbeans.tck.impl.literals;
-
-import javax.webbeans.AnnotationLiteral;
-import javax.webbeans.New;
-
-public class NewBinding extends AnnotationLiteral<New> implements New
-{
-
-}
Copied: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/literals/NewLiteral.java (from rev 1207, tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/literals/NewBinding.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/literals/NewLiteral.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/literals/NewLiteral.java 2009-01-23 18:44:32 UTC (rev 1208)
@@ -0,0 +1,9 @@
+package org.jboss.webbeans.tck.impl.literals;
+
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.New;
+
+public class NewLiteral extends AnnotationLiteral<New> implements New
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/literals/NewLiteral.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/contextual/NonContextualInjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/contextual/NonContextualInjectionTest.java 2009-01-23 17:50:40 UTC (rev 1207)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/contextual/NonContextualInjectionTest.java 2009-01-23 18:44:32 UTC (rev 1208)
@@ -1,7 +1,7 @@
package org.jboss.webbeans.tck.integration.lookup.non.contextual;
+import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.impl.SpecVersion;
-import org.jboss.webbeans.test.unit.AbstractTest;
import org.testng.annotations.Test;
@SpecVersion("PRD2")
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java 2009-01-23 17:50:40 UTC (rev 1207)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java 2009-01-23 18:44:32 UTC (rev 1208)
@@ -11,11 +11,10 @@
import javax.webbeans.Standard;
import javax.webbeans.manager.Bean;
-import org.jboss.webbeans.literal.NewLiteral;
import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.impl.SpecAssertion;
import org.jboss.webbeans.tck.impl.SpecVersion;
-import org.jboss.webbeans.tck.impl.literals.NewBinding;
+import org.jboss.webbeans.tck.impl.literals.NewLiteral;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -29,7 +28,7 @@
@BeforeMethod
public void initNewBean() {
deployBeans(WrappedEnterpriseBean.class);
- Set<Bean<WrappedEnterpriseBean>> beans = manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding());
+ Set<Bean<WrappedEnterpriseBean>> beans = manager.resolveByType(WrappedEnterpriseBean.class, new NewLiteral());
assert beans.size() == 1;
newEnterpriseBean = beans.iterator().next();
}
@@ -77,7 +76,7 @@
public void testNewBeanIsHasOnlyNewBinding()
{
assert newEnterpriseBean.getBindings().size() == 1;
- assert newEnterpriseBean.getBindings().iterator().next().annotationType().equals(new NewBinding().annotationType());
+ assert newEnterpriseBean.getBindings().iterator().next().annotationType().equals(new NewLiteral().annotationType());
}
/**
@@ -283,7 +282,7 @@
public void testNewAnnotationMayBeAppliedToField()
{
deployBeans(AnnotatedField.class, WrappedEnterpriseBean.class);
- assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewLiteral()).size() == 1;
}
/**
@@ -299,7 +298,7 @@
public void testNewAnnotationMayBeAppliedToProducerMethodParameter()
{
deployBeans(AnnotatedProducerParameter.class, WrappedEnterpriseBean.class);
- assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewLiteral()).size() == 1;
}
/**
@@ -315,7 +314,7 @@
public void testNewAnnotationMayBeAppliedToInitializerMethodParameter()
{
deployBeans(AnnotatedInitializerParameter.class, WrappedEnterpriseBean.class);
- assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewLiteral()).size() == 1;
}
/**
@@ -331,7 +330,7 @@
public void testNewAnnotationMayBeAppliedToConstructorMethodParameter()
{
deployBeans(AnnotatedConstructorParameter.class, WrappedEnterpriseBean.class);
- assert manager.resolveByType(WrappedEnterpriseBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedEnterpriseBean.class, new NewLiteral()).size() == 1;
}
/**
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java 2009-01-23 17:50:40 UTC (rev 1207)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java 2009-01-23 18:44:32 UTC (rev 1208)
@@ -11,11 +11,10 @@
import javax.webbeans.Standard;
import javax.webbeans.manager.Bean;
-import org.jboss.webbeans.literal.NewLiteral;
import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.impl.SpecAssertion;
import org.jboss.webbeans.tck.impl.SpecVersion;
-import org.jboss.webbeans.tck.impl.literals.NewBinding;
+import org.jboss.webbeans.tck.impl.literals.NewLiteral;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -31,7 +30,7 @@
public void initNewBean()
{
deployBeans(WrappedSimpleBean.class);
- Set<Bean<WrappedSimpleBean>> beans = manager.resolveByType(WrappedSimpleBean.class, new NewBinding());
+ Set<Bean<WrappedSimpleBean>> beans = manager.resolveByType(WrappedSimpleBean.class, new NewLiteral());
assert beans.size() == 1;
newSimpleBean = beans.iterator().next();
}
@@ -79,7 +78,7 @@
public void testNewBeanIsHasOnlyNewBinding()
{
assert newSimpleBean.getBindings().size() == 1;
- assert newSimpleBean.getBindings().iterator().next().annotationType().equals(new NewBinding().annotationType());
+ assert newSimpleBean.getBindings().iterator().next().annotationType().equals(new NewLiteral().annotationType());
}
/**
@@ -236,7 +235,7 @@
public void testNewAnnotationMayBeAppliedToField()
{
deployBeans(AnnotatedField.class, WrappedSimpleBean.class);
- assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedSimpleBean.class, new NewLiteral()).size() == 1;
}
/**
@@ -252,7 +251,7 @@
public void testNewAnnotationMayBeAppliedToProducerMethodParameter()
{
deployBeans(AnnotatedProducerParameter.class, WrappedSimpleBean.class);
- assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedSimpleBean.class, new NewLiteral()).size() == 1;
}
/**
@@ -268,7 +267,7 @@
public void testNewAnnotationMayBeAppliedToInitializerMethodParameter()
{
deployBeans(AnnotatedInitializerParameter.class, WrappedSimpleBean.class);
- assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedSimpleBean.class, new NewLiteral()).size() == 1;
}
/**
@@ -284,7 +283,7 @@
public void testNewAnnotationMayBeAppliedToConstructorMethodParameter()
{
deployBeans(AnnotatedConstructorParameter.class, WrappedSimpleBean.class);
- assert manager.resolveByType(WrappedSimpleBean.class, new NewBinding()).size() == 1;
+ assert manager.resolveByType(WrappedSimpleBean.class, new NewLiteral()).size() == 1;
}
/**
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1207 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans and 3 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-23 12:50:40 -0500 (Fri, 23 Jan 2009)
New Revision: 1207
Modified:
examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/TextTranslator.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.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/context/SessionContext.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/SessionBeanInterceptor.java
Log:
Use new instances for non-contextual injection into EJBs, WBRI-101
Modified: examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/TextTranslator.java
===================================================================
--- examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/TextTranslator.java 2009-01-23 17:13:42 UTC (rev 1206)
+++ examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/TextTranslator.java 2009-01-23 17:50:40 UTC (rev 1207)
@@ -2,18 +2,19 @@
import java.io.Serializable;
+import javax.ejb.EJB;
import javax.webbeans.Initializer;
public class TextTranslator implements Serializable
{
private SentenceParser sentenceParser;
- private Translator sentenceTranslator;
+ @EJB Translator translator;
+
@Initializer
- TextTranslator(SentenceParser sentenceParser, Translator sentenceTranslator)
+ TextTranslator(SentenceParser sentenceParser)
{
- this.sentenceParser = sentenceParser;
- this.sentenceTranslator = sentenceTranslator;
+ this.sentenceParser = sentenceParser;
}
public String translate(String text)
@@ -21,7 +22,7 @@
StringBuilder sb = new StringBuilder();
for (String sentence: sentenceParser.parse(text))
{
- sb.append(sentenceTranslator.translate(sentence)).append(". ");
+ sb.append(translator.translate(sentence)).append(". ");
}
return sb.toString().trim();
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2009-01-23 17:13:42 UTC (rev 1206)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ManagerImpl.java 2009-01-23 17:50:40 UTC (rev 1207)
@@ -52,6 +52,8 @@
import javax.webbeans.manager.Manager;
import org.jboss.webbeans.bean.AbstractBean;
+import org.jboss.webbeans.bean.EnterpriseBean;
+import org.jboss.webbeans.bean.NewEnterpriseBean;
import org.jboss.webbeans.bean.proxy.ProxyPool;
import org.jboss.webbeans.context.ContextMap;
import org.jboss.webbeans.ejb.EjbDescriptorCache;
@@ -103,7 +105,8 @@
// The registered beans
private transient List<Bean<?>> beans;
// The registered beans, mapped by implementation class
- private transient final Map<Class<?>, Bean<?>> beanMap;
+ private transient final Map<Class<?>, EnterpriseBean<?>> newEnterpriseBeanMap;
+ private transient final Map<Class<?>, EnterpriseBean<?>> enterpriseBeanMap;
// The registered decorators
private transient final Set<Decorator> decorators;
// The registered interceptors
@@ -133,7 +136,8 @@
this.namingContext = namingContext;
this.resourceLoader = resourceLoader;
this.beans = new CopyOnWriteArrayList<Bean<?>>();
- this.beanMap = new ConcurrentHashMap<Class<?>, Bean<?>>();
+ this.newEnterpriseBeanMap = new ConcurrentHashMap<Class<?>, EnterpriseBean<?>>();
+ this.enterpriseBeanMap = new ConcurrentHashMap<Class<?>, EnterpriseBean<?>>();
this.resolver = new Resolver(this);
this.proxyPool = new ProxyPool();
this.decorators = new HashSet<Decorator>();
@@ -328,6 +332,7 @@
* @param beans The set of beans to add
* @return A reference to the manager
*/
+ // TODO Build maps in the deployer :-)
public void setBeans(Set<AbstractBean<?, ?>> beans)
{
synchronized (beans)
@@ -335,7 +340,14 @@
this.beans = new CopyOnWriteArrayList<Bean<?>>(beans);
for (AbstractBean<?, ?> bean : beans)
{
- beanMap.put(bean.getType(), bean);
+ if (bean instanceof NewEnterpriseBean)
+ {
+ newEnterpriseBeanMap.put(bean.getType(), (EnterpriseBean<?>) bean);
+ }
+ else if (bean instanceof EnterpriseBean)
+ {
+ enterpriseBeanMap.put(bean.getType(), (EnterpriseBean<?>) bean);
+ }
}
resolver.clear();
}
@@ -346,10 +358,15 @@
*
* @return The bean map
*/
- public Map<Class<?>, Bean<?>> getBeanMap()
+ public Map<Class<?>, EnterpriseBean<?>> getNewEnterpriseBeanMap()
{
- return beanMap;
+ return newEnterpriseBeanMap;
}
+
+ public Map<Class<?>, EnterpriseBean<?>> getEnterpriseBeanMap()
+ {
+ return enterpriseBeanMap;
+ }
/**
* The beans registered with the Web Bean manager. For internal use
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-23 17:13:42 UTC (rev 1206)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpriseBeanProxyMethodHandler.java 2009-01-23 17:50:40 UTC (rev 1207)
@@ -18,15 +18,14 @@
package org.jboss.webbeans.bean.proxy;
import java.lang.reflect.Method;
-import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
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;
@@ -44,6 +43,40 @@
{
// The log provider
private static final transient LogProvider log = Logging.getLogProvider(EnterpriseBeanProxyMethodHandler.class);
+
+ private static final ThreadLocal<Set<Class<?>>> contextualInstance;
+
+ static
+ {
+ contextualInstance = new ThreadLocal<Set<Class<?>>>()
+ {
+
+ @Override
+ protected Set<Class<?>> initialValue()
+ {
+ return new HashSet<Class<?>>();
+ }
+
+ };
+
+ }
+
+ public static boolean isContextualInstance(Class<?> beanClass)
+ {
+ return contextualInstance.get().contains(beanClass);
+ }
+
+ private static void setContextualInstance(Class<?> beanClass, boolean accessing)
+ {
+ if (accessing)
+ {
+ contextualInstance.get().add(beanClass);
+ }
+ else
+ {
+ contextualInstance.get().remove(beanClass);
+ }
+ }
// The container provided proxy that implements all interfaces
private final Map<Class<?>, Object> proxiedInstances;
@@ -51,6 +84,7 @@
private boolean destroyed;
private boolean canCallRemoveMethods;
private final List<Method> removeMethods;
+ private final Class<?> beanClass;
/**
* Constructor
@@ -66,6 +100,7 @@
this.canCallRemoveMethods = bean.canCallRemoveMethods();
this.removeMethods = bean.getEjbDescriptor().getRemoveMethods();
this.destroyed = false;
+ this.beanClass = bean.getType();
log.trace("Created enterprise bean proxy method handler for " + bean);
}
@@ -101,7 +136,15 @@
{
throw new IllegalStateException("Unable to establish jndi name to use to lookup EJB");
}
- proxiedInstance = CurrentManager.rootManager().getNaming().lookup(jndiName, businessInterface);
+ try
+ {
+ setContextualInstance(beanClass, true);
+ proxiedInstance = CurrentManager.rootManager().getNaming().lookup(jndiName, businessInterface);
+ }
+ finally
+ {
+ setContextualInstance(beanClass, false);
+ }
proxiedInstances.put(businessInterface, proxiedInstance);
}
Method proxiedMethod = Reflections.lookupMethod(method, proxiedInstance);
@@ -116,8 +159,17 @@
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;
+ try
+ {
+ setContextualInstance(beanClass, true);
+ Object returnValue = Reflections.invokeAndWrap(proxiedMethod, proxiedInstance, args);
+ log.trace("Executed " + method + " on " + proxiedInstance + " with parameters " + args + " and got return value " + returnValue);
+ return returnValue;
+ }
+ finally
+ {
+ setContextualInstance(beanClass, false);
+ }
+
}
}
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/SessionContext.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/SessionContext.java 2009-01-23 17:13:42 UTC (rev 1206)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/context/SessionContext.java 2009-01-23 17:50:40 UTC (rev 1207)
@@ -51,7 +51,7 @@
* Gets the bean map
*
* @returns The bean map
- * @see org.jboss.webbeans.context.AbstractContext#getBeanMap()
+ * @see org.jboss.webbeans.context.AbstractContext#getNewEnterpriseBeanMap()
*/
@Override
public BeanMap getBeanMap()
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/SessionBeanInterceptor.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/SessionBeanInterceptor.java 2009-01-23 17:13:42 UTC (rev 1206)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/ejb/SessionBeanInterceptor.java 2009-01-23 17:50:40 UTC (rev 1207)
@@ -20,10 +20,10 @@
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.interceptor.InvocationContext;
-import javax.webbeans.manager.Bean;
import org.jboss.webbeans.CurrentManager;
import org.jboss.webbeans.bean.EnterpriseBean;
+import org.jboss.webbeans.bean.proxy.EnterpriseBeanProxyMethodHandler;
/**
* Interceptor for handling EJB post-construct tasks
@@ -76,17 +76,13 @@
*/
private static <T> EnterpriseBean<T> getBean(Class<? extends T> beanClass)
{
- Bean<?> bean = CurrentManager.rootManager().getBeanMap().get(beanClass);
- if (bean instanceof EnterpriseBean)
+ if (EnterpriseBeanProxyMethodHandler.isContextualInstance(beanClass))
{
- @SuppressWarnings("unchecked")
- // TODO shift this into the map!
- EnterpriseBean<T> enterpriseBean = (EnterpriseBean<T>) bean;
- return enterpriseBean;
+ return (EnterpriseBean<T>) CurrentManager.rootManager().getEnterpriseBeanMap().get(beanClass);
}
else
{
- return null;
+ return (EnterpriseBean<T>) CurrentManager.rootManager().getNewEnterpriseBeanMap().get(beanClass);
}
}
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1206 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean and 2 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-23 12:13:42 -0500 (Fri, 23 Jan 2009)
New Revision: 1206
Added:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpiseBeanInstance.java
Modified:
examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/SentenceParser.java
examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/TextTranslator.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java
Log:
Proxy classloading ordering, make enterprise bean destruction actually work
Modified: examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/SentenceParser.java
===================================================================
--- examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/SentenceParser.java 2009-01-23 15:09:48 UTC (rev 1205)
+++ examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/SentenceParser.java 2009-01-23 17:13:42 UTC (rev 1206)
@@ -3,7 +3,7 @@
import java.util.Arrays;
import java.util.List;
-public class SentenceParser
+public class SentenceParser
{
public List<String> parse(String text)
Modified: examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/TextTranslator.java
===================================================================
--- examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/TextTranslator.java 2009-01-23 15:09:48 UTC (rev 1205)
+++ examples/trunk/translator/webbeans-translator-ejb/src/main/java/org/jboss/webbeans/examples/translator/TextTranslator.java 2009-01-23 17:13:42 UTC (rev 1206)
@@ -1,8 +1,10 @@
package org.jboss.webbeans.examples.translator;
+import java.io.Serializable;
+
import javax.webbeans.Initializer;
-public class TextTranslator
+public class TextTranslator implements Serializable
{
private SentenceParser sentenceParser;
private Translator sentenceTranslator;
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-01-23 15:09:48 UTC (rev 1205)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-01-23 17:13:42 UTC (rev 1206)
@@ -249,6 +249,7 @@
protected boolean injectionPointsAreSerializable()
{
+ // TODO CACHE THIS!!!
// TODO: a bit crude, don't check *all* injectionpoints, only those listed
// in the spec for passivation checks
for (AnnotatedItem<?, ?> injectionPoint : getAnnotatedInjectionPoints())
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-23 15:09:48 UTC (rev 1205)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/EnterpriseBean.java 2009-01-23 17:13:42 UTC (rev 1206)
@@ -18,7 +18,8 @@
package org.jboss.webbeans.bean;
import java.lang.reflect.Type;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
+import java.util.Set;
import javassist.util.proxy.ProxyFactory;
import javassist.util.proxy.ProxyObject;
@@ -31,6 +32,7 @@
import javax.webbeans.Interceptor;
import org.jboss.webbeans.ManagerImpl;
+import org.jboss.webbeans.bean.proxy.EnterpiseBeanInstance;
import org.jboss.webbeans.bean.proxy.EnterpriseBeanProxyMethodHandler;
import org.jboss.webbeans.context.DependentContext;
import org.jboss.webbeans.ejb.InternalEjbDescriptor;
@@ -133,17 +135,19 @@
protected void initTypes()
{
- types = new HashSet<Type>();
+ types = new LinkedHashSet<Type>();
+ types.add(Object.class);
for (BusinessInterfaceDescriptor<?> businessInterfaceDescriptor : ejbDescriptor.getLocalBusinessInterfaces())
{
types.add(businessInterfaceDescriptor.getInterface());
}
- types.add(Object.class);
}
protected void initProxyClass()
{
- ProxyFactory proxyFactory = Proxies.getProxyFactory(getTypes());
+ Set<Type> types = new LinkedHashSet<Type>(getTypes());
+ types.add(EnterpiseBeanInstance.class);
+ ProxyFactory proxyFactory = Proxies.getProxyFactory(types);
@SuppressWarnings("unchecked")
Class<T> proxyClass = proxyFactory.createClass();
@@ -241,6 +245,7 @@
@Override
public void destroy(T instance)
{
+ EnterpiseBeanInstance enterpiseBeanInstance = (EnterpiseBeanInstance) instance;
Boolean isDestroyed = (Boolean) Reflections.invokeAndWrap("isDestroyed", null, instance, null);
if (isDestroyed.booleanValue())
{
Added: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpiseBeanInstance.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpiseBeanInstance.java (rev 0)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpiseBeanInstance.java 2009-01-23 17:13:42 UTC (rev 1206)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.bean.proxy;
+
+public interface EnterpiseBeanInstance
+{
+
+ public boolean isDestroyed();
+
+}
Property changes on: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/EnterpiseBeanInstance.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java 2009-01-23 15:09:48 UTC (rev 1205)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/proxy/ProxyPool.java 2009-01-23 17:13:42 UTC (rev 1206)
@@ -19,7 +19,7 @@
import java.io.Serializable;
import java.lang.reflect.Type;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
import java.util.Set;
import java.util.concurrent.Callable;
@@ -77,7 +77,7 @@
try
{
ClientProxyMethodHandler proxyMethodHandler = new ClientProxyMethodHandler(bean, beanIndex);
- Set<Type> classes = new HashSet<Type>(bean.getTypes());
+ Set<Type> classes = new LinkedHashSet<Type>(bean.getTypes());
classes.add(Serializable.class);
ProxyFactory proxyFactory = Proxies.getProxyFactory(classes);
proxyFactory.setHandler(proxyMethodHandler);
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java 2009-01-23 15:09:48 UTC (rev 1205)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/util/Proxies.java 2009-01-23 17:13:42 UTC (rev 1206)
@@ -17,8 +17,8 @@
package org.jboss.webbeans.util;
import java.lang.reflect.Type;
-import java.util.HashSet;
import java.util.Iterator;
+import java.util.LinkedHashSet;
import java.util.Set;
import javassist.util.proxy.ProxyFactory;
@@ -46,8 +46,8 @@
private TypeInfo()
{
super();
- this.interfaces = new HashSet<Class<?>>();
- this.classes = new HashSet<Class<?>>();
+ this.interfaces = new LinkedHashSet<Class<?>>();
+ this.classes = new LinkedHashSet<Class<?>>();
}
public Class<?> getSuperClass()
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1205 - in tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup: non and 1 other directories.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-23 10:09:48 -0500 (Fri, 23 Jan 2009)
New Revision: 1205
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/contextual/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/contextual/NonContextualInjectionTest.java
Log:
stubs for non-contextual injection
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/contextual/NonContextualInjectionTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/contextual/NonContextualInjectionTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/contextual/NonContextualInjectionTest.java 2009-01-23 15:09:48 UTC (rev 1205)
@@ -0,0 +1,41 @@
+package org.jboss.webbeans.tck.integration.lookup.non.contextual;
+
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.test.unit.AbstractTest;
+import org.testng.annotations.Test;
+
+@SpecVersion("PRD2")
+public class NonContextualInjectionTest extends AbstractTest
+{
+
+ @Test(groups="stub")
+ public void testNonContextualSessionBeanSpecializesNewBeanForInjection()
+ {
+
+ }
+
+ @Test(groups="stub")
+ public void testNonContextualSessionBeanSpecializesNewBeanForInterceptorStack()
+ {
+
+ }
+
+ @Test(groups="stub")
+ public void testNonContextualSessionBeanSpecializesNewBeanForDecoratorStack()
+ {
+
+ }
+
+ @Test(groups="stub")
+ public void testInjectionIntoMessageDrivenBean()
+ {
+
+ }
+
+ @Test(groups="stub")
+ public void testInjectionIntoServlet()
+ {
+
+ }
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/integration/lookup/non/contextual/NonContextualInjectionTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1204 - in tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation: simple and 1 other directory.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-23 10:01:57 -0500 (Fri, 23 Jan 2009)
New Revision: 1204
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Lion.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Order.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Lion.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tame.java
Modified:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java
Log:
Test that new beans are created
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Lion.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Lion.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Lion.java 2009-01-23 15:01:57 UTC (rev 1204)
@@ -0,0 +1,10 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateful;
+
+@Tame
+@Stateful
+class Lion
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Lion.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java 2009-01-23 14:27:39 UTC (rev 1203)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/NewEnterpriseBeanTest.java 2009-01-23 15:01:57 UTC (rev 1204)
@@ -3,11 +3,15 @@
import java.lang.annotation.Annotation;
import java.util.Set;
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.Current;
import javax.webbeans.DefinitionException;
import javax.webbeans.Dependent;
+import javax.webbeans.New;
import javax.webbeans.Standard;
import javax.webbeans.manager.Bean;
+import org.jboss.webbeans.literal.NewLiteral;
import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.impl.SpecAssertion;
import org.jboss.webbeans.tck.impl.SpecVersion;
@@ -20,6 +24,8 @@
{
private Bean<WrappedEnterpriseBean> newEnterpriseBean;
+ private static final Annotation TAME_LITERAL = new AnnotationLiteral<Tame>() {};
+
@BeforeMethod
public void initNewBean() {
deployBeans(WrappedEnterpriseBean.class);
@@ -367,5 +373,25 @@
assert false;
}
+ @Test @SpecAssertion(section="3.2.5")
+ public void testForEachEnterpriseBeanANewBeanExists()
+ {
+ deployBeans(Order.class, Lion.class);
+ assert manager.resolveByType(Order.class).size() == 1;
+ assert manager.resolveByType(Order.class).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Order.class).iterator().next().getBindings().iterator().next().annotationType().equals(Current.class);
+
+ assert manager.resolveByType(Order.class, new NewLiteral()).size() == 1;
+ assert manager.resolveByType(Order.class, new NewLiteral()).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Order.class, new NewLiteral()).iterator().next().getBindings().iterator().next().annotationType().equals(New.class);
+
+ assert manager.resolveByType(Lion.class, TAME_LITERAL).size() == 1;
+ assert manager.resolveByType(Lion.class, TAME_LITERAL).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Lion.class, TAME_LITERAL).iterator().next().getBindings().iterator().next().annotationType().equals(Tame.class);
+
+ assert manager.resolveByType(Lion.class, new NewLiteral()).size() == 1;
+ assert manager.resolveByType(Lion.class, new NewLiteral()).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Lion.class, new NewLiteral()).iterator().next().getBindings().iterator().next().annotationType().equals(New.class);
+ }
}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Order.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Order.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Order.java 2009-01-23 15:01:57 UTC (rev 1204)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.unit.implementation.enterprise;
+
+import javax.ejb.Stateful;
+import javax.webbeans.Production;
+
+@Production
+@Stateful
+class Order
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/enterprise/Order.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Lion.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Lion.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Lion.java 2009-01-23 15:01:57 UTC (rev 1204)
@@ -0,0 +1,7 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+@Tame
+class Lion
+{
+
+}
Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Lion.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java 2009-01-23 14:27:39 UTC (rev 1203)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/NewSimpleBeanTest.java 2009-01-23 15:01:57 UTC (rev 1204)
@@ -3,11 +3,15 @@
import java.lang.annotation.Annotation;
import java.util.Set;
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.Current;
import javax.webbeans.DefinitionException;
import javax.webbeans.Dependent;
+import javax.webbeans.New;
import javax.webbeans.Standard;
import javax.webbeans.manager.Bean;
+import org.jboss.webbeans.literal.NewLiteral;
import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.impl.SpecAssertion;
import org.jboss.webbeans.tck.impl.SpecVersion;
@@ -19,6 +23,8 @@
public class NewSimpleBeanTest extends AbstractTest
{
+ private static final Annotation TAME_LITERAL = new AnnotationLiteral<Tame>() {};
+
private Bean<WrappedSimpleBean> newSimpleBean;
@BeforeMethod
@@ -320,5 +326,26 @@
assert false;
}
+ @Test @SpecAssertion(section="3.2.5")
+ public void testForEachSimpleBeanANewBeanExists()
+ {
+ deployBeans(Order.class, Lion.class);
+ assert manager.resolveByType(Order.class).size() == 1;
+ assert manager.resolveByType(Order.class).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Order.class).iterator().next().getBindings().iterator().next().annotationType().equals(Current.class);
+
+ assert manager.resolveByType(Order.class, new NewLiteral()).size() == 1;
+ assert manager.resolveByType(Order.class, new NewLiteral()).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Order.class, new NewLiteral()).iterator().next().getBindings().iterator().next().annotationType().equals(New.class);
+
+ assert manager.resolveByType(Lion.class, TAME_LITERAL).size() == 1;
+ assert manager.resolveByType(Lion.class, TAME_LITERAL).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Lion.class, TAME_LITERAL).iterator().next().getBindings().iterator().next().annotationType().equals(Tame.class);
+
+ assert manager.resolveByType(Lion.class, new NewLiteral()).size() == 1;
+ assert manager.resolveByType(Lion.class, new NewLiteral()).iterator().next().getBindings().size() == 1;
+ assert manager.resolveByType(Lion.class, new NewLiteral()).iterator().next().getBindings().iterator().next().annotationType().equals(New.class);
+ }
+
}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/implementation/simple/Tame.java 2009-01-23 15:01:57 UTC (rev 1204)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.unit.implementation.simple;
+
+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/unit/implementation/simple/Tame.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
16 years, 8 months
[webbeans-commits] Webbeans SVN: r1203 - ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean.
by webbeans-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2009-01-23 09:27:39 -0500 (Fri, 23 Jan 2009)
New Revision: 1203
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
Log:
minor
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-01-23 13:45:28 UTC (rev 1202)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractBean.java 2009-01-23 14:27:39 UTC (rev 1203)
@@ -18,7 +18,6 @@
package org.jboss.webbeans.bean;
import java.lang.annotation.Annotation;
-import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.HashSet;
@@ -384,28 +383,6 @@
}
/**
- * Gets the declared bean type
- *
- * @return The bean type
- */
- protected Type getDeclaredBeanType()
- {
- if (declaredBeanType == null)
- {
- Type type = getClass();
- if (type instanceof ParameterizedType)
- {
- ParameterizedType parameterizedType = (ParameterizedType) type;
- if (parameterizedType.getActualTypeArguments().length == 1)
- {
- declaredBeanType = parameterizedType.getActualTypeArguments()[0];
- }
- }
- }
- return declaredBeanType;
- }
-
- /**
* Gets the default name of the bean
*
* @return The default name
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-01-23 13:45:28 UTC (rev 1202)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/bean/AbstractProducerBean.java 2009-01-23 14:27:39 UTC (rev 1203)
@@ -19,6 +19,7 @@
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.HashSet;
import java.util.Set;
@@ -120,6 +121,25 @@
throw new RuntimeException(" Cannot cast producer type " + getAnnotatedItem().getType() + " to bean type " + (getDeclaredBeanType() == null ? " unknown " : getDeclaredBeanType()), e);
}
}
+
+ /**
+ * Gets the declared bean type
+ *
+ * @return The bean type
+ */
+ protected Type getDeclaredBeanType()
+ {
+ Type type = getClass();
+ if (type instanceof ParameterizedType)
+ {
+ ParameterizedType parameterizedType = (ParameterizedType) type;
+ if (parameterizedType.getActualTypeArguments().length == 1)
+ {
+ return parameterizedType.getActualTypeArguments()[0];
+ }
+ }
+ return null;
+ }
/**
* Returns the declaring bean
16 years, 8 months