[jboss-cvs] JBossAS SVN: r110945 - projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/ra.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Mar 18 00:10:20 EDT 2011
Author: gaol
Date: 2011-03-18 00:10:19 -0400 (Fri, 18 Mar 2011)
New Revision: 110945
Modified:
projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/ra/AoResourceComponent.java
Log:
[JBJCA-521] gets interface-class-name of AoResourceComponent
Modified: projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/ra/AoResourceComponent.java
===================================================================
--- projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/ra/AoResourceComponent.java 2011-03-17 20:31:49 UTC (rev 110944)
+++ projects/jboss-jca/trunk/rhq/src/main/java/org/jboss/jca/rhq/ra/AoResourceComponent.java 2011-03-18 04:10:19 UTC (rev 110945)
@@ -29,8 +29,12 @@
import org.jboss.jca.rhq.core.ManagementRepositoryManager;
import org.jboss.jca.rhq.util.ManagementRepositoryHelper;
+import java.io.Serializable;
+import java.util.ArrayList;
import java.util.List;
+import javax.resource.Referenceable;
+import javax.resource.spi.AdministeredObject;
import javax.resource.spi.ResourceAdapterAssociation;
import org.jboss.logging.Logger;
@@ -101,6 +105,9 @@
config.put(intfClsNameProp);
// interface-class-name
+ String aoIntfClsName = getAdminObjectInterfaceClassName(obj.getClass());
+ PropertySimple aoIntfClsNameProp = new PropertySimple("interface-class-name", aoIntfClsName);
+ config.put(aoIntfClsNameProp);
// use-ra-association
boolean useRaAsso = ResourceAdapterAssociation.class.isAssignableFrom(obj.getClass());
@@ -115,6 +122,60 @@
return config;
}
+ /**
+ * Gets AdminObject interfaces class name string.
+ *
+ * @param aoCls AdminObject class
+ * @return string represents all interfaces class names, connected by ', '.
+ */
+ private String getAdminObjectInterfaceClassName(Class<? extends Object> aoCls)
+ {
+ List<Class<?>> intfClsList = new ArrayList<Class<?>>();
+ AdministeredObject aoAnnotation = aoCls.getAnnotation(AdministeredObject.class);
+ if (aoAnnotation != null)
+ {
+ Class<?>[] intfCls = aoAnnotation.adminObjectInterfaces();
+ if (null != intfCls)
+ {
+ for (Class<?> cls : intfCls)
+ {
+ intfClsList.add(cls);
+ }
+ }
+ }
+ Class<?>[] intfs = aoCls.getInterfaces();
+ for (Class<?> intf : intfs)
+ {
+ if (intf.equals(Serializable.class) || intf.equals(Referenceable.class))
+ {
+ continue;
+ }
+ else if (intf.getName().startsWith("javax.resource.spi"))
+ {
+ continue;
+ }
+ else if (intf.getName().startsWith("javax.naming"))
+ {
+ continue;
+ }
+ if (!intfClsList.contains(intf))
+ {
+ intfClsList.add(intf);
+ }
+ }
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i< intfClsList.size(); i ++)
+ {
+ Class<?> cls = intfClsList.get(i);
+ sb.append(cls.getName());
+ if (i < intfClsList.size() - 1)
+ {
+ sb.append(", ");
+ }
+ }
+ return sb.toString();
+ }
+
@Override
public void updateResourceConfiguration(ConfigurationUpdateReport updateResourceConfiguration)
{
More information about the jboss-cvs-commits
mailing list