TomEE
  1. TomEE
  2. TOMEE-144

Eliminate servlet-specific double scan

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.0.0
    • Component/s: None
    • Labels:
      None

      Description

      Lack of cooperation at a code level causes the classpath to be scanned extra time while processing @WebServlet, @WebFilter and similar.

        Issue Links

          Activity

          Show
          David Blevins added a comment - 2012-04-05 - http://svn.apache.org/viewvc?view=revision&revision=1310035 - dblevins 2012-04-07 - http://svn.apache.org/viewvc?view=revision&revision=1310947 - dblevins
          Hide
          David Blevins added a comment -

          ContextConfig line 1821

          protected void processAnnotationsUrl(URL url, WebXml fragment) {
          if (url == null)

          { // Nothing to do. return; }

          else if ("jar".equals(url.getProtocol()))

          { processAnnotationsJar(url, fragment); }

          else if ("jndi".equals(url.getProtocol()))

          { processAnnotationsJndi(url, fragment); }

          else if ("file".equals(url.getProtocol())) {
          try

          { processAnnotationsFile(new File(url.toURI()), fragment); }

          catch (URISyntaxException e)

          { log.error(sm.getString("contextConfig.fileUrl", url), e); }

          } else

          { log.error(sm.getString("contextConfig.unknownUrlProtocol", url.getProtocol(), url)); }

          }

          First need a larger webapp to test with. Something with no descriptors, say 5 or more jars, some classes and roughly 10 or 20 MB in size. All the jars should have made-up names so as to not be excluded via the default excludes.

          Show
          David Blevins added a comment - ContextConfig line 1821 protected void processAnnotationsUrl(URL url, WebXml fragment) { if (url == null) { // Nothing to do. return; } else if ("jar".equals(url.getProtocol())) { processAnnotationsJar(url, fragment); } else if ("jndi".equals(url.getProtocol())) { processAnnotationsJndi(url, fragment); } else if ("file".equals(url.getProtocol())) { try { processAnnotationsFile(new File(url.toURI()), fragment); } catch (URISyntaxException e) { log.error(sm.getString("contextConfig.fileUrl", url), e); } } else { log.error(sm.getString("contextConfig.unknownUrlProtocol", url.getProtocol(), url)); } } First need a larger webapp to test with. Something with no descriptors, say 5 or more jars, some classes and roughly 10 or 20 MB in size. All the jars should have made-up names so as to not be excluded via the default excludes.

            People

            • Assignee:
              David Blevins
              Reporter:
              David Blevins
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development