[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