Jeanfrancois Arcand wrote:
Hi,
I would like to propose two modifications:
[1] XML Validation
I would like to make two changes to the way xml validation is implemented:
(1) make the attribute available at the context level (turned off by
default)
(2) add supports for turning on/off web.xml validation and tld
validation separately.
The host implementation will stay the same (the current one). This way
it will be possible to turn on/off validation of TLDs without impacting
performance (e.g.web.xml)
Ah ok.
[2] Overridable list of javax packages in WebappClassloader.
Right now, the WebappClassloader.packageTriggers contains javax. I
guess this restriction comes from the J2EE specs, except that we should
allow users to override packages that start with javax but are *not*
included in J2EE (ex: JSF, JSTL). I would like to add a mechanism that
contains a list of overridable packages:
/**
* Adds the given package name to the list of packages that may
always be
* overriden, regardless of whether they belong to a protected
namespace
*/
public void addOverridablePackage(String packageName){
if (overridablePackages == null){
overridablePackages = new ArrayList();
}
overridablePackages.add(packageName);
}
and add in WebappClassloader.filter(...)
if (overridablePackages != null){
for (int i = 0; i overridablePackages.size(); i++) {
if (packageName.
startsWith((String)overridablePackages.get(i)))
return false;
}
}
and then either add an attribute in context.xml (or globally in
server.xml...I have no prefs). As an example, putting JSTL 1.0 under
common/lib and bundling JSTL 1.1 in WEB-INF/lib will possibly cause
problems, because the API starts with javax.servlet.jsp.jstl.*, and the
1.0 api will get loaded instead of 1.1 (I know , API are not supposed to
changes, but the reality is different :-) )
Comments?
Well, the second one wouldn't change many things. packageTrigger is
mostly useless right now, ever since I added delegate first to the
system classloader. Indeed, this would allow overriding specific stuff
like JSTL.
Rémy
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]