[jboss-cvs] JBossAS SVN: r97528 - 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
Tue Dec 8 03:53:16 EST 2009
Author: jeff.zhang
Date: 2009-12-08 03:53:15 -0500 (Tue, 08 Dec 2009)
New Revision: 97528
Added:
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/MCMD.java
Modified:
projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/Key.java
projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/Validator.java
projects/jboss-jca/trunk/deployers/src/main/resources/validator.properties
Log:
[JBJCA-201] add MCMD and MCGetMetaData rules
Modified: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/Key.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/Key.java 2009-12-08 08:38:08 UTC (rev 97527)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/Key.java 2009-12-08 08:53:15 UTC (rev 97528)
@@ -42,6 +42,9 @@
/** Managed connection */
public static final int MANAGED_CONNECTION = 4;
+ /** Managed connection metadata */
+ public static final int MANAGED_CONNECTION_METADATA = 5;
+
/**
* Constructor
*/
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-08 08:38:08 UTC (rev 97527)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/Validator.java 2009-12-08 08:53:15 UTC (rev 97528)
@@ -41,7 +41,9 @@
"org.jboss.jca.deployers.common.validator.rules.mcf.MCF",
"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.MC",
+ "org.jboss.jca.deployers.common.validator.rules.mc.MCMD",
+ "org.jboss.jca.deployers.common.validator.rules.mc.MCGetMetaData"
};
/**
Added: 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 (rev 0)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/rules/mc/MCGetMetaData.java 2009-12-08 08:53:15 UTC (rev 97528)
@@ -0,0 +1,100 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, 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.jca.deployers.common.validator.rules.mc;
+
+import org.jboss.jca.deployers.common.validator.Failure;
+import org.jboss.jca.deployers.common.validator.Key;
+import org.jboss.jca.deployers.common.validator.Rule;
+import org.jboss.jca.deployers.common.validator.Severity;
+import org.jboss.jca.deployers.common.validator.ValidateObject;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.ResourceBundle;
+
+import javax.resource.spi.ManagedConnection;
+
+/**
+ * ManagedConnectionFactory must have an equals implementation
+ */
+public class MCGetMetaData implements Rule
+{
+ /** Section */
+ private static final String SECTION = "6.5.5.2";
+
+ /**
+ * Constructor
+ */
+ public MCGetMetaData()
+ {
+ }
+
+ /**
+ * Validate
+ * @param vo The validate object
+ * @param rb The resource bundle
+ * @return The list of failures found; <code>null</code> if none
+ */
+ @SuppressWarnings("unchecked")
+ public List<Failure> validate(ValidateObject vo, ResourceBundle rb)
+ {
+ if (vo != null &&
+ Key.MANAGED_CONNECTION == vo.getKey() &&
+ vo.getObject() instanceof ManagedConnection)
+ {
+ boolean error = true;
+ Class clz = vo.getObject().getClass();
+
+ while (error && !clz.equals(Object.class))
+ {
+ try
+ {
+ Method equals = clz.getDeclaredMethod("getMetaData", new Class[] {Object.class});
+ if (equals != null)
+ error = false;
+ }
+ catch (Throwable t)
+ {
+ clz = clz.getSuperclass();
+ }
+ }
+
+ if (error)
+ {
+ List<Failure> failures = new ArrayList<Failure>(1);
+
+ Failure failure = new Failure(Severity.ERROR,
+ SECTION,
+ rb.getString("mc.MCGetMetaData"),
+ vo.getObject().getClass().getName());
+ failures.add(failure);
+
+ return failures;
+ }
+ }
+
+ return null;
+ }
+}
+
Added: projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/rules/mc/MCMD.java
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/rules/mc/MCMD.java (rev 0)
+++ projects/jboss-jca/trunk/deployers/src/main/java/org/jboss/jca/deployers/common/validator/rules/mc/MCMD.java 2009-12-08 08:53:15 UTC (rev 97528)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008-2009, 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.jca.deployers.common.validator.rules.mc;
+
+import org.jboss.jca.deployers.common.validator.Failure;
+import org.jboss.jca.deployers.common.validator.Key;
+import org.jboss.jca.deployers.common.validator.Rule;
+import org.jboss.jca.deployers.common.validator.Severity;
+import org.jboss.jca.deployers.common.validator.ValidateObject;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.ResourceBundle;
+
+import javax.resource.spi.ManagedConnectionMetaData;
+
+/**
+ * Must provide an implementation of the ManagedConnectionMetaData interface.
+ */
+public class MCMD implements Rule
+{
+ /** Section */
+ private static final String SECTION = "6.5.5.2";
+
+ /**
+ * Constructor
+ */
+ public MCMD()
+ {
+ }
+
+ /**
+ * Validate
+ * @param vo The validate object
+ * @param rb The resource bundle
+ * @return The list of failures found; <code>null</code> if none
+ */
+ @SuppressWarnings("unchecked")
+ public List<Failure> validate(ValidateObject vo, ResourceBundle rb)
+ {
+ if (vo != null && Key.MANAGED_CONNECTION_METADATA == vo.getKey())
+ {
+ if (!(vo.getObject() instanceof ManagedConnectionMetaData))
+ {
+ List<Failure> failures = new ArrayList<Failure>(1);
+
+ Failure failure = new Failure(Severity.ERROR,
+ SECTION,
+ rb.getString("mc.MCMD"),
+ vo.getObject().getClass().getName());
+ failures.add(failure);
+
+ return failures;
+ }
+ }
+
+ return null;
+ }
+}
+
Modified: projects/jboss-jca/trunk/deployers/src/main/resources/validator.properties
===================================================================
--- projects/jboss-jca/trunk/deployers/src/main/resources/validator.properties 2009-12-08 08:38:08 UTC (rev 97527)
+++ projects/jboss-jca/trunk/deployers/src/main/resources/validator.properties 2009-12-08 08:53:15 UTC (rev 97528)
@@ -8,3 +8,6 @@
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
+
More information about the jboss-cvs-commits
mailing list