As I make my way through the Servlet 3.1 spec reviewing all the changes to make sure they have all been implemented, I have reached section 8.2. There are a number of related issues here.

1. Three known issues with the current SCI / fragment handling [1]
   - SCI scan does not obey class loader ordering
   - fragments in container JARs are processed
   - Container SCIs may be exluded

2. A wish for per context jarsToSkip [2]

3. A wish for greater control over jarsToSkip [3]


These issues are all inter-related. Fixing them is going to require either some very ugly hacks or changes to the JarScanner API.

I have started down the route of the JAR scanner API changes. The overall idea is:
- jarsToSkip is replaced by a JarScanFilter with the default
  implementation doing what jarsToSkip currently does
- The client passes the type of scan (TLD, Pluggability, etc) to the
  JarScanner
- The JarScanner indicates whether or not any JAR found is an
  application or container JAR
- The JacScanFilter filters the JARs returned based on scan type and on
  configuration

This addresses the above issues in the following way:
1 - Knowing if the JAR is a container JAR or not allows the
    ContextConfig class to do the right thing.
2 - The StandardJarScanFilter can be configured per context in the same
    way the StandardJarScanner can.
3 - Same as 2.

The StandardJarScanFilter will have enough options to implement the requirements of 2 & 3.

I currently have the start of this in a local git repo. Any objections to me committing what I have to trunk and continuing there?


[1] http://markmail.org/message/22e3sjmsy2gt4tkw
[2] https://issues.apache.org/bugzilla/show_bug.cgi?id=54083
[3] https://issues.apache.org/bugzilla/show_bug.cgi?id=54770

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to