You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ri...@apache.org on 2010/10/12 20:39:02 UTC

svn commit: r1021879 - /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java

Author: rickmcguire
Date: Tue Oct 12 18:39:01 2010
New Revision: 1021879

URL: http://svn.apache.org/viewvc?rev=1021879&view=rev
Log:
OPENEJB-1368 ActivationSpec instances should be validated using bean validation. 

Base support.  This is dependent upon OPENEJB-1352 to setup up the Validator and ValidatorFactory JNDI entries. 


Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java?rev=1021879&r1=1021878&r2=1021879&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java Tue Oct 12 18:39:01 2010
@@ -55,6 +55,10 @@ import javax.resource.spi.UnavailableExc
 import javax.resource.ResourceException;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
+import javax.naming.NamingException;
+import javax.validation.ConstraintViolation; 
+import javax.validation.ConstraintViolationException; 
+import javax.validation.Validator; 
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.management.ManagementFactory;
@@ -219,6 +223,17 @@ public class MdbContainer implements Rpc
             } catch (UnsupportedOperationException uoe) {
                 logger.info("ActivationSpec does not support validate. Implementation of validate is optional");
             }
+            // also try validating using Bean Validation if there is a Validator available in the context.
+            try {
+                Validator validator = (Validator)beanContext.getJndiContext().lookup("comp/Validator");
+
+                Set generalSet = validator.validate(activationSpec);
+                if (!generalSet.isEmpty()) {
+                    throw new ConstraintViolationException("Constraint violation for ActivationSpec " + activationSpecClass.getName(), generalSet); 
+                }
+            } catch (NamingException e) {
+                logger.debug("No Validator bound to JNDI context");
+            }
 
 
             // set the resource adapter into the activation spec