From commits-return-12097-apmail-openejb-commits-archive=openejb.apache.org@openejb.apache.org Tue Oct 12 18:39:25 2010 Return-Path: Delivered-To: apmail-openejb-commits-archive@www.apache.org Received: (qmail 25137 invoked from network); 12 Oct 2010 18:39:25 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 12 Oct 2010 18:39:25 -0000 Received: (qmail 47722 invoked by uid 500); 12 Oct 2010 18:39:25 -0000 Delivered-To: apmail-openejb-commits-archive@openejb.apache.org Received: (qmail 47699 invoked by uid 500); 12 Oct 2010 18:39:25 -0000 Mailing-List: contact commits-help@openejb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@openejb.apache.org Delivered-To: mailing list commits@openejb.apache.org Received: (qmail 47692 invoked by uid 99); 12 Oct 2010 18:39:25 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Oct 2010 18:39:25 +0000 X-ASF-Spam-Status: No, hits=-1999.4 required=10.0 tests=ALL_TRUSTED,HK_RANDOM_ENVFROM X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Oct 2010 18:39:23 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 48B232388A1C; Tue, 12 Oct 2010 18:39:02 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1021879 - /openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java Date: Tue, 12 Oct 2010 18:39:02 -0000 To: commits@openejb.apache.org From: rickmcguire@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101012183902.48B232388A1C@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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