Author: rmannibucau
Date: Sun Mar  3 21:30:41 2013
New Revision: 1452132

URL: http://svn.apache.org/r1452132
Log:
trying to make tcks passing with 1.5.x branch

Modified:
    
tomee/tomee/branches/tomee-1.5.x/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java

Modified: 
tomee/tomee/branches/tomee-1.5.x/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.5.x/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java?rev=1452132&r1=1452131&r2=1452132&view=diff
==============================================================================
--- 
tomee/tomee/branches/tomee-1.5.x/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
 (original)
+++ 
tomee/tomee/branches/tomee-1.5.x/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/OpenEJBContextConfig.java
 Sun Mar  3 21:30:41 2013
@@ -38,6 +38,8 @@ import org.apache.openejb.loader.SystemI
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.URLs;
+import org.apache.tomcat.util.bcel.classfile.AnnotationEntry;
+import org.apache.tomcat.util.bcel.classfile.ElementValuePair;
 import org.apache.tomcat.util.digester.Digester;
 import org.apache.tomee.common.NamingUtil;
 import org.apache.tomee.common.ResourceFactory;
@@ -132,6 +134,35 @@ public class OpenEJBContextConfig extend
     }
 
     @Override
+    protected void processAnnotationWebServlet(final String className, final 
AnnotationEntry ae, final WebXml fragment) {
+        try {
+            super.processAnnotationWebServlet(className, ae, fragment);
+        } catch (IllegalArgumentException iae) {
+            // otherwise TCKs are not passing, hope to be able to let it with 
next TCK versions
+
+            String[] urlPatterns = null;
+            for (ElementValuePair evp : ae.getElementValuePairs()) {
+                String name = evp.getNameString();
+                if ("value".equals(name) || "urlPatterns".equals(name)) {
+                    urlPatterns = 
processAnnotationsStringArray(evp.getValue());
+                    break;
+                }
+            }
+
+            if (urlPatterns != null) {
+                for (String pattern : urlPatterns) {
+                    if (fragment.getServletMappings().containsKey(pattern)) {
+                        logger.warning(iae.getMessage(), iae);
+                        return;
+                    }
+                }
+            }
+
+            throw iae;
+        }
+    }
+
+    @Override
     protected void contextConfig(final Digester digester) {
         final NamingResources resources;
         if (context != null) {


Reply via email to