Author: rmannibucau
Date: Mon Sep 22 17:12:48 2014
New Revision: 1626843

URL: http://svn.apache.org/r1626843
Log:
TOMEE-1356 better TomcatResourceFactory impl - case where no factory

Modified:
    
tomee/tomee/branches/tomee-1.7.x/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatResourceFactory.java

Modified: 
tomee/tomee/branches/tomee-1.7.x/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatResourceFactory.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatResourceFactory.java?rev=1626843&r1=1626842&r2=1626843&view=diff
==============================================================================
--- 
tomee/tomee/branches/tomee-1.7.x/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatResourceFactory.java
 (original)
+++ 
tomee/tomee/branches/tomee-1.7.x/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatResourceFactory.java
 Mon Sep 22 17:12:48 2014
@@ -22,8 +22,10 @@ import org.apache.openejb.util.LogCatego
 import org.apache.openejb.util.Logger;
 
 import javax.naming.CompositeName;
+import javax.naming.InvalidNameException;
 import javax.naming.NamingException;
 import javax.naming.Reference;
+import javax.naming.spi.NamingManager;
 import javax.naming.spi.ObjectFactory;
 
 public class TomcatResourceFactory {
@@ -33,9 +35,14 @@ public class TomcatResourceFactory {
     private String appName;
     private String factory;
     private Reference reference;
+    private CompositeName name;
 
     public void setJndiName(final String jndiName) {
-        this.jndiName = jndiName;
+        try {
+            name = new CompositeName(jndiName);
+        } catch (final InvalidNameException e) {
+            throw new IllegalArgumentException(e);
+        }
     }
 
     public void setAppName(final String appName) {
@@ -70,9 +77,13 @@ public class TomcatResourceFactory {
                 if (instance instanceof ObjectFactory) {
                     // not really used as expected but it matches a bit more 
than before
                     // context is null since it can't be used at this moment 
(see TomcatWebAppBuilder lifecycle)
-                    return ((ObjectFactory) 
instance).getObjectInstance(reference, new CompositeName(jndiName), null, null);
+                    return ((ObjectFactory) 
instance).getObjectInstance(reference, name, null, null);
                 }
             }
+            if (reference != null) {
+                return NamingManager.getObjectInstance(reference, name, null, 
null);
+            }
+            throw new IllegalStateException("nothing to create the resource " 
+ jndiName);
         } catch (final Exception e) {
             LOGGER.error("Can't create resource " + jndiName, e);
         } finally {


Reply via email to