[jboss-cvs] JBossAS SVN: r97842 - in projects/kernel/trunk/kernel/src/test: java/org/jboss/test/kernel/qualifiers/test and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Dec 15 09:09:23 EST 2009
Author: kabir.khan at jboss.com
Date: 2009-12-15 09:09:22 -0500 (Tue, 15 Dec 2009)
New Revision: 97842
Added:
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/AnnotatedBeanD.java
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/Qualifier4.java
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/TargetAllBeanWithField.java
projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersAnnotatedTestCase#testXmlInjectAnnotationBeanQualifierAnnotationsForField.xml
Modified:
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/AnnotatedTargetAllBean.java
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/InjectionPointQualifiersTestCase.java
projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/QualifiersAnnotatedTestCase.java
Log:
[JBKERNEL-63] More tests for qualifiers on fields
Added: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/AnnotatedBeanD.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/AnnotatedBeanD.java (rev 0)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/AnnotatedBeanD.java 2009-12-15 14:09:22 UTC (rev 97842)
@@ -0,0 +1,33 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.kernel.qualifiers.support;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+ at Qualifier4
+public class AnnotatedBeanD extends Bean
+{
+
+}
Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/AnnotatedTargetAllBean.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/AnnotatedTargetAllBean.java 2009-12-15 14:04:35 UTC (rev 97841)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/AnnotatedTargetAllBean.java 2009-12-15 14:09:22 UTC (rev 97842)
@@ -34,9 +34,12 @@
{
private Bean constructorBean;
- private Bean fieldBean;
+ private Bean propertyBean;
private Bean methodBean;
+
+ @Inject @Qualifier4
+ public Bean fieldBean;
@Constructor
public AnnotatedTargetAllBean(@Inject @Qualifier1 Bean bean)
@@ -49,15 +52,15 @@
return constructorBean;
}
- public Bean getFieldBean()
+ public Bean getPropertyBean()
{
- return fieldBean;
+ return propertyBean;
}
@Inject @Qualifier2
- public void setFieldBean(Bean fieldBean)
+ public void setPropertyBean(Bean fieldBean)
{
- this.fieldBean = fieldBean;
+ this.propertyBean = fieldBean;
}
public Bean getMethodBean()
@@ -70,4 +73,9 @@
{
this.methodBean = methodBean;
}
+
+ public Bean getFieldBean()
+ {
+ return fieldBean;
+ }
}
Added: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/Qualifier4.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/Qualifier4.java (rev 0)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/Qualifier4.java 2009-12-15 14:09:22 UTC (rev 97842)
@@ -0,0 +1,39 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.kernel.qualifiers.support;
+
+import java.lang.annotation.RetentionPolicy;
+
+import java.lang.annotation.Retention;
+
+import javax.inject.Qualifier;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+ at Retention(RetentionPolicy.RUNTIME)
+ at Qualifier
+public @interface Qualifier4 {
+
+}
Added: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/TargetAllBeanWithField.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/TargetAllBeanWithField.java (rev 0)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/support/TargetAllBeanWithField.java 2009-12-15 14:09:22 UTC (rev 97842)
@@ -0,0 +1,61 @@
+/*
+* JBoss, Home of Professional Open Source.
+* Copyright 2006, Red Hat Middleware LLC, and individual contributors
+* as indicated by the @author tags. See the copyright.txt file in the
+* distribution for a full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.test.kernel.qualifiers.support;
+
+/**
+ *
+ * @author <a href="kabir.khan at jboss.com">Kabir Khan</a>
+ * @version $Revision: 1.1 $
+ */
+public class TargetAllBeanWithField
+{
+ private Bean constructorBean;
+
+ public Bean fieldBean;
+
+ private Bean methodBean;
+
+ public TargetAllBeanWithField(Bean bean)
+ {
+ constructorBean = bean;
+ }
+
+ public Bean getConstructorBean()
+ {
+ return constructorBean;
+ }
+
+ public Bean getFieldBean()
+ {
+ return fieldBean;
+ }
+
+ public Bean getMethodBean()
+ {
+ return methodBean;
+ }
+
+ public void installBean(Bean methodBean)
+ {
+ this.methodBean = methodBean;
+ }
+}
Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/InjectionPointQualifiersTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/InjectionPointQualifiersTestCase.java 2009-12-15 14:04:35 UTC (rev 97841)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/InjectionPointQualifiersTestCase.java 2009-12-15 14:09:22 UTC (rev 97842)
@@ -35,6 +35,7 @@
import org.jboss.test.kernel.qualifiers.support.Bean;
import org.jboss.test.kernel.qualifiers.support.Target;
import org.jboss.test.kernel.qualifiers.support.TargetAllBean;
+import org.jboss.test.kernel.qualifiers.support.TargetAllBeanWithField;
import org.jboss.test.kernel.qualifiers.support.TargetConstructorBean;
import org.jboss.test.kernel.qualifiers.support.TargetFieldBean;
import org.jboss.test.kernel.qualifiers.support.TargetMethodBean;
@@ -528,6 +529,56 @@
}
}
+ public void testRequiredQualifierPointsForField() throws Throwable
+ {
+ BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
+ bean1Builder.addQualifiers(QualifierType.SUPPLIED, "test", "all", "constructor");
+ KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
+ bean2Builder.addQualifiers(QualifierType.SUPPLIED, "test", "all", "method");
+ KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder bean3Builder = BeanMetaDataBuilder.createBuilder("bean3", Bean.class.getName());
+ bean3Builder.addQualifiers(QualifierType.SUPPLIED, "test", "all", "property");
+ KernelControllerContext bean3Context = deploy(bean3Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetAllBeanWithField.class.getName());
+ targetBuilder.setAccessMode(BeanAccessMode.ALL);
+ targetBuilder.addPropertyMetaData("fieldBean", targetBuilder.createContextualInject("test"));
+ targetBuilder.addConstructorParameter(Bean.class.getName(), targetBuilder.createContextualInject("test"));
+ targetBuilder.addInstall("installBean", Bean.class.getName(), targetBuilder.createContextualInject("test"));
+ targetBuilder.addQualifiers(QualifierType.REQUIRED, "all");
+ targetBuilder.addQualifiers(QualifierType.REQUIRED, Arrays.asList(new QualifierPoint[] {QualifierPoint.CONSTRUCTOR}), "constructor");
+ targetBuilder.addQualifiers(QualifierType.REQUIRED, Arrays.asList(new QualifierPoint[] {QualifierPoint.METHOD}), "method");
+ targetBuilder.addQualifiers(QualifierType.REQUIRED, Arrays.asList(new QualifierPoint[] {QualifierPoint.PROPERTY}), "property");
+ KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
+
+ try
+ {
+ Bean bean1 = assertBean("bean1", Bean.class);
+ Bean bean2 = assertBean("bean2", Bean.class);
+ Bean bean3 = assertBean("bean3", Bean.class);
+
+ TargetAllBeanWithField target = assertBean("target", TargetAllBeanWithField.class);
+ assertNotNull(target.getConstructorBean());
+ assertEquals(bean1, target.getConstructorBean());
+
+ assertNotNull(target.getMethodBean());
+ assertEquals(bean2, target.getMethodBean());
+
+ assertNotNull(target.getFieldBean());
+ assertEquals(bean3, target.getFieldBean());
+ }
+ finally
+ {
+ undeploy(targetContext);
+ undeploy(bean3Context);
+ undeploy(bean2Context);
+ undeploy(bean1Context);
+ }
+ }
+
public void testOptionalQualifierPoints() throws Throwable
{
BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
@@ -577,6 +628,56 @@
}
}
+ public void testOptionalQualifierPointsForField() throws Throwable
+ {
+ BeanMetaDataBuilder bean1Builder = BeanMetaDataBuilder.createBuilder("bean1", Bean.class.getName());
+ bean1Builder.addQualifiers(QualifierType.SUPPLIED, "test", "all", "constructor");
+ KernelControllerContext bean1Context = deploy(bean1Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder bean2Builder = BeanMetaDataBuilder.createBuilder("bean2", Bean.class.getName());
+ bean2Builder.addQualifiers(QualifierType.SUPPLIED, "test", "all", "method");
+ KernelControllerContext bean2Context = deploy(bean2Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder bean3Builder = BeanMetaDataBuilder.createBuilder("bean3", Bean.class.getName());
+ bean3Builder.addQualifiers(QualifierType.SUPPLIED, "test", "all", "property");
+ KernelControllerContext bean3Context = deploy(bean3Builder.getBeanMetaData());
+
+ BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", TargetAllBeanWithField.class.getName());
+ targetBuilder.setAccessMode(BeanAccessMode.ALL);
+ targetBuilder.addPropertyMetaData("fieldBean", targetBuilder.createContextualInject("test"));
+ targetBuilder.addConstructorParameter(Bean.class.getName(), targetBuilder.createContextualInject("test"));
+ targetBuilder.addInstall("installBean", Bean.class.getName(), targetBuilder.createContextualInject("test"));
+ targetBuilder.addQualifiers(QualifierType.OPTIONAL, "all");
+ targetBuilder.addQualifiers(QualifierType.OPTIONAL, Arrays.asList(new QualifierPoint[] {QualifierPoint.CONSTRUCTOR}), "constructor");
+ targetBuilder.addQualifiers(QualifierType.OPTIONAL, Arrays.asList(new QualifierPoint[] {QualifierPoint.METHOD}), "method");
+ targetBuilder.addQualifiers(QualifierType.OPTIONAL, Arrays.asList(new QualifierPoint[] {QualifierPoint.PROPERTY}), "property");
+ KernelControllerContext targetContext = deploy(targetBuilder.getBeanMetaData());
+
+ try
+ {
+ Bean bean1 = assertBean("bean1", Bean.class);
+ Bean bean2 = assertBean("bean2", Bean.class);
+ Bean bean3 = assertBean("bean3", Bean.class);
+
+ TargetAllBeanWithField target = assertBean("target", TargetAllBeanWithField.class);
+ assertNotNull(target.getConstructorBean());
+ assertEquals(bean1, target.getConstructorBean());
+
+ assertNotNull(target.getMethodBean());
+ assertEquals(bean2, target.getMethodBean());
+
+ assertNotNull(target.getFieldBean());
+ assertEquals(bean3, target.getFieldBean());
+ }
+ finally
+ {
+ undeploy(targetContext);
+ undeploy(bean3Context);
+ undeploy(bean2Context);
+ undeploy(bean1Context);
+ }
+ }
+
private BeanMetaData addRequiredQualifiers(BeanMetaData bmd, Object...qualifiers)
{
BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(bmd);
Modified: projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/QualifiersAnnotatedTestCase.java
===================================================================
--- projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/QualifiersAnnotatedTestCase.java 2009-12-15 14:04:35 UTC (rev 97841)
+++ projects/kernel/trunk/kernel/src/test/java/org/jboss/test/kernel/qualifiers/test/QualifiersAnnotatedTestCase.java 2009-12-15 14:09:22 UTC (rev 97842)
@@ -23,18 +23,20 @@
import junit.framework.Test;
+import org.jboss.beans.info.spi.BeanAccessMode;
import org.jboss.beans.metadata.api.model.QualifierType;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-import org.jboss.kernel.plugins.dependency.QualifiersMdrUtil;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
import org.jboss.test.kernel.junit.MicrocontainerTest;
import org.jboss.test.kernel.qualifiers.support.AnnotatedBeanA;
import org.jboss.test.kernel.qualifiers.support.AnnotatedBeanB;
import org.jboss.test.kernel.qualifiers.support.AnnotatedBeanC;
+import org.jboss.test.kernel.qualifiers.support.AnnotatedBeanD;
import org.jboss.test.kernel.qualifiers.support.AnnotatedIgnoreTargetAllBean;
import org.jboss.test.kernel.qualifiers.support.AnnotatedTargetAllBean;
import org.jboss.test.kernel.qualifiers.support.Bean;
import org.jboss.test.kernel.qualifiers.support.TargetAllBean;
+import org.jboss.test.kernel.qualifiers.support.TargetFieldBean;
/**
*
@@ -64,7 +66,11 @@
BeanMetaDataBuilder beanCBuilder = BeanMetaDataBuilder.createBuilder("beanC", AnnotatedBeanC.class.getName());
KernelControllerContext beanCCtx = deploy(beanCBuilder.getBeanMetaData());
+ BeanMetaDataBuilder beanDBuilder = BeanMetaDataBuilder.createBuilder("beanD", AnnotatedBeanD.class.getName());
+ KernelControllerContext beanDCtx = deploy(beanDBuilder.getBeanMetaData());
+
BeanMetaDataBuilder targetBuilder = BeanMetaDataBuilder.createBuilder("target", AnnotatedTargetAllBean.class.getName());
+ targetBuilder.setAccessMode(BeanAccessMode.ALL);
KernelControllerContext targetCtx = deploy(targetBuilder.getBeanMetaData());
try
@@ -72,13 +78,16 @@
Bean beanA = assertBean("beanA", Bean.class);
Bean beanB = assertBean("beanB", Bean.class);
Bean beanC = assertBean("beanC", Bean.class);
+ Bean beanD = assertBean("beanD", Bean.class);
AnnotatedTargetAllBean target = assertBean("target", AnnotatedTargetAllBean.class);
assertNotNull(target.getConstructorBean());
+ assertNotNull(target.getPropertyBean());
+ assertNotNull(target.getMethodBean());
assertNotNull(target.getFieldBean());
- assertNotNull(target.getMethodBean());
assertEquals(beanA, target.getConstructorBean());
- assertEquals(beanB, target.getFieldBean());
+ assertEquals(beanB, target.getPropertyBean());
assertEquals(beanC, target.getMethodBean());
+ assertEquals(beanD, target.getFieldBean());
}
finally
{
@@ -86,6 +95,7 @@
undeploy(beanACtx);
undeploy(beanBCtx);
undeploy(beanCCtx);
+ undeploy(beanDCtx);
}
}
@@ -104,6 +114,16 @@
assertEquals(beanC, target.getMethodBean());
}
+ public void testXmlInjectAnnotationBeanQualifierAnnotationsForField() throws Throwable
+ {
+ assertBean("beanA", Bean.class);
+ Bean beanB = assertBean("beanB", Bean.class);
+ assertBean("beanC", Bean.class);
+ TargetFieldBean target = assertBean("target", TargetFieldBean.class);
+ assertNotNull(target.getBean());
+ assertEquals(beanB, target.getBean());
+ }
+
public void testAnnotationInjectBeanQualifierAnnotationsIgnoringBeanLevelQualifiers() throws Throwable
{
BeanMetaDataBuilder beanABuilder = BeanMetaDataBuilder.createBuilder("beanA", AnnotatedBeanA.class.getName());
@@ -167,10 +187,10 @@
Bean beanC = assertBean("beanC", Bean.class);
AnnotatedTargetAllBean target = assertBean("target", AnnotatedTargetAllBean.class);
assertNotNull(target.getConstructorBean());
- assertNotNull(target.getFieldBean());
+ assertNotNull(target.getPropertyBean());
assertNotNull(target.getMethodBean());
assertEquals(beanA, target.getConstructorBean());
- assertEquals(beanB, target.getFieldBean());
+ assertEquals(beanB, target.getPropertyBean());
assertEquals(beanC, target.getMethodBean());
}
finally
Added: projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersAnnotatedTestCase#testXmlInjectAnnotationBeanQualifierAnnotationsForField.xml
===================================================================
--- projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersAnnotatedTestCase#testXmlInjectAnnotationBeanQualifierAnnotationsForField.xml (rev 0)
+++ projects/kernel/trunk/kernel/src/test/resources/org/jboss/test/kernel/qualifiers/test/QualifiersAnnotatedTestCase#testXmlInjectAnnotationBeanQualifierAnnotationsForField.xml 2009-12-15 14:09:22 UTC (rev 97842)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="beanA" class="org.jboss.test.kernel.qualifiers.support.Bean">
+ <annotation>@org.jboss.test.kernel.qualifiers.support.Qualifier1</annotation>
+ </bean>
+
+ <bean name="beanB" class="org.jboss.test.kernel.qualifiers.support.Bean">
+ <annotation>@org.jboss.test.kernel.qualifiers.support.Qualifier2</annotation>
+ </bean>
+
+ <bean name="beanC" class="org.jboss.test.kernel.qualifiers.support.Bean">
+ <annotation>@org.jboss.test.kernel.qualifiers.support.Qualifier3</annotation>
+ </bean>
+
+ <bean name="target" class="org.jboss.test.kernel.qualifiers.support.TargetFieldBean" access-mode="ALL">
+ <property name="bean">
+ <annotation>@org.jboss.beans.metadata.api.annotations.Inject</annotation>
+ <annotation>@org.jboss.test.kernel.qualifiers.support.Qualifier2</annotation>
+ <inject/>
+ </property>
+ </bean>
+
+</deployment>
More information about the jboss-cvs-commits
mailing list