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) {