Author: rmannibucau
Date: Mon Aug 22 14:16:45 2011
New Revision: 1160273

URL: http://svn.apache.org/viewvc?rev=1160273&view=rev
Log:
adding the default validator and validator factory in the remote client - 
configuration still to manage

Modified:
    
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
    
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
    
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java

Modified: 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java?rev=1160273&r1=1160272&r2=1160273&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 (original)
+++ 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/AnnotationDeployer.java
 Mon Aug 22 14:16:45 2011
@@ -1535,6 +1535,7 @@ public class AnnotationDeployer implemen
                 }
             }
 
+            /* TODO: still useful?
             List<String> unusableTypes = new 
ArrayList<String>(knownResourceEnvTypes);
             unusableTypes.remove("javax.jms.Topic");
             unusableTypes.remove("javax.jms.Queue");
@@ -1555,6 +1556,7 @@ public class AnnotationDeployer implemen
                     }
                 }
             }
+            */
         }
 
         public ConnectorModule deploy(ConnectorModule connectorModule) throws 
OpenEJBException {
@@ -3673,6 +3675,9 @@ public class AnnotationDeployer implemen
             try {
                 return cls.getMethod("lookup", null);
             } catch (NoSuchMethodException e) {
+                logger.error("lookup method is not available for " + 
cls.getName()
+                        + ". You probably have an old API in the classpath."
+                        + "Tomcat is known to have an old annotation-api.jar, 
maybe you should replace it.");
                 return null;
             }
         }

Modified: 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java?rev=1160273&r1=1160272&r2=1160273&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-client/src/main/java/org/apache/openejb/client/JNDIContext.java
 Mon Aug 22 14:16:45 2011
@@ -18,7 +18,6 @@ package org.apache.openejb.client;
 
 import org.omg.CORBA.ORB;
 
-import java.io.Serializable;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.ConnectException;
@@ -32,6 +31,9 @@ import javax.naming.*;
 import javax.naming.spi.InitialContextFactory;
 import javax.naming.spi.NamingManager;
 import javax.sql.DataSource;
+import javax.validation.Validation;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
 
 /** 
  * @version $Rev$ $Date$
@@ -40,6 +42,8 @@ public class JNDIContext implements Init
 
     public static final String DEFAULT_PROVIDER_URL = "ejbd://localhost:4201";
 
+    private static ValidatorFactory DEFAULT_VALIDATOR_FACTORY;
+
     private String tail = "/";
     private ServerMetaData server;
     private ClientMetaData client;
@@ -242,6 +246,13 @@ public class JNDIContext implements Init
                 String type = (String) res.getResult();
                 value = System.getProperty("Resource/" + type);
                 if (value == null) {
+                    if (Validator.class.getName().equals(type)) {
+                        return getValidatorFactory().getValidator();
+                    } else {
+                        if (ValidatorFactory.class.getName().equals(type)) {
+                            return getValidatorFactory();
+                        }
+                    }
                     return null;
                 }
                 return parseEntry(prop, value);
@@ -275,6 +286,17 @@ public class JNDIContext implements Init
         }
     }
 
+    private ValidatorFactory getValidatorFactory() {
+        if (DEFAULT_VALIDATOR_FACTORY == null) {
+            synchronized (this) {
+                if (DEFAULT_VALIDATOR_FACTORY == null) {
+                    DEFAULT_VALIDATOR_FACTORY = 
Validation.buildDefaultValidatorFactory();
+                }
+            }
+        }
+        return DEFAULT_VALIDATOR_FACTORY;
+    }
+
     private Object parseEntry(String name, String value) throws 
NamingException {
         try {
             URI uri = new URI(value);

Modified: 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java?rev=1160273&r1=1160272&r2=1160273&view=diff
==============================================================================
--- 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
 (original)
+++ 
openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
 Mon Aug 22 14:16:45 2011
@@ -35,6 +35,8 @@ import javax.naming.NamingEnumeration;
 import javax.naming.NamingException;
 import javax.resource.Referenceable;
 import javax.sql.DataSource;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
 import javax.xml.namespace.QName;
 
 import org.apache.openejb.BeanContext;
@@ -227,6 +229,14 @@ class JndiRequestHandler {
                 res.setResponseCode(ResponseCodes.JNDI_RESOURCE);
                 res.setResult(ORB.class.getName());
                 return;
+            } else if (object instanceof ValidatorFactory) {
+                res.setResponseCode(ResponseCodes.JNDI_RESOURCE);
+                res.setResult(ValidatorFactory.class.getName());
+                return;
+            } else if (object instanceof Validator) {
+                res.setResponseCode(ResponseCodes.JNDI_RESOURCE);
+                res.setResult(Validator.class.getName());
+                return;
             }
 
             ServiceRefData serviceRef;


Reply via email to