You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ri...@apache.org on 2010/10/22 11:32:49 UTC

svn commit: r1026266 - in /geronimo/server/trunk: plugins/bval/geronimo-bval-builder/src/main/java/org/apache/geronimo/bval/deployment/ plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/ testsuite/javaee6-testsuite/beanvalidation-tests/...

Author: rickmcguire
Date: Fri Oct 22 09:32:49 2010
New Revision: 1026266

URL: http://svn.apache.org/viewvc?rev=1026266&view=rev
Log:
Fix bean validation tck deploy errors

Added:
    geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/ValidatorFactoryResourceReference.java   (with props)
Modified:
    geronimo/server/trunk/plugins/bval/geronimo-bval-builder/src/main/java/org/apache/geronimo/bval/deployment/BValNamingBuilder.java
    geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java
    geronimo/server/trunk/testsuite/javaee6-testsuite/beanvalidation-tests/beanvalidation-web-test/src/main/java/org/apache/geronimo/sample/RegisterValidation/Action/submitInfo.java

Modified: geronimo/server/trunk/plugins/bval/geronimo-bval-builder/src/main/java/org/apache/geronimo/bval/deployment/BValNamingBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/bval/geronimo-bval-builder/src/main/java/org/apache/geronimo/bval/deployment/BValNamingBuilder.java?rev=1026266&r1=1026265&r2=1026266&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/bval/geronimo-bval-builder/src/main/java/org/apache/geronimo/bval/deployment/BValNamingBuilder.java (original)
+++ geronimo/server/trunk/plugins/bval/geronimo-bval-builder/src/main/java/org/apache/geronimo/bval/deployment/BValNamingBuilder.java Fri Oct 22 09:32:49 2010
@@ -28,6 +28,7 @@ import javax.validation.ValidatorFactory
 
 import org.apache.geronimo.bval.DefaultValidatorFactoryReference;
 import org.apache.geronimo.bval.DefaultValidatorReference;
+import org.apache.geronimo.bval.ValidatorFactoryResourceReference;
 import org.apache.geronimo.common.DeploymentException;
 import org.apache.geronimo.gbean.AbstractName;
 import org.apache.geronimo.gbean.annotation.GBean;
@@ -72,7 +73,7 @@ public class BValNamingBuilder extends A
             moduleContext.getGBeanInstance(abstractName);
             String osgiJndiName = module.getEarContext().getNaming().toOsgiJndiName(abstractName);
             String filter = "(osgi.jndi.service.name=" + osgiJndiName + ')';
-            put("java:comp/ValidatorFactory", new ResourceReference<ValidationException>(filter, ValidatorFactory.class.getName()), module.getJndiContext(), Collections.<InjectionTarget>emptyList(), sharedContext);
+            put("java:comp/ValidatorFactory", new ValidatorFactoryResourceReference(filter, ValidatorFactory.class.getName()), module.getJndiContext(), Collections.<InjectionTarget>emptyList(), sharedContext);
         } catch (GBeanNotFoundException e) {
             // if we can't find one on the module, then bind to a default validator factory 
             put("java:comp/ValidatorFactory", new DefaultValidatorFactoryReference(), module.getJndiContext(), Collections.<InjectionTarget>emptyList(), sharedContext);

Modified: geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java?rev=1026266&r1=1026265&r2=1026266&view=diff
==============================================================================
--- geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java (original)
+++ geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java Fri Oct 22 09:32:49 2010
@@ -23,6 +23,7 @@ package org.apache.geronimo.bval;
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import javax.validation.Validation;
+import javax.validation.ValidationException;
 import javax.validation.ValidatorFactory;
 
 import org.apache.xbean.naming.reference.SimpleReference;
@@ -36,11 +37,15 @@ public class DefaultValidatorReference e
         ValidatorFactory factory = null;
         
         try {
-            factory = (ValidatorFactory)new InitialContext().lookup("java:comp/ValidatorFactory");
-        } catch(NamingException e) {
-            factory = Validation.buildDefaultValidatorFactory();
+            try {
+                factory = (ValidatorFactory)new InitialContext().lookup("java:comp/ValidatorFactory");
+            } catch(NamingException e) {
+                factory = Validation.buildDefaultValidatorFactory();
+            }
+            return factory.getValidator();
+        } catch (ValidationException v) {
+            throw (NamingException)new NamingException("Could not create Validator instance").initCause(v);
         }
         
-        return factory.getValidator();
     }
 }
\ No newline at end of file

Added: geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/ValidatorFactoryResourceReference.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/ValidatorFactoryResourceReference.java?rev=1026266&view=auto
==============================================================================
--- geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/ValidatorFactoryResourceReference.java (added)
+++ geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/ValidatorFactoryResourceReference.java Fri Oct 22 09:32:49 2010
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.geronimo.bval;
+ 
+import javax.naming.NamingException;
+import javax.validation.Validation;
+import javax.validation.ValidationException;
+import javax.validation.ValidatorFactory;
+
+import org.apache.geronimo.naming.reference.ResourceReference;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class ValidatorFactoryResourceReference extends ResourceReference<ValidationException> {
+
+    public ValidatorFactoryResourceReference(String query, String type) {
+        super(query, type);
+    }
+    
+    @Override
+    public Object getContent() throws NamingException {
+        // get the associated reference and use that to request the validator 
+        try {
+            return (ValidatorFactory)super.getContent();
+        } catch (ValidationException e) {
+            // turn any creation errors into a NamingException 
+            throw (NamingException)new NamingException("Could not create ValidatorFactory instance").initCause(e);
+        }
+    }
+}
+
+

Propchange: geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/ValidatorFactoryResourceReference.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/ValidatorFactoryResourceReference.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/server/trunk/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/ValidatorFactoryResourceReference.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: geronimo/server/trunk/testsuite/javaee6-testsuite/beanvalidation-tests/beanvalidation-web-test/src/main/java/org/apache/geronimo/sample/RegisterValidation/Action/submitInfo.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/testsuite/javaee6-testsuite/beanvalidation-tests/beanvalidation-web-test/src/main/java/org/apache/geronimo/sample/RegisterValidation/Action/submitInfo.java?rev=1026266&r1=1026265&r2=1026266&view=diff
==============================================================================
--- geronimo/server/trunk/testsuite/javaee6-testsuite/beanvalidation-tests/beanvalidation-web-test/src/main/java/org/apache/geronimo/sample/RegisterValidation/Action/submitInfo.java (original)
+++ geronimo/server/trunk/testsuite/javaee6-testsuite/beanvalidation-tests/beanvalidation-web-test/src/main/java/org/apache/geronimo/sample/RegisterValidation/Action/submitInfo.java Fri Oct 22 09:32:49 2010
@@ -101,6 +101,11 @@ public class submitInfo extends HttpServ
             InitialContext ctx = new InitialContext();
             vf = (ValidatorFactory)ctx.lookup("java:comp/ValidatorFactory");
             validator = (Validator)ctx.lookup("java:comp/Validator");
+            Validator validator2 = (Validator)ctx.lookup("java:comp/Validator");
+            if (validator == validator2) {
+                message += "<b>JNDI Validator is a singleton<br>";
+                violationSize += 1; 
+            }
         } catch (NamingException e) {
             // log this as a violation 
             message += "<b>Unable to obtain validator from JNDI:</b>" + e.getMessage() + "<br>";