You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by Gary L Peskin <ga...@firstech.com> on 2000/10/06 22:10:46 UTC
XalanJ2 Extension mechanism upload ready
I'm ready to do something with my stuff on the new extension handling
mechanism. This note gives a brief overview of what I've done and what
I have left to do. I don't think any of the "to do" items should be a
problem for an alpha release.
First off, I've discarded ExtensionFunctionHandler, ExtensionNSHandler,
and XSLTJavaClassEngine.
Next I added five new classes in the following hierarchy:
ExtensionHandler (abstract)
ExtensionHandlerGeneral -- Implements BSF-supported extensions
ExtensionHandlerJava (abstract) -- Base class for extensions written
in java
ExtensionHandlerJavaClass -- URI specifies a full class name
ExtensionHandlerJavaPackage -- URI specifies a partial class name
(including http://xml.apache.org/xslt/java)
I've also made changes to:
ExtensionsTable
MethodResolver
ElemExtensionCall
ElemExtensionDecl
Compiler
Here is what is not yet working:
- function-available and element-available for java-based URIs. The
previous implementation did nothing if the java namespace was implicitly
declared (ie without an lxslt:component). I have chosen to ignore the
functions and elements if declared and use a consistent method
regardless of whether or not an lxslt:component was used. This will use
java reflection. It's not difficult but I'm sick of working on this for
now and need a break.
- extension elements written in java using a URI that contains less than
the whole package name. (eg <java:fully.qualified.package.mynewlement
myattr="attr1">). This was not supported in the old implmentation.
Again, this is not difficult but I will save it for a few days. The
mynewlement method will have to be static in this release, at least for
now.
Everything else should be okay, I hope. I'm eager to get this right and
am willing to give it high-priority time. If you're having problems,
please let me know so that I can promptly fix them in harmony with the
design.
Scott, how do you want me to upload this? It's a fairly big change.
Should I place it on a branch, place it in the main branch, just copy
the diffs to an email or what. I'm a CVS newbie (using WinCVS) so it
might take me a couple of whiles (as my kids say) to figure out the
branching stuff.
Gary