Remy Maucherat <[EMAIL PROTECTED]> wrote:
>
> There are other solutions:
> - modify findType to use getResource instead of getResourceAsStream
> - have JasperLoader.getResourceAsSteam (and possibly getResource as
> well) do nothing and delegate to parent.getResourceAsStream (and
> getResource)
>
> I think I like the second one.
So do I as that is exacly what my proposed "hack" does.
There is no need to provide JasperLoader.getResource(String) as the
inherited from java.lang.ClassLoader getResource(String) is cool, it
already delegates to parent first if there is one. Here it is, as
implemented in java.lang.ClassLoader:
public URL getResource(String name) {
URL url;
if (parent != null) {
url = parent.getResource(name);
} else {
url = getBootstrapResource(name);
}
if (url == null) {
url = findResource(name);
}
return url;
}
So it is enough to provide only JasperLoader.getResourceAsStream(String)
which in turn invokes getResource(String) to obtain URL to requested
resource. As there is no implementation of such method provided in
JasperLoader, the implementation of ClassLoader is used (which delegates to
parent). I hope I made myself clear (I realize that a patch is worth
thousand words ;)
It's not that hacky after all, is it?
cheers,
/dd
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]