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();


Reply via email to