[jboss-cvs] JBossAS SVN: r110938 - in projects/jboss-jca/trunk: deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16annoadminobj and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Mar 17 04:30:50 EDT 2011


Author: jeff.zhang
Date: 2011-03-17 04:30:49 -0400 (Thu, 17 Mar 2011)
New Revision: 110938

Modified:
   projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/annotations/Annotations.java
   projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16annoadminobj/TestAdminObject.java
   projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16annoconndefs/TestAdminObject.java
   projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/testcases/Ra16annoAdminObjectTestCase.java
   projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/rar/xa/XAResourceAdapter.java
Log:
[JBJCA-526] @ConfigProperty support in the admin object class

Modified: projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/annotations/Annotations.java
===================================================================
--- projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/annotations/Annotations.java	2011-03-17 07:16:46 UTC (rev 110937)
+++ projects/jboss-jca/trunk/common/src/main/java/org/jboss/jca/common/annotations/Annotations.java	2011-03-17 08:30:49 UTC (rev 110938)
@@ -82,6 +82,7 @@
 /**
  * The annotation processor for JCA 1.6
  * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
+ * @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a>
  */
 public class Annotations
 {
@@ -91,7 +92,7 @@
 
    private enum Metadatas
    {
-      RA, ACTIVATION_SPEC, MANAGED_CONN_FACTORY;
+      RA, ACTIVATION_SPEC, MANAGED_CONN_FACTORY, ADMIN_OBJECT;
    };
 
    /**
@@ -196,7 +197,8 @@
       //md = processAuthenticationMechanism(md, annotationRepository);
 
       // @AdministeredObject
-      ArrayList<AdminObject> adminObjs = processAdministeredObject(annotationRepository, classLoader);
+      ArrayList<AdminObject> adminObjs = processAdministeredObject(annotationRepository, classLoader, 
+         configPropertiesMap == null ? null : configPropertiesMap.get(Metadatas.ADMIN_OBJECT));
 
       //log.debug("ConnectorMetadata " + md);
 
@@ -690,6 +692,14 @@
                   }
                   valueMap.get(Metadatas.ACTIVATION_SPEC).add(cfgMeta);
                }
+               else if (hasAnnotation(attachedClass, AdministeredObject.class, annotationRepository))
+               {
+                  if (valueMap.get(Metadatas.ADMIN_OBJECT) == null)
+                  {
+                     valueMap.put(Metadatas.ADMIN_OBJECT, new ArrayList<ConfigProperty16>());
+                  }
+                  valueMap.get(Metadatas.ADMIN_OBJECT).add(cfgMeta);
+               }
             }
          }
          if (valueMap.get(Metadatas.RA) != null)
@@ -698,6 +708,8 @@
             valueMap.get(Metadatas.MANAGED_CONN_FACTORY).trimToSize();
          if (valueMap.get(Metadatas.ACTIVATION_SPEC) != null)
             valueMap.get(Metadatas.ACTIVATION_SPEC).trimToSize();
+         if (valueMap.get(Metadatas.ADMIN_OBJECT) != null)
+            valueMap.get(Metadatas.ADMIN_OBJECT).trimToSize();
          return valueMap;
       }
 
@@ -740,17 +752,40 @@
       }
       return false;
    }
+   
+   /**
+    * hasAnnotation, if class c contains annotation targetClass
+    *
+    * @param c 
+    * @param targetClass
+    * @param annotationRepository
+    * @return
+    */
+   private boolean hasAnnotation(Class c, Class targetClass, AnnotationRepository annotationRepository)
+   {
+      Collection<Annotation> values = annotationRepository.getAnnotation(targetClass);
+      if (values == null)
+         return false;
+      for (Annotation annotation : values)
+      {
+         if (annotation.getClassName().equals(c.getName()));
+            return true;
+      }
+      return false;
+   
+   }
 
    /**
     * Process: @AdministeredObject
     * @param md The metadata
     * @param annotationRepository The annotation repository
     * @param classLoader the classloadedr used to load annotated class
+    * @param configProperties
     * @return The updated metadata
     * @exception Exception Thrown if an error occurs
     */
    private ArrayList<AdminObject> processAdministeredObject(AnnotationRepository annotationRepository,
-      ClassLoader classLoader)
+      ClassLoader classLoader, ArrayList<ConfigProperty16> configProperties)
       throws Exception
    {
       ArrayList<AdminObject> adminObjs = null;
@@ -793,7 +828,7 @@
             XsdString adminobjectInterface = new XsdString(aoName, null);
             XsdString adminobjectClass = new XsdString(aoClassName, null);
 
-            adminObjs.add(new AdminObjectImpl(adminobjectInterface, adminobjectClass, null, null));
+            adminObjs.add(new AdminObjectImpl(adminobjectInterface, adminobjectClass, configProperties, null));
          }
       }
 

