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

Reply via email to