Jeremias Maerki wrote:
If there's enough interest I can put the source code for the API plus implementations on my website (or to a SF project or somewhere else).
I believe this common API could be interesting in the following months when FOP HEAD advances. It can be used to easily switch implementations or during development/testing. And I've got a few additional ideas. As time allows...
It might also be interesting to have implementations for Foray, Defoe, XEP and maybe even ol' JFOR. I hope the design is flexible enough to accomodate all Java implementations.
As long as a FOP user is not *required* to use it, (i.e., they can ignore JAFOP entirely and still call FOP's native JAXP-based API as in our embed examples), and as long as JAFOP is implemented using our current API, then I don't think I would have much problem with it. I don't want us to lose our present JAXP capabilities though--JAXP is a useful skill for our users to become proficient in, and something I would like us to continue promoting.
But your idea -- an interface that allows for run-time swapping of FO processors (like JAXP allows for Xalan and Saxon to be switched) is not bad at all. I wish the folks at AH and RX would create such an interface that we could just implement. Two thoughts come to mind: (1) perhaps we should try to reactivate that EXSLFO group and move this topic to them, and (2) you may wish to take a look at the JAXP specification, if you haven't recently, and see if there are any issues/ideas/things you perhaps forgot to take into account, etc., with JAFOP. That spec should show you what needs to be done for a common interface to be accepted, including things you may have missed.