Modified: projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16annoadminobj/TestAdminObject.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16annoadminobj/TestAdminObject.java	2011-03-17 07:16:46 UTC (rev 110937)
+++ projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16annoadminobj/TestAdminObject.java	2011-03-17 08:30:49 UTC (rev 110938)
@@ -37,7 +37,7 @@
 @AdministeredObject
 public class TestAdminObject implements Serializable, Referenceable
 {
-
+   /** reference */
    Reference reference;
 
    @ConfigProperty(type = String.class, defaultValue = "InAO")

Modified: projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16annoconndefs/TestAdminObject.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16annoconndefs/TestAdminObject.java	2011-03-17 07:16:46 UTC (rev 110937)
+++ projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/ra16annoconndefs/TestAdminObject.java	2011-03-17 08:30:49 UTC (rev 110938)
@@ -21,6 +21,7 @@
  */
 package org.jboss.jca.test.deployers.spec.rars.ra16annoconndefs;
 
+import javax.resource.spi.AdministeredObject;
 import javax.resource.spi.ConfigProperty;
 
 /**
@@ -28,6 +29,7 @@
  * @author <a href="mailto:jeff.zhang at jboss.org">Jeff Zhang</a>
  * @version $Revision: $
  */
+ at AdministeredObject
 public class TestAdminObject
 {
    @ConfigProperty(type = String.class, defaultValue = "InAO")

Modified: projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/testcases/Ra16annoAdminObjectTestCase.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/testcases/Ra16annoAdminObjectTestCase.java	2011-03-17 07:16:46 UTC (rev 110937)
+++ projects/jboss-jca/trunk/deployers/src/test/java/org/jboss/jca/test/deployers/spec/rars/testcases/Ra16annoAdminObjectTestCase.java	2011-03-17 08:30:49 UTC (rev 110938)
@@ -31,10 +31,14 @@
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.spec.ResourceAdapterArchive;
 
+import static org.hamcrest.core.Is.is;
+
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertNotNull;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
-import static org.junit.Assert.assertNotNull;
 
 /**
  * Test cases for deploying resource adapter archives (.RAR) using -ra.xml files
@@ -86,8 +90,7 @@
    public void testBasic() throws Throwable
    {
       assertNotNull(adminObj);
-      //assertThat(adminObj.getMyStringProperty(), is("InAO"));
-
+      assertThat(adminObj.getMyStringProperty(), is("InAO"));
    }
 
 }

Modified: projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/rar/xa/XAResourceAdapter.java
===================================================================
--- projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/rar/xa/XAResourceAdapter.java	2011-03-17 07:16:46 UTC (rev 110937)
+++ projects/jboss-jca/trunk/rhq/src/test/java/org/jboss/jca/rhq/rar/xa/XAResourceAdapter.java	2011-03-17 08:30:49 UTC (rev 110938)
@@ -49,7 +49,6 @@
 @Connector(
    reauthenticationSupport = false,
    transactionSupport = TransactionSupport.TransactionSupportLevel.XATransaction)
- at AdministeredObject(adminObjectInterfaces = { XAAdminObjectImpl.class })
 public class XAResourceAdapter implements ResourceAdapter
 {
 



More information about the jboss-cvs-commits mailing list