You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2012/10/01 22:08:10 UTC
svn commit: r1392563 -
/geronimo/server/branches/3.0/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java
Author: gawor
Date: Mon Oct 1 20:08:09 2012
New Revision: 1392563
URL: http://svn.apache.org/viewvc?rev=1392563&view=rev
Log:
GERONIMO-6393: Reuse ValidatorContext to avoid annotation scanning on each Validator lookup
Modified:
geronimo/server/branches/3.0/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java
Modified: geronimo/server/branches/3.0/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/3.0/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java?rev=1392563&r1=1392562&r2=1392563&view=diff
==============================================================================
--- geronimo/server/branches/3.0/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java (original)
+++ geronimo/server/branches/3.0/plugins/bval/geronimo-bval/src/main/java/org/apache/geronimo/bval/DefaultValidatorReference.java Mon Oct 1 20:08:09 2012
@@ -17,13 +17,14 @@
* under the License.
*/
-
package org.apache.geronimo.bval;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.validation.Validation;
import javax.validation.ValidationException;
+import javax.validation.Validator;
+import javax.validation.ValidatorContext;
import javax.validation.ValidatorFactory;
import org.apache.xbean.naming.reference.SimpleReference;
@@ -32,20 +33,27 @@ import org.apache.xbean.naming.reference
* @version $Rev$ $Date$
*/
public class DefaultValidatorReference extends SimpleReference {
+
+ private transient ValidatorContext validatorContext;
+
@Override
public Object getContent() throws NamingException {
- ValidatorFactory factory = null;
-
- try {
+ if (validatorContext == null) {
try {
- factory = (ValidatorFactory)new InitialContext().lookup("java:comp/ValidatorFactory");
- } catch(NamingException e) {
- factory = Validation.buildDefaultValidatorFactory();
+ ValidatorFactory factory = getValidatorFactory();
+ validatorContext = factory.usingContext();
+ } catch (ValidationException v) {
+ throw (NamingException)new NamingException("Could not create Validator instance").initCause(v);
}
- return factory.getValidator();
- } catch (ValidationException v) {
- throw (NamingException)new NamingException("Could not create Validator instance").initCause(v);
}
-
+ return validatorContext.getValidator();
+ }
+
+ private ValidatorFactory getValidatorFactory() {
+ try {
+ return (ValidatorFactory)new InitialContext().lookup("java:comp/ValidatorFactory");
+ } catch(NamingException e) {
+ return Validation.buildDefaultValidatorFactory();
+ }
}
-}
\ No newline at end of file
+}