[jboss-cvs] JBossAS SVN: r97600 - in projects/jboss-jca/trunk/deployers/src/main: java/org/jboss/jca/deployers/common/validator/rules/mc and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Dec 9 04:45:55 EST 2009


Author: jeff.zhang
Date: 2009-12-09 04:45:55 -0500 (Wed, 09 Dec 2009)
New Revision: 97600

Modified:
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/Validator.java
   projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/rules/mc/MCGetMetaData.java
   projects/jboss-jca/trunk/deployers/src/main/resources/validator.properties
Log:
[JBJCA-201] MCGetMetaData reflection to invoke method

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/Validator.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/Validator.java	2009-12-09 08:27:31 UTC (rev 97599)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/Validator.java	2009-12-09 09:45:55 UTC (rev 97600)
@@ -42,7 +42,7 @@
       "org.jboss.jca.deployers.common.validator.rules.mcf.MCFHashCode",
       "org.jboss.jca.deployers.common.validator.rules.mcf.MCFEquals",
       "org.jboss.jca.deployers.common.validator.rules.mc.MC",
-      "org.jboss.jca.deployers.common.validator.rules.mc.MCMD"
+      "org.jboss.jca.deployers.common.validator.rules.mc.MCGetMetaData"
    };
 
    /**

Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/rules/mc/MCGetMetaData.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/rules/mc/MCGetMetaData.java	2009-12-09 08:27:31 UTC (rev 97599)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/rules/mc/MCGetMetaData.java	2009-12-09 09:45:55 UTC (rev 97600)
@@ -34,6 +34,7 @@
 import java.util.ResourceBundle;
 
 import javax.resource.spi.ManagedConnection;
+import javax.resource.spi.ManagedConnectionMetaData;
 
 /**
  * ManagedConnectionFactory must have an equals implementation
@@ -70,9 +71,24 @@
          {
             try
             {
-               Method equals = clz.getDeclaredMethod("getMetaData", new Class[] {Object.class});
-               if (equals != null)
-                  error = false;
+               Method gmd = clz.getDeclaredMethod("getMetaData", new Class[] {Object.class});
+               if (gmd != null)
+               {
+                  Object md = null;
+                  try
+                  {
+                     md = gmd.invoke(vo.getObject(), (Object[])null);
+                  }
+                  catch (Exception e)
+                  {
+                     //Ignore exception for ResourceException and ResourceAdapterInternalException
+                  }
+                  if (md != null && md instanceof ManagedConnectionMetaData)
+                  {
+                     error = false;
+                  }
+                  break; //exit while cycle since we got getMetaData method
+               }
             }
             catch (Throwable t)
             {

Modified: projects/jboss-jca/trunk/deployers/src/main/resources/validator.properties
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/resources/validator.properties	2009-12-09 08:27:31 UTC (rev 97599)
+++ projects/jboss-jca/trunk/deployers/src/main/resources/validator.properties	2009-12-09 09:45:55 UTC (rev 97600)
@@ -8,6 +8,4 @@
 mcf.MCFHashCode=A ManagedConnectionFactory must implement a "public int hashCode()" method.
 mcf.MCFEquals=A ManagedConnectionFactory must implement a "public boolean equals(Object)" method.
 mc.MC=The class must provide an implementation of the ManagedConnection interface.
-mc.MCMD=The class must implement the javax.resource.spi.ManagedConnectionMetaData interface.
-mc.MCGetMetaData=An instance of this implementation class should be returned from the ManagedConnection.getMetaData method
-
+mc.MCGetMetaData=ManagedConnection.getMetaData() must return a javax.resource.spi.ManagedConnectionMetaData instance




More information about the jboss-cvs-commits mailing list