You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/09/30 21:32:28 UTC
svn commit: r1392096 -
/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Author: rmannibucau
Date: Sun Sep 30 19:32:27 2012
New Revision: 1392096
URL: http://svn.apache.org/viewvc?rev=1392096&view=rev
Log:
handling tomcat jndi url protocol
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1392096&r1=1392095&r2=1392096&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Sun Sep 30 19:32:27 2012
@@ -157,14 +157,39 @@ public class OpenEJBContextConfig extend
@Override
protected void processAnnotationsUrl(URL currentUrl, WebXml fragment, boolean handlesTypeOnly) {
- final File currentUrlAsFile = URLs.toFile(currentUrl);
-
final WebAppInfo webAppInfo = info.get();
if (webAppInfo == null) {
super.processAnnotationsUrl(currentUrl, fragment, handlesTypeOnly);
return;
}
+ File currentUrlAsFile;
+ try {
+ currentUrlAsFile = URLs.toFile(currentUrl);
+ } catch (IllegalArgumentException iae) {
+ if ("jndi".equals(currentUrl.getProtocol())) {
+ String path = webAppInfo.path;
+ if (path.endsWith("/")) {
+ path = path.substring(0, path.length() - 1);
+ }
+
+ final String file = currentUrl.getFile();
+ final String webAppDir = new File(path).getName();
+ final int idx = file.indexOf(webAppDir);
+ if (idx > 0) {
+ String pathUnderWebapp = path + file.substring(idx + webAppDir.length());
+ if (!pathUnderWebapp.startsWith("/")) {
+ pathUnderWebapp = '/' + pathUnderWebapp;
+ }
+ currentUrlAsFile = new File(path + pathUnderWebapp);
+ } else {
+ throw new IllegalArgumentException("can't find path under current webapp deployment [" + webAppInfo.contextRoot + "]");
+ }
+ } else {
+ throw iae;
+ }
+ }
+
internalProcessAnnotations(currentUrlAsFile, webAppInfo, fragment, handlesTypeOnly);
}