Author: rmannibucau Date: Thu Jul 18 08:48:10 2013 New Revision: 1504391 URL: http://svn.apache.org/r1504391 Log: TOMEE-1006 handling custom rest servlets
Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1504391&r1=1504390&r2=1504391&view=diff ============================================================================== --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java Thu Jul 18 08:48:10 2013 @@ -58,6 +58,7 @@ import org.apache.tomee.common.ResourceF import org.apache.tomee.loader.TomcatHelper; import javax.servlet.ServletContainerInitializer; +import javax.servlet.http.HttpServlet; import javax.ws.rs.core.Application; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -180,9 +181,16 @@ public class OpenEJBContextConfig extend } // cleanup - for (String clazz : webAppInfo.restApplications) { + for (final String clazz : webAppInfo.restApplications) { final Container child = mappedChildren.get(clazz); - if (child != null) { + try { // remove only "fake" servlets to let users use their own stuff + final String servletClass = StandardWrapper.class.cast(child).getServletClass(); + if (child != null && ("org.apache.openejb.server.rest.OpenEJBRestServlet".equals(servletClass) || !HttpServlet.class.isAssignableFrom(info.loader().loadClass(servletClass)))) { + context.removeChild(child); + } + } catch (final NoClassDefFoundError e) { + context.removeChild(child); + } catch (final ClassNotFoundException e) { context.removeChild(child); } } Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1504391&r1=1504390&r2=1504391&view=diff ============================================================================== --- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java (original) +++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java Thu Jul 18 08:48:10 2013 @@ -905,6 +905,13 @@ public class TomcatWebAppBuilder impleme return null; } + public ClassLoader loader() { + if (standardContext != null && standardContext.getLoader() != null) { + return standardContext.getLoader().getClassLoader(); + } + return null; + } + @Override public String toString() { if (standardContext == null) return super.toString();