Adrian, I'm unhappy with this change. I know you're constantly trying to improve things by refactoring but you also need to be careful about preserving compatibility. In this case, you broke my external PDF-in-PDF plug-in by changing the interface from "Class getSupportedImageClass()" to "Class getSupportedImageClasses()". Furthermore, chosing "ImageHandler" as the interface name will result in a name clash when the AFP branch is merged back into Trunk and I'll try to merge those changes into the IF branch. After all, in this branch the whole image handling is already properly abstracted for all renderers, not just PDF and AFP. So I think we need to revisit that before we consider a merge of the AFP GOCA branch into Trunk.
I think, we have the following options: 1. Remove ImageHandler in the GOCA branch, restore plug-in compatibility for PDFImageHandler and have a separate service registry class for AFP and PDF. (My preffered option) 2. We can selectively merge parts of the IF branch (the ImageHandler abstraction) into trunk before merging the rest (I could do that for you, if nobody objects the partial merge-back). From there you could make use of it in the GOCA branch and restore the PDFImageHandler. You could then use the same image handlers for the current code as well as the implementation for the new IF. 3. I have to adjust my PDF plug-in and do another release knowing that this is only for restoring compatibility. On 13.11.2008 17:12:00 acumiskey wrote: > Author: acumiskey > Date: Thu Nov 13 08:11:58 2008 > New Revision: 713747 > > URL: http://svn.apache.org/viewvc?rev=713747&view=rev > Log: > * PDFImageHandler interface split into ImageHandler and PDFImageHandler. > * Deleted AFPDataObjectInfoProvider and AFPImage*Factory implementations, and > abstracted AbstractImageHandlerRegistry from PDFImageHandlerRegistry, > creating AFPImageHandlerRegistry and AFPImageHandler so there is a common > reuse of image handling implementation between AFP and PDF now. > * RendererContext instantiation is now overridable in PrintRenderer. > * Created AFPRendererContext that is able to provide AFPInfo. > * toString() added to RendererContext for ease of use. > * Removed GraphicsObjectPainterAFP. > * Added package.html for AFP (sub)packages. > * Abstracted AbstractFOPBridgeContext from PDFBridgeContext and provided > AFPBridgeContext implementation. > * Abstracted AbstractFOPTextElementBridge from PDFTextElementBridge and > provided AFPTextElementBridge implementation. > * Abstracted AbstractFOPImageElementBridge from PDFImageElementBridge and > provided AFPImageElementBridge implementation. > * Provided inline image support/handling in AFPGraphics2D for SVG. > * Created NativeImageHandler interface. > * Fix for path iterator filled line drawing in AFPGraphics2D adding > coordinate drawing implementations GraphicsLineRelative and > GraphicsFilletRelative (Thanks for the patch Jeremias). > * Improved configuration.xml documentation for images mode/native setting in > AFP renderer configuration. <snip/> Jeremias Maerki