XML Graphics common components

The problem

The FOP codebase contains two Batik transcoders for PDF and PostScript which can be used independently of FOP and are distributed with Batik. The Batik team should be empowered to help maintain these transcoders, for example, after changes in Batik itself. Since Batik and FOP are both implementing an XML standard that creates graphical output there is some overlap between the two efforts. Last but not least, a Batik release didn't involve a FOP release until now which is something that must change.

The idea

The idea now is to create a common area where the parts of common interest between the two subprojects are jointly developed and maintained.

Benefits

The plan

(Subject of discussion. Input welcome.)

Common repository

For the joint operations we need a common repository. Since we are supposed to move to Subversion sooner or later we may just as well go for Subversion for the common repository, especially now that we've already got an SVN repo for the XML Graphics site.

Decisions: Batik and FOP will soon migrate to SVN which will make the reorganization easier and preserves the full history.

Parts affected in FOP

directly:

Dependencies:

[1] Some of these classes could be candidates to go into Jakarta Commons IO.

External dependencies:

Parts affected in Batik

The transcoders depend on several packages inside Batik. Obviously, we can't create a clean hierarchy without dependencies on Batik, at least for the PDF and PS transcoders. But we should do that for the parts where this is possible (PDF lib, fonts, images etc.).

Possible components coming from Batik:

Organization and naming

Naming the individual parts (just an idea)

(axgc = Apache XML Graphics Commons)

Possible layout in SVN

Proposal 1: (discarded)

http://svn.apache.org/repos/asf/xmlgraphics
  +-- commons
        +-- branches
        +-- tags
        +-- trunk
             +-- axgc-codecs
             +-- axgc-fonts
             +-- axgc-image-adapters
             +-- axgc-pdf
             +-- axgc-ps
             +-- axgc-utils
  +-- batik
        +-- branches
        +-- tags
        +-- trunk
  +-- batik-transcoders
        +-- branches
        +-- tags
        +-- trunk
  +-- fop
        +-- branches
        +-- tags
        +-- trunk
  +-- site

Notes:

Proposal 2: (amended by 2a)

http://svn.apache.org/repos/asf/xmlgraphics
  +-- commons
        +-- branches
        +-- tags
        +-- trunk
             +-- axgc-codecs
             +-- axgc-fonts
             +-- axgc-image-adapters
             +-- axgc-pdf
             +-- axgc-ps
             +-- axgc-utils
  +-- batik
        +-- branches
        +-- tags
        +-- trunk
  +-- fop
        +-- branches
        +-- tags
        +-- trunk
  +-- site

Notes:

Proposal 2a:

2a amends proposal 2 with the following items:

http://svn.apache.org/repos/asf/xmlgraphics
  +-- commons
        +-- branches
        +-- tags
        +-- trunk
             +-- codecs
             +-- fonts
             +-- image-adapters
             +-- java2d (Graphics2D implementations, Pattern extensions)
                  +-- pdf (PDF implementation)
                  +-- ps (PS implementation)
             +-- pdf
             +-- ps
             +-- utils
  +-- batik
        +-- branches
        +-- tags
        +-- trunk
  +-- fop
        +-- branches
        +-- tags
        +-- trunk
  +-- site

Notes on additional use cases for the separated components

work items