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 {