[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