<?xml version="1.0" encoding="UTF-8" ?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- $Id$ -->
<!DOCTYPE status PUBLIC "-//APACHE//DTD Status V1.3//EN" "http://forrest.apache.org/dtd/status-v13.dtd">
<status>

  <developers>
    <!-- In alphabetical order (last name) -->
    <person name="Glenn Adams"       email="gadams@apache.org"        id="GA"/>
    <person name="Max Berger"        email="mayberger@apache.org"     id="MB"/>
    <person name="Chris Bowditch"    email="cbowditch@apache.org"     id="CB"/>
    <person name="Jay Bryant"        email="jbryant@apache.org"       id="JB"/>
    <person name="Adrian Cumiskey"   email="acumiskey@apache.org"     id="AC"/>
    <person name="Bertrand Delacrétaz" email="bdelacretaz@apache.org" id="BD"/>
    <person name="Andreas Delmelle"  email="adelmelle@apache.org"     id="AD"/>
    <person name="Luca Furini"       email="lfurini@apache.org"       id="LF"/>
    <person name="Christian Geisert" email="chrisg@apache.org"        id="CG"/>
    <person name="Peter Hancock"     email="phancock@apache.org"      id="PH"/>
    <person name="Vincent Hennebert" email="vhennebert@apache.org"    id="VH"/>
    <person name="Mehdi Houshmand"   email="mehdi@apache.org"         id="MH"/>
    <person name="Clay Leeds"        email="clay@apache.org"          id="CL"/>
    <person name="Manuel Mall"       email="manuel@apache.org"        id="MM"/>
    <person name="Jeremias Märki"    email="jeremias@apache.org"      id="JM"/>
    <person name="Simon Pepping"     email="spepping@apache.org"      id="SP"/>
    <person name="the FOP committers" email="fop-dev@xmlgraphics.apache.org" id="all"/>
    <person name="Volunteer needed"  email="general@xmlgraphics.apache.org" id="open"/>
    <!-- See also src/documentation/content/xdocs/team.xml -->
  </developers>

  <contexts>
    <context id="Docs" title="Changes to Documentation"/>
    <context id="Code" title="Changes to the Code Base"/>
    <context id="Layout" title="Changes to the Layout Engine"/>
    <context id="Renderers" title="Changes to Renderers (Output Formats)"/>
    <context id="Fonts" title="Changes to the Font Subsystem"/>
    <context id="API" title="Changes to the End-User API"/>
    <context id="Extensions" title="Changes to the Bundled Extensions"/>
    <context id="Images" title="Changes to the Image Support"/>
    <context id="Config" title="Changes to the User Configuration"/>
    <context id="Test" title="Changes to unit tests or other test code"/>
  </contexts>

  <changes>
    <!--
      When adding changes, please try to highlight those which might affect upgrading
      users, i.e. when the behaviour changes and could affect the layout of existing
      documents. Example: the fix of marks layering will be such a case when it's done.
    -->
    <release version="FOP Trunk" date="TBD">
      <action context="Fonts" dev="MH" type="add" fixes-bug="53868" importance="low" due-to="Luis Bernardo">
        Full font embedding in PDF
      </action>
      <action context="Renderers" dev="PH" type="add" fixes-bug="53865" importance="low">
        Added configuration for RowPerStrip configuration in the Tiff renderer.
        RowsPerStrip can be configured to 1 or to the total # of rows.
        See docs for fop.xconf configuration details.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="53598" due-to="Robert Meyer">
        Always set the breakClass field to a legal value in BreakElement, so as to avoid 
        IllegalArgumentExceptions in other parts of the code.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="45715" due-to="Luis Bernardo">
        Restored support for break-before on fo:table.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="53827">
        When an fo:block has a non-zero value for its text-indent property and is broken over two 
        pages of different widths, then the first line on the second page is missing one word and 
        appears indented.
      </action>
      <action context="Renderers" dev="MH" type="fix" fixes-bug="53790">
         Prevented the TIFF configurator from overriding the Bitmap configurator unless CCITT
         compression is enabled.
      </action>
      <action context="Renderers" dev="MH" type="fix" fixes-bug="53786">
         Removed the Attribute Qualifier on TLEs as they aren't used.
      </action>
      <action context="Renderers" dev="MH" type="fix" fixes-bug="48954" due-to="PH">
         Support for character encoding of TLEs in AFP output
      </action>
      <action context="Renderers" dev="VH" type="fix" fixes-bug="53778">
        When PDF accessibility is enabled, the contents for the different regions must appear in the 
        proper order in the structure tree.
      </action>
      <action context="Renderers" dev="MH" type="fix" fixes-bug="53766" due-to="Robert Meyer">
        Remove StandardEncoding as the encoding type from fonts used in the PDF renderer
      </action>
      <action context="Fonts" dev="MH" type="fix" fixes-bug="53685">
        Cached AFP charactersets have more unique keys preventing the two characters with
        but different binaries conflicting.
      </action>
      <action context="Fonts" dev="MH" type="fix" fixes-bug="53657" due-to="Robert Meyer">
        AFP fonts default to the nominal character increment to font metrics when glyph info
        is missing from the characterset.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="53688">
        Wrong page number reported when a column overflows the region-body in a multi-column 
        document.
      </action>
      <action context="Renderers" dev="VH" type="add" fixes-bug="53639">
        When PDF accessibility is enabled, the Scope attribute must be present in the structure tree 
        for table header elements.
      </action>
      <action context="Fonts" dev="MH" type="add" fixes-bug="53600" due-to="Robert Meyer">
        Added an event if a glyph and its metric information does not exist in the character set
      </action>
      <action context="Renderers" dev="VH" type="add" fixes-bug="53596">
        When PDF accessibility is enabled, the structure tree must contain information about the 
        number of columns or rows spanned by a table cell.
      </action>
      <action context="Renderers" dev="MH" type="add" fixes-bug="53563" importance="low">
        Removed a method call to the java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice()
        that could (in a headless environment) throw a java.awt.HeadlessException
      </action>
      <action context="Renderers" dev="VH" type="add" importance="high">
        When PDF accessibility is enabled, treat repeated table headings as artifacts. This allows 
        screen readers to read the header only once at the beginning of the table and the footer 
        once at the end of a table. Reading the headings at every column or page break is likely to 
        disturb the user. This follows Section 508 recommendations.
      </action>
      <action context="Layout" dev="VH" type="fix">
        An IllegalArgumentException was thrown when break-before was used inside a list.
      </action>
      <action context="Layout" dev="VH" type="fix">
        When restarting layout for the last page, discard glues and penalties at the beginning of 
        the restarted Knuth sequence.
      </action>
    </release>
    <release version="1.1rc1" date="02 July 2012">
      <action context="Test" dev="GA" type="fix">
        Fix errors and warnings in example files. Add build.xml for documentation examples.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="53458" due-to="Dieter von Holten">
        Fix incorrect language and country code key generation in hyphenation tree cache.
      </action>
      <action context="Images" dev="GA" type="fix" fixes-bug="53431" due-to="Luis Bernardo">
        Fix incorrect SVG line dash pattern with PDF output format.
      </action>
      <action context="Images" dev="GA" type="update" fixes-bug="40676" due-to="Luis Bernardo">
        Fix interoperability issue with Adobe reader regarding use of multiple filters.
      </action>
      <action context="Code" dev="GA" type="fix">
        Eliminate javadocs warnings.
      </action>
      <action context="Renderers" dev="VH" type="add" fixes-bug="52338" importance="high">
        Added possibility to embed TrueType fonts in PostScript.
      </action>
      <action context="Images" dev="GA" type="update" fixes-bug="40676" due-to="Luis Bernardo">
        Update site documentation about PNG image loading configuration and support.
      </action>
      <action context="Images" dev="GA" type="update" fixes-bug="40676" due-to="Luis Bernardo">
        Fix newly introduced findbugs warnings.
      </action>
      <action context="Images" dev="GA" type="fix" fixes-bug="40676" due-to="Luis Bernardo, Matthias Reischenbacher" importance="high">
        Support use of ImageLoaderRawPNG decoder in order to prevent re-encoding of PNG images (and unnecssary output file bloat).
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="53412" due-to="Alexios Giotis">
        Eliminate incorrect use of object identity which produces excessive property cache collisions.
      </action>
      <action context="Code" dev="GA" type="fix">
        Eliminate javadocs warnings.
      </action>
      <action context="Code" dev="GA" type="update" fixes-bug="53055">
        Update xmlgraphics common jar to reflect recent fixes in XGC.
      </action>
      <action context="Code" dev="GA" type="update" fixes-bug="43940" due-to="Julien Aymé">
        Fix handling of NaN, {+,-}Infinity, and other edge cases. Submitted by Julien Aymé.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="53304,53306">
        Add version attribute to AT and IF intermediate formats. Also eliminate redundant use of reversed attribute in AT format.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="53295" due-to="Luis Bernardo" importance="high">
        Add extension to place code just before PostScript %PageTrailer.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="53294" due-to="Robert Meyer">
        Fix invalid PostScript file being created when font-size is 0.
      </action>
      <action context="Docs" dev="GA" type="update">
        Update FAQ and New Bug documentation.
      </action>
      <action context="Code" dev="VH" type="add">
        Added support for the role property on fo:page-sequence, fo:flow and fo:static-content. This 
        allows to change the mapping of those FOs to PDF structure types when enabling 
        accessibility.
      </action>
      <action context="Renderers" dev="VH" type="fix" due-to="Martin Koegler">
        Stop outputting the Type entry for structure elements in order to create a smaller PDF 
        ouptut when accessibility is enabled.
      </action>
      <action context="Config" dev="GA" type="fix" fixes-bug="52144" due-to="Luis Bernardo">
        Fix crash on use of version switch (-v).
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="53242" due-to="Luis Bernardo">
        Support fractional line widths in AFP renderer, fixing problem with SVG line drawing.
      </action>
      <action context="Config" dev="GA" type="fix" fixes-bug="53248" due-to="Luis Bernardo">
        Fix exception thrown from use of -print option in CLI.
      </action>
      <action context="Docs" dev="GA" type="fix" fixes-bug="53247">
        Fix renderer mime type for PCL output; should be application/x-pcl.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="40699" due-to="Luis Bernardo">
        Fix for invalid PDF for certain numerical values in SVG lineargradient.
      </action>
      <action context="Layout" dev="GA" type="fix" fixes-bug="53185" due-to="Robert Meyer">
        Unify date formatting between FOP and XGC as well as tidying the date format code.
      </action>
      <action context="Layout" dev="GA" type="fix" fixes-bug="45715" due-to="Luis Bernardo" importance="high">
        Fix for break before (break-before) not respected on blocks nested in inlines.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="48723" due-to="Robert Meyer">
        Fix for XGC when rendering PostScript using SVG being drawn upside down when using a custom affine transform.
      </action>
      <!-- the following is also due to Julien Aymé, but due to a bug in forrest is not included here to prevent duplicate listing in contributors list -->
      <action context="Code" dev="GA" type="fix" fixes-bug="43940" due-to="Ognjen Blagojevic">
        Use new double format utility to improve thread safety and performance.
      </action>
      <action context="Fonts" dev="GA" type="fix" fixes-bug="53148" due-to="Tassos Charoulis">
        Fix performance regression in JDK 1.6 Update 19 due to use of Java Beans API. Fix checkstyle errors.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="51484" due-to="Benjamin Riefenstahl">
        Don't write final /sect suffix in RTF if section is last section.
      </action>
      <action context="Fonts" dev="GA" type="fix" fixes-bug="53143">
        Ensure fonts are not loaded twice (redundantly).
      </action>
      <action context="Test" dev="GA" type="update" fixes-bug="50196" due-to="Matthias Reischenbacher">
        Add test for basic-link with padding.
      </action>
      <action context="Code" dev="GA" type="update">
        Improve property function argument parsing, specifically, better separate required, optional, and variable arguments and the handling of optional argument defaults.
        Regularize property function class names.
      </action>
      <action context="Layout" dev="GA" type="fix" fixes-bug="51043" due-to="Pascal Sancho">
        Don't restart layout unless abs(ipd difference) > 1 in order to prevent rounding issues from triggering false restart.
      </action>
      <action context="Fonts" dev="GA" type="update">
        Removing experimental feature that violates XSL-FO and Unicode semantics by misinterpreting Basic Latin code points. Users must use private use codepoints to access font specific
        character mappings that have no assigned Unicode code point. See bug 50492.
      </action>
      <action context="Layout" dev="GA" type="fix" fixes-bug="53103" due-to="Matthias Reischenbacher">
        Ensure that table cell spanning works in right-to-left writing mode.
      </action>
      <action context="Layout" dev="GA" type="fix" fixes-bug="53086">
        Ensure that table footer and header are included in bididirectional resolution.
      </action>
      <action context="Layout" dev="GA" type="fix" fixes-bug="53097">
        Ensure writing-mode specified on fo:table is used to determine writing mode of table and its descendants.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="53094" due-to="Luis Bernardo">
        Convert block container overflow exception to event model, improving overflow property behavior.
      </action>
      <action context="Code" dev="GA" type="update" fixes-bug="51617">
        Add run target for embedded examples. Add increased JVM memory heap flag for example8 in case font cache is rebuilt.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="53083" importance="high">
        Update to use of checkstyle-5.5 as default configuration. Remove checkstyle-4.0 configuration. Also, import environment build properties before local properties, so that latter can refer to former.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="52572" due-to="Pascal Sancho">
        Prevent NPE on use of unsupported collapse-with-precedence; fall back to collapse. Fix checkstyle errors from prior commit.
      </action>
      <action context="Layout" dev="GA" type="fix" fixes-bug="52514" due-to="Luis Bernardo" importance="high">
        Ensure square image is appropriately scaled.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="50062" importance="high">
        Invoke JVM in headless mode from FOP command scripts and JS shell to prevent stealing focus from GUI applications.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="52114">
        Take leading derived space before/after into account when computing rows for TXT renderer.
      </action>
      <action context="Code" dev="PH" type="add" fixes-bug="49893">
        A global setting to wrap F11 images in page segments.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="52763" importance="high">
        Support list-block in marker, thus preventing NPE.
      </action>
      <action context="Code" dev="GA" type="fix">
        Must use unqualified (local name) when reporting invalid child error.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="53065">
        Restore lookup on Event message lookup field part. Add locale field to Event to
        enable locale dependent deferred bundle load during lookup field part substitution.
      </action>
      <action context="Code" dev="MH" type="fix">
        Bug in AFP font metrics that performed integer arithmetic when it should have been
	double arithemetic.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="49754" due-to="Simon Pepping">
        Bring clone() in line with the recommendations in Object.clone().
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="52966" due-to="Luis Bernardo">
        How to use native text with EPSDocumentGraphics2D.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="51599" due-to="Paul Huemer" importance="high">
        Allow https scheme URI for PDF external action target.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="50901" due-to="Carsten Pfeiffer">
        RTF percentage table column width not calculated from table.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="51009" due-to="Max Aster">
        RTF generates unexpected lines for blocks in tables. Also fix three findbugs issues.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="51007" due-to="Max Aster">
        RTF tables do not support percent column-widths.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="50435" due-to="Armin Haaf">
        Access denied (java.util.PropertyPermission org.apache.fop.fo.properties.use-cache read).
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="49763" due-to="Adrian Buza">
        Incorrect message when encountering a block in an inline in a footnote.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="47380" due-to="Georg Datterl">
        Specified rule-thickness applies only when leader-pattern is rule, otherwise should use default thickness.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="49302" due-to="Julien Aym&#x00E9;">
        Eliminate duplicate code.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="49350" due-to="Julien Aym&#x00E9;">
        Correct coding error in AFPResourceLevel#equals.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="51836" due-to="Melanie Drake">
        Throw IFException instead of NPE if navigation target (page reference) doesn't exist.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="51808" due-to="Sergey Vladimirov">
        Fixed memory waste in traits map.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="51807" due-to="Sergey Vladimirov">
        Fixed small memory waste in rowCells array construction.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="53005" due-to="Alberto Simões" importance="high">
        Fixed incorrect rejection of fo:wrapper inside fo:inline inside fo:footnote-body.
      </action>
      <!-- the following is also due to Vincent Hennebert, but due to a bug in forrest is not included here to prevent duplicate listing in contributors list -->
      <action context="Code" dev="VH" type="add" importance="high" due-to="Peter Hancock">
        Added support for PDF Object Streams. When accessibility is enabled and PDF version 1.5 
        selected, the structure tree will be stored in object streams in order to reduce the size of 
        the final PDF.
      </action>
      <action context="Code" dev="VH" type="fix" fixes-bug="46962" due-to="Alexios Giotis">
        Fixed deadlock in PropertyCache.
      </action>
      <action context="Config" dev="VH" type="add" fixes-bug="51385" due-to="Mehdi Houshmand" importance="high">
        Added configuration option to set the version of the output PDF document.
      </action>
      <action context="Code" dev="MH" type="fix" fixes-bug="52849" due-to="Luis Bernardo" importance="high">
        Fixed bug that caused a configured and installed SVG font to be stroked,
        also added an event indicating when fonts are stroked.
      </action>
      <action context="Code" dev="PH" type="fix">
        Fix of a bug introduced when merging ImproveAccessibility.
      </action>
      <action context="Code" dev="PH" type="add" fixes-bug="50391" importance="high">
          Improved support for empty flow-name mapping.
      </action>
      <action context="Layout" dev="GA" type="add" fixes-bug="32789, 49008, 49687" importance="high">
        Add support for complex scripts, including: full bidi support, support for advanced
        typographic tables, advanced support for number conversion.
      </action>
      <action context="Fonts" dev="GA" type="add" importance="high">
        Add support for OpenType advanced typographic tables (GDEF, GSUB, GPOS).
      </action>
      <action context="Code" dev="VH" type="fix" fixes-bug="52655" due-to="Luis Bernardo">
        Fixed rendering of special glyphs when using single-byte encoding mode.
      </action>
      <!-- the following is also due to Peter Hancock, but due to a bug in forrest is not included here to prevent duplicate listing in contributors list -->
      <action context="Code" dev="PH" type="add" due-to="Vincent Hennebert">
        Improvements of the Accessibility features.
      </action>
      <action context="Code" dev="CB" type="add" fixes-bug="52416" due-to="Luis Bernardo">
        Suppress unnecessary "font not found warnings" when generating AFP with raster fonts 
      </action>
      <action context="Code" dev="CB" type="add" fixes-bug="51209" due-to="Luis Bernardo">
        SVG text in AFP creates miscoded GOCA text
      </action>
      <action context="Code" dev="CB" type="add" fixes-bug="50391" due-to="Peter Hancock" importance="high">
        Add support for different flow-name of fo:region-body in FOP
      </action>
      <action context="Code" dev="CB" type="add" fixes-bug="51664" due-to="Mehdi Houshmand">
        Tagged PDF performance improvement plus tests
      </action>	
      <action context="Code" dev="MH" type="add" fixes-bug="52197">
        Improved AdobeStandardEncoding support in AFM files for type1 fonts
      </action>
      <action context="Code" dev="VH" type="add" fixes-bug="52151" due-to="Mehdi Houshmand">
        Added ant script to get JaCoCo code coverage.
      </action>
      <action context="Code" dev="VH" type="add" fixes-bug="52136" due-to="Mehdi Houshmand">
        Added to build file JUnit target that uses a regex to run all of the test cases. This 
        reduces the risk that some of them are omitted when building FOP.
      </action>
      <action context="Code" dev="PH" type="add" fixes-bug="52089" due-to="Mehdi Houshmand" importance="high">
        Allow JPEG images to be embedded in an AFP document as is, without being decoded and 
        encoded.
      </action>
      <action context="Code" dev="PH" type="add" fixes-bug="52010" due-to="Mehdi Houshmand">
        Simplification of the build: Reduced code duplication and layout engine tests.
      </action>
      <action context="Renderers" dev="JM" type="add">
        Various bugfixes to make PDFDocumentGraphics2D operational again.
      </action>
      <action context="Code" dev="PH" type="add" fixes-bug="51962" due-to="Mehdi Houshmand" importance="high">
        Fix for when the last simple-page-master referenced in a page-sequence-master is not
        chosen when force-page-count=odd.
      </action>
      <action context="Code" dev="VH" type="add" fixes-bug="51928" due-to="Mehdi Houshmand" importance="high">
        Upgraded all tests to JUnit 4.
      </action>
      <action context="Fonts" dev="PH" type="fix" fixes-bug="48696">
        Bugfix for color model in IOCA IDE structure parameter for 4- and 8-bit grayscale images.
        Revision 4.
      </action>
      <action context="Fonts" dev="PH" type="fix" fixes-bug="51760" due-to="Mehdi Houshmand" importance="high">
        Changes the way PostScript handles Graphics2D images such that if the language is set to
        level 3, the image is stored as an embedded file which has no length limit.  Previously it
        was stored as an array which has a implementation limit of 65535 elements.
      </action>
      <action context="Fonts" dev="PH" type="fix" fixes-bug="51759" due-to="Mehdi Houshmand">
        PDFFactory responsible for asdigning name to a subset font.
      </action>
      <action context="Fonts" dev="PH" type="fix" fixes-bug="51530" due-to="Mehdi Houshmand" importance="high">
        Improved support for EBCDIC encoded double byte fonts fo AFP.
      </action>
      <action context="Fonts" dev="PH" type="fix" fixes-bug="51205" due-to="Mehdi Houshmand">
        Corrected typographical errors in AFPBase12FontCollection.
      </action>
      <action context="Renderers" dev="PH" type="fix" fixes-bug="48062">
        Improved fix of a bug relating to PCL painter thread safetly.  Previous fix in rev 895012
        worked by synchronizing methods of a static instance of Java2DFontMetrics.  This fix uses a
        unique instance for per thread.
      </action>
      <action context="Renderers" dev="PH" type="fix">
        Fixed a bug in AFP where an ArrayOutofBoundsException is throwqn when embedding a Page 
        Segment.
      </action>
      <action context="Renderers" dev="VH" type="add" due-to="Michael Rubin" importance="high">
        Added support for 128bit encryption in PDF output.
      </action>
      <action context="Renderers" dev="PH" type="fix">
        Fixed a bug in AFP where the object area axes of an Include Object was incorrectly set when 
        rotated by 180. </action>
      <action context="Fonts" dev="JM" type="fix" fixes-bug="51596" due-to="Mehdi Houshmand">
        Fixed a bug in TTF subsetting where a composite glyph could get
        remapped more than once resulting in garbled character.
      </action>
      <action context="Fonts" dev="JM" type="fix" fixes-bug="50605">
        Fixed a number of bugs concerning Type 1 and other single-byte fonts
        (glyph width mismatches and overlapping characters).
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Fixed a multi-threading bug for SVG images included through svg:image inside SVG documents.
      </action>
      <action context="Renderers" dev="PH" type="add" importance="high">
        Added an IFDocumentHandler filter for triggering rendering events.  Created an Event that
        captures an end page event with the page number.
      </action>
      <action context="Renderers" dev="VH" type="fix">
        Fix for alternative text not working in tagged PDF for TIFF images.
      </action>
      <action context="Renderers" dev="PH" type="fix" fixes-bug="50909">
        Fixed io exception in MODCAParser caused by the improper use of mark() and reset() on the
        MODCA data input stream.  Added unit test. </action>
      <action context="Fonts" dev="JM" type="fix" fixes-bug="51144" due-to="Mehdi Houshmand">
        Removed invalid entries in ToUnicode table of CID subset fonts. 
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="50899" due-to="Glenn Adams">
        Fixed mapping of font weights between CSS values and TextAttribute.WEIGHT_*. 
      </action>
      <action context="Renderers" dev="JM" type="fix">
        AFP GOCA: fonts were not embedded from within AFPGraphics2D.
      </action>
      <action context="Renderers" dev="JM" type="fix" importance="high">
        AFP GOCA: Changed the way FOP fonts are selected based on Batik's GVT fonts to match
        the behaviour of PDF/PS output.
      </action>
      <action context="Renderers" dev="JM" type="add" importance="high">
        Added option to place AFP NOPs right before the end of a named page group (page-sequence),
        rather than after the start.
      </action>
      <action context="Renderers" dev="JM" type="add" importance="high">
        Added option for PostScript output to optimize for file size rather than quality.
      </action>
      <action context="Renderers" dev="JM" type="add" importance="high">
        AFP GOCA: Added option to disable GOCA and to control text painting inside GOCA graphics.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        AFP GOCA: Work-around for InfoPrint's AFP implementation which seems to lose
        the character set state over Graphics Data (GAD) boundaries.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Bugfix for AFP GOCA segments: they were not properly marked as appended which could
        lead to graphics state changes in some implementations.
      </action>
      <action context="Renderers" dev="CB" type="fix" fixes-bug="51010" due-to="Max Aster">
        Bugzilla 51010: Bookmarks create useless lines in RTF 
      </action>	
      <action context="Renderers" dev="CB" type="fix" fixes-bug="51008" due-to="Max Aster">
        Bugzilla 51008: page-number-citation-last does not work in RTF
      </action>	
      <action context="Renderers" dev="VH" type="add">
        Added id element to intermediate format to track the origin of content.
      </action>
      <action context="Renderers" dev="AD" type="fix" fixes-bug="50987" due-to="Matthias Reischenbacher">
        Bugzilla 50988: Fixed a NullPointerException in case a white-space fo:character was removed
        due to white-space handling.
      </action>
      <action context="Renderers" dev="AD" type="fix" fixes-bug="50987" due-to="Martin Koegler">
        Bugzilla 50987: Fixed an issue in PDF output where a link was added to the parent tree 
        instead of the related structure element.
      </action>
      <action context="Renderers" dev="AD" type="fix" fixes-bug="50986" due-to="Martin Koegler">
        Bugzilla 50986: Fixed an issue where invalid PDF page content was generated due to 
        incorrect ET/EMC sequences.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="50593">
        Fixed regression introduced by Bugzilla 50593: bookmarks pointing to a non-existing
        internal destination should just trigger a warning.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="50965" due-to="Martin Koegler">
        Bugzilla 50965: Fixed a regression in BlockContainerLayoutManager where margins were
        no longer reset after forced breaks.
      </action>
      <action context="Layout" dev="VH" type="fix" fixex-bug="50763" importance="high">
        Implemented non-standard behavior for basic-link areas, such that they take into account the 
        heights of their descendants areas.
      </action>
      <action context="Layout" dev="VH" type="fix" importance="high">
        Fix for keep-together does not apply to fo:table-cell.
      </action>
      <action context="Layout" dev="VH" type="fix" importance="high">
        Fix for keep-together on a table containing row-spanning cells that was not honored.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="50196" due-to="Matthias Reischenbacher" importance="high">
        Fix forpadding-start ignored when table-header/footer is repeated.
      </action>
      <action context="Renderers" dev="JM" type="fix" importance="high">
        Increased maximum possible PDF size from 2GB to around 9GB (hard maximum imposed by the PDF specification).
      </action>
      <action context="Renderers" dev="JM" type="add" importance="high">
        Added support for CIE Lab colors (from XSL-FO 2.0 WD).
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="49403" due-to="Patrick Jaromin" importance="high">
        Initial work on spot colors (aka named colors) for PDF output.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="50705" due-to="Mehdi Houshmand">
        Fix to preserve the order of AFP TLEs and NOPs as given in the XSL-FO document.
      </action>
      <action context="Fonts" dev="JM" type="add" fixes-bug="50699" due-to="Alexandros Papadakis">
        Added support for lookup of alternative glyphs when additional single-byte encodings are
        used, ex. replacing "Omegagreek" by "Omega" and vice versa.
      </action>
      <action context="Code" dev="AD" type="add" fixes-bug="48334" importance="high">
        Added support for resolution of relative URIs against a specified xml:base during
        property refinement.
      </action>
      <action context="Renderers" dev="JM" type="add">
        Allow afp:no-operation to also appear under fo:page-sequence and fo:declarations.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="50635" due-to="Martin Koegler">
        Fix for issue in RenderPagesModel.checkPreparedPages() where the same page-sequence
        is potentially started multiple times.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="50636" due-to="Martin Koegler">
        Fix for performance issue when adding pages, if the total number of pages
        is significantly large.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="50626" due-to="Martin Koegler">
        Fix for performance issue when adding nodes, if the number of children
        is significantly large.
      </action>
      <action context="Config" dev="SP" type="fix">
	Fix for relative URIs in the configuration file (base, font-base, hyphenation-base) are evaluated relative to the base URI of the configuration file.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="49848" importance="high">
        Fix for correct behavior of keep-together.within-line in case there are nested inlines
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="50471">
        Fix for avoid ArrayIndexOutOfBoundsException for codepoints without a linebreak class
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="48380">
        Fix for avoid ClassCastException when using fox:widow-content-limit
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="50089">
        Fix for content after forced break in block-container is not rendered.
      </action>
      <action context="Layout" dev="JM" type="fix" fixes-bug="42034">
        Fixed adjustment of inline parent area for justified text containing a forward page reference.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="38264">
        Fixed behavior when combining hyphenation with preserved linefeeds or whitespace.
      </action>
      <action context="Code" dev="VH" type="fix" fixes-bug="49695" due-to="Joshua Marquart">
        Replaced magic numbers with constants from UnitConv and GraphicsConstants.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="42600" due-to="Max Aster">
        Added some support for break-before/-after for RTF output.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="49379" due-to="Peter Hancock" importance="high">
        Added ability to embed an external AFP page segment resource file (AFP output only).
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="46360" due-to="Alexios Giotis">
        Fixed a multi-threading issue when rendering SVG.
      </action>
      <action context="Layout" dev="JM" type="fix" fixes-bug="49885">
        Fixed retrieval of available BPD for cases spanning columns and multiple pages with differing page masters.
      </action>
      <action context="Renderers" dev="VH" type="remove">
        Removed old Renderer implementations for those output formats that have a version based on 
        the new DocumentHandler architecture available (AFP, PCL, PDF, PS).
      </action>
      <action context="Fonts" dev="AC" type="fix" importance="high">
        Reinstated support for being able to specify a font cache filepath in the fop user configuration.
      </action>
      <action context="Fonts" dev="AC" type="add" importance="high">
        Added convenience support for the flushing of the Fop font cache file from the command line.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="44460" due-to="Andrejus Chaliapinas">
        Added support for PDF File Attachments (Embedded Files).
      </action>
    </release>
    <release version="1.0" date="21 July 2010">
      <action context="Renderers" dev="JM" type="fix">
        AFP Output: Fixed positioning of Java2D-based images (when GOCA is enabled).
      </action>
      <action context="Renderers" dev="JM" type="add">
        AFP Output: Added enhanced dithering functionality for images that are converted to
        bi-level images.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        AFP Output: Fix for bitmap images inside an SVG or G2D graphic (printer errors) and
        positioning fix for bitmaps from G2D graphics.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="42306" due-to="Richard Wheeldon">
        Fix for AWT viewer to correctly track page numbers in continuous display mode.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Bugfix for formatting of floating point numbers which could lead to invalid PDFs.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Added a save/restoreGraphicsState pair for the initial coordinate system in PDF output
        for easier post-processing.
      </action>
      <action context="Images" dev="JM" type="add">
        Added customization ability for the image loading framework from FOP's configuration file.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="48696" due-to="Peter Hancock">
        Bugfix for color model in IOCA IDE structure parameter for 4- and 8-bit grayscale images.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="48567" due-to="Peter Hancock">
        Initial support for CID-keyed double-byte fonts (Type 0) in AFP output.
      </action>
	  <action context="API" dev="SP" type="add">Added a command-line option '-catalog' to use a catalog resolver for the XML and XSLT files</action>
      <action context="Layout" dev="SP" type="add">Implement internal character classes if the hyphenation pattern file does not contain them</action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="46486">
        Bugfix: having a special page-master for the last page caused loss of content when normal 
        blocks were mixed with blocks spanning all columns.
      </action>
      <action context="Renderers" dev="VH" type="add">
        Added possibility to customize PDF tagging via the ‘role’ property.
      </action>
      <action context="Renderers" dev="CB" type="fix" fixes-bug="48237" due-to="Peter Hancock">
        Bugfix: AFP Renderer: Respect image color settings for svg 
      </action>	  
	  <action context="Renderers" dev="CB" type="fix" fixes-bug="48376" due-to="Venkat Reddy">
        Bugfix: AFP Renderer: Page Overlays not generated when using Intermediate Format
      </action>	  
      <action context="Renderers" dev="CB" type="fix" fixes-bug="48456">
        Bugfix: AFP Renderer: Underline is incorrectly placed when reference-orientation != 0
      </action>
      <action context="Renderers" dev="CB" type="fix" fixes-bug="48453">
        Bugfix: AFP Renderer: Page Segments not positioned correctly when reference-orientation != 0
      </action>
      <action context="Fonts" dev="JM" type="add">
        Added support for TrueType fonts with symbol character maps (like "Wingdings" and "Symbol").
        Character for these fonts are usually found in the 0xF020 to 0xF0FF range
        (a Unicode private use area). 
      </action>
      <action context="Fonts" dev="JM" type="fix">
        Bugfix: Font selection fallbacks did not work in some cases (ex. bold+italic to normal)
      </action>
      <action context="Renderers" dev="CB" type="fix" fixes-bug="48290">
        Bugfix: AFP Renderer: AttributeQualifier Triplet occurs before TLE Value.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="48048" due-to="D.W. Harks">
        Bugfix in AFP output: fixed flags in GOCA GBAR order.
      </action>
      <action context="Renderers" dev="VH" type="fix" fixes-bug="48185" due-to="Harald G. Henne">
        Bugfix in AFP output: rounding error when computing the CMYK components of a color.
      </action>
      <action context="Code" dev="VH" type="fix" fixes-bug="48167" due-to="Venkat Reddy">
        Bugfix: when #CMYK pseudo-profile was used in the rgb-icc() function, always the fallback 
        RGB colors were used instead.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="48082">
        Bugfix: value of conditional space not always taken into account in the calculation of a 
        table’s height.
      </action>
      <action context="Renderers" dev="JM,VH" type="add" fixes-bug="46705" due-to="Jost Klopfstein">
        Added basic accessibility and Tagged PDF support. 
      </action>
      <action context="Renderers" dev="JM" type="add">
        Added support for encoding CMYK bitmap images (IOCA FS45) and TIFF images as embedded objects.
      </action>
      <action context="Code" dev="AC" type="add">
        Added support for xmlfile and xsltfile parameters in FOP's Ant Task.
      </action>
      <action context="Renderers" dev="AC" type="fix" fixes-bug="47941">
        BugFix: Maintain valid AFP by providing TLE truncation on Attribute Value Triplet values that are greater than 250 chars in length.
      </action>
      <action context="Fonts" dev="JM" type="fix" fixes-bug="47711" due-to="Nicolas Peninguy">
        Fixed generation of CIDSet object in PDF output.
      </action>
      <action context="Layout" dev="VH" type="fix">
        Fixed handling of percentage values for provisional-label-separation.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="47835" due-to="Jonathan Levinson">
        Fixed handling of percentage values for provisional-distance-between-starts.
      </action>
      <action context="Renderers" dev="CB" type="add">
        Added support for positioning Page Overlays in AFP Output
      </action>
      <action context="Fonts" dev="JM" type="add">
        Added support for specifying referenced fonts per renderer in addition to the general
        match list.
      </action>
      <action context="Renderers" dev="JM" type="add">
        Added support for creating thumbnails or preview bitmaps of fixed size for PNG and TIFF
        output.
      </action>
      <action context="Extensions" dev="JM" type="add">
        Added support for the #CMYK pseudo-profile supported by some commercial XSL implementations
        on the rgb-icc() function.
      </action>
      <action context="Layout" dev="VH" type="add" importance="high">
        Added limited support for pages of different inline-progression-dimensions within a 
        page-sequence.
      </action>
      <action context="Layout" dev="AD" type="add" fixes-bug="46905">
        Added basic implementation for column-keeps.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="47710">
        White-space handling in markers with inline-content throws a NullPointerException
        in some cases.
      </action>
      <action context="Renderers" dev="CB" type="fix" fixes-bug="47694">
        Dithered Background Shading can produce illegal AFP if objects are very small
      </action>
      <action context="Renderers" dev="CB" type="add">
        AFP Output: Added support for IMM Extension on fo:simple-page-master.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="47311" due-to="Peter Coppens">
        Added an initial set of extensions for prepress support (fox:bleed, fox:crop-offset,
        fox:crop-box and fox:scale). This is currently supported only by PDF and Java2D renderers.
      </action>
      <action context="Renderers" dev="JM" type="add">
        PCL Output: Added support for specifying the output bin.
      </action>
      <action context="Renderers" dev="JM" type="add">
        AFP Output: Added support for embedding external AFP form maps (form defs) using the
        afp:include-form-map extension.
      </action>
      <action context="Renderers" dev="JM" type="add">
        AFP Output: Added support for AFP font embedding. Note: this changes the default behaviour.
        Like with PDF and PS, all fonts are embedded by default unless matched in the
        "referenced-fonts" section in the configuration.
      </action>
      <action context="Renderers" dev="AD" type="fix" fixes-bug="47508" due-to="Bharat Attaluri">
        Bugfix: Error while writing TLE's attribute qualifier in the output.
      </action>
      <action context="Renderers" dev="CB" type="fix">
        Bugfix: support justified text in AFP Renderer (already working in AFP Painter)
      </action>
      <action context="Renderers" dev="AD" type="add">
        AFP Renderer Raster Fonts:
        <ul>
          <li>added support for fractional font-sizes in the configuration.</li>
          <li>selection of the smaller font-size, in case two possible fallbacks have the
              same difference to a requested size.</li>
        </ul>
      </action>
      <action context="Fonts" dev="CB" type="fix">
        Bugfix: support PFM Files with no extent table.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="46960">
        Bugfix: previously retrieved markers were not cleared if the new marker was empty.
      </action>
      <action context="Fonts" dev="VH" type="fix" fixes-bug="47232" due-to="Maxim Wirt">
        Bugfix: for the last character of a Type1 font, always a width of 0 was returned.
      </action>
      <action context="Code" dev="VH" type="fix">
        Changed meaning of ‘-v’ option to ‘verbose’, which will print FOP’s version and proceed.
        Added a ‘-version’ option to simply print the version then exit, following Java practices.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="47101">
        Bugfix: The cells of a table inside a marker were duplicated at every marker retrieval.
      </action>
      <action context="Images" dev="JM" type="fix">
        Bugfix: use the effective color profile supplied by the ImageEncodingHelper, instead of the
        original one.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Bugfix: reset graphic state when a page is finished in PostScript.
      </action>
      <action context="Renderers" dev="JM" type="add">
        Added setting to enable dithered painting of filled rectangles in AFP and PCL.
      </action>
      <action context="Layout" dev="VH" type="fix">
        Bugfix: footnotes occurring within the forced height of a table row did not appear on the
        output
      </action>
      <action context="Renderers" dev="JM" type="update" fixes-bug="47031" due-to="Francois Fernandes">
        PDFGraphics2D.writeClip doesn't generate a clip command anymore when the clip path
        is empty.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="47000">
        Added a custom text painter for rendering SVG text using text operators when rendering
        to PostScript or EPS. Text is no longer painted as shapes, thus creating much smaller files.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Fixed a bug that left the PrintRenderer unconfigured even if a configuration was
        specified for "application/X-fop-print".
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="46882" due-to="Yegor Kozlov">
        Fixed the handling of CMYK colors in PDFGraphics2D.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="46489">
        Fixed a bug when combining a forced break with a "last" page-master. The restart
        of the algorithm would start at the index of the penalty corresponding to the last
        page-break. This has been changed to the index of the first element after the last
        page-break.
      </action>
      <action context="Fonts" dev="JM" type="add">
        Added a command-line tool to list all configured fonts
        (org.apache.fop.tools.fontlist.FontListMain).
      </action>
      <action context="Code" dev="AD" type="add" fixes-bug="46828" due-to="Dario Laera">
        Added the possibility to use CachedRenderPagesModel, to conserve memory in case
        of large documents with a lot of cross-references (area tree will be serialized to
        disk to avoid keeping it entirely in memory).
      </action>
      <action context="Fonts" dev="JM" type="add">
        AFP Fonts: Added support for full URI resolution on configured AFP fonts.
      </action>
      <action context="Renderers" dev="JM" type="add">
        AFP Output: Tag Logical Element (TLE) is now also allowed on fo:page-sequence
        (page group level).
      </action>
      <action context="Layout" dev="JM" type="fix">
        Fixed BPD trait and border painting for leaders with leader-pattern="space"
        (and similar cases).
      </action>
      <action context="Renderers" dev="JM" type="add">
        AFP Output: Added support for Invoke Medium Map (IMM).
      </action>
      <action context="Renderers" dev="JM" type="add">
        Introduced a new, additional intermediate format optimized for performance. Please see
        the intermediate format documentation for details.
      </action>
      <action context="Fonts" dev="JM" type="fix" fixes-bug="46686" due-to="Alok Singh">
        Use temporary directory for the font cache if the user home directory is not
        write-accessible.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="45342" due-to="Emil Maskovsky">
        AFP Fonts: Fixed interpretation of metric for fonts with fixed metrics and made sure
        all repeating groups in FNP (Font Position) are processed.
      </action>
      <action context="Renderers" dev="JM" type="add">
        AFP Output: Added a configuration option to override the resource level defaults in the
        code.
      </action>
      <action context="Code" dev="VH" type="fix" fixes-bug="46638">
        MinOptMaxUtil.toMinOptMax was converting LengthRangeProperty objects into illegal MinOptMax
        objects (in some cases opt could be inferior to min).
      </action>
      <action context="Layout" dev="VH" type="add" fixes-bug="46315" due-to="Georg Datterl">
        Added extension to disable column balancing before blocks spanning the whole page, in
        multiple-column documents.
      </action>
      <action context="Renderers" dev="JM" type="add">
        AFP Output: Bilevel images in resource groups as generated as hard page segments
        (instead of image objects) for better interoperability with older IPDS environments
        and for better printing performance.
      </action>
      <action context="Fonts" dev="JM" type="add">
        FOP now creates ToUnicode CMaps for single-byte fonts that don't use built-in
        encodings to help PDF text extractors interpreting characters.
      </action>
      <action context="Fonts" dev="JM" type="add">
        Added support for forcing single-byte encodings for TrueType fonts without
        creating an XML font metric file (see "encoding-mode" attribute on "font" element)
      </action>
      <action context="Layout" dev="JM" type="fix" fixes-bug="45306">
        Fixed fo:instream-foreign-object inside fo:marker.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Fixed black backgrounds occurring for transparent images in PCL output.
      </action>
      <action context="Renderers" dev="CB" type="fix" fixes-bug="46369">
        Fixed bug that caused AFP Renderer Extensions to be ignored.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="46319">
        Fixed a memory-leak in Marker.MarkerAttribute, where an instance was used both as key and value in
        a WeakHashMap, effectively neutralizing the benefit of using WeakReferences. Solved by extending
        PropertyCache to work for MarkerAttributes as well.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixed-bug="46360">
        Fixed a multi-threading issue when rendering SVG.
      </action>
      <action context="Renderers" dev="AC" importance="high" type="add">
        AFP Output: An AFPGraphics2D implementation which provides the ability to use Batik to drive the production of AFP Graphics (GOCA) output from SVG.
      </action>
      <action context="Renderers" dev="AC" importance="high" type="add">
        AFP Output: Resource group leveling, external streaming, and de-duplication of images and graphics using IncludeObject and ResourceGroup.
      </action>
      <action context="Renderers" dev="AC" importance="high" type="add">
        AFP Output: Native image embedding support (e.g. JPEG, GIF, TIFF) using ObjectContainer and a MOD:CA Registry implementation.
      </action>
      <action context="Fonts" dev="AC" type="fix">
        More robust AFP font parsing, although it is still in need of some rework in the future.
      </action>
      <action context="Images" dev="JM" type="add" fixes-bug="41657">
        Added support for SVG 1.2 functionality inside fo:instream-foreign-object.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="46240">
        Fixed a bug when combining break-before with a span change.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="46211" due-to="rogov.AT.devexperts.com">
        Fixed some multi-threading issues in FontCache.java:
        <ul>
        <li>remove the unused private readObject()</li>
        <li>make the changeLock member final (initialization-safety + impossible to reassign)</li>
        <li>perform the HashMap check for a failed font inside the synchronized block to avoid a race condition</li>
        </ul>
      </action>
      <action context="Renderers" dev="AD" type="add" fixes-bug="45113" due-to="Alexander Stamenov">
        Added PDF /Launch action: references to URIs using the file:// protocol will now generate
        a /Launch action as opposed to a more general /URI (which doesn't yield the expected result
        for this protocol).
      </action>
      <action context="Layout" dev="JM" type="fix">
        Fixed a problem where the BPD or a block area could be wrong if there is a nested,
        absolutely positioned area (for example a block-container).
      </action>
      <action context="Code" dev="VH" type="fix" fixes-bug="45971" due-to="Tow Browder">
        Improved the behaviour of the command line interface.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="40798">
        Bugzilla 40798: A conditional-page-master-reference with page-position="last" qualifies
        for a first page, if it is also the last. Additionally: also added support for
        page-position="only".
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="45842" due-to="Carsten Siedentop">
        Make fop.bat and fop.cmd use the %FOP_OPTS% environment variable.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="45795">
        PDF Output: Added support for handling 16-bit alpha channel. They are currently
        converted to 8 bits.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        PDF Output: Made sure the XMP Metadata stream is never compressed.
      </action>
      <action context="Fonts" dev="JM" type="fix" fixes-bug="45734" due-to="J. Frantzius">
        Fix for PFMReader after bug #43089 changed the behavior of PFMFile. Fixes baseline
        problems when Type 1 fonts are used in conjunction with XML font metric files.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="45616" due-to="Pavel Kysilka">
        Fix for table handling in RTF output, so the output works with OpenOffice and AbiWord, too.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="45667">
        Quick-fix to avoid a possible NullPointerException when using
        empty inlines and hyphenation.
      </action>
      <action context="Layout" dev="JM" type="add">
        Added missing generation of areas for empty grid units in tables with collapsing border
        model.
      </action>
      <action context="Code" dev="JM" type="fix" importance="high">
        Fixed memory leak in property cache (not cleaning stale PropertyCache$CacheEntry instances).
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Fixed text stroking in SVG when the stroke-width is zero.
      </action>
      <action context="Layout" dev="JM" type="fix">
        Fixed the source for a division by zero when the content of an fo:leader with
        leader-pattern="use-content" collapses to zero width during layout.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Fixed border trait parsing for the area tree XML when CMYK or ICC colors were used.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="45606" due-to="Pavel Kysilka">
        Fixed generation of "fonttbl" for RTF output to fix loading problem with AbiWord.
      </action>
      <action context="Layout" dev="JM" type="fix">
        Fixed ID resolution for nested bookmarks with duplicated IDs.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="45490" due-to="Thomas Stieler">
        Fixed a slight error when resolving non-file URLs: avoid
        altering the original 'href' if the protocol is other than 'file:'
      </action>
      <action context="Layout" dev="JM" type="fix" fixes-bug="45470">
        Added LayoutManagerMapping.registerMaker() to make registration of custom
        layout managers easier.
      </action>
      <action context="Layout" dev="LF" type="fix">
        Fixed absolute positioning of block-containers when specified
        using right and bottom instead of left and top.
      </action>
      <action context="Renderers" dev="AC" type="add">
        Added PDF encryption parameter support in configuration.
      </action>
      <action context="Layout" dev="LF" type="add">
        Allowing non-zero borders and padding on page regions when
        relaxed validation is turned on.
      </action>
      <action context="Layout" dev="LF" type="fix">
        Fixed an inconsistency in footnote handling that led to unnecessary
        empty areas in pages whose last normal line contains footnotes
        when the page bpd is not the same for all pages.
      </action>
      <action context="Code" dev="AD" type="update" importance="high">
        Changed FONode.addCharacters() parameter to closer match the signature of
        the standard SAX characters() event (reduces confusion and computations).
        <em>!! Implementors of extensions that subclass FONode directly, and
        offer an implementation for addCharacters() should take care to make
        similar modifications in their code !!</em>
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="45115" due-to="Martin Edge">
        Added a PCL-specific extension attribute on simple-page-master for controlling
        the simplex/duplex mode.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="45097">
        Corrected white-space-treatment for situations where an inline-node is the first/last
        child node of an fo:block, without preceding/following text.
      </action>
      <action context="Layout" dev="MB" type="add">
        Implemented word-by-ford font-selection strategy on text.
      </action>
      <action context="Layout" dev="MB" type="add">
        Support character-by-character font-selection strategy on fo:character element.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="44794">
        Added support for page-number-citation and page-number-citation-last
        of fo:inline. Corrected behavior for page-number-citation-last
        of fo:block: forward references now properly resolved.
      </action>
      <action context="Fonts" dev="JM" type="add">
        For auto-detected fonts it is now possible to specify that a font needs to be referenced
        rather than embedded (for the output formats that support this distinction).
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="42423">
        Added support for the "id" attribute on fo:wrappers when used
        as a child of the fo:flow.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="41500">
        Fixed a ClassCastException when using an fo:wrapper as a child
        of an fo:block-container.
      </action>
      <action context="Fonts" dev="AC" type="add" importance="high">
        Add support for font substitution.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="43650">
        PCL Renderer: Improved page format selection so it doesn't interfere with
        duplex printing.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="42703">
        Fixed a regression introduced by the fix for
        <link href="https://issues.apache.org/bugzilla/show_bug.cgi?id=44286">Bugzilla 44286</link>.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="43591">
        Activated min-height/max-height and min-width/max-width properties.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="44203">
        Fixed a logic error in Hyphenator.java:
        If the source had an associated InputStream, an UnsupportedOperationException was
        triggered.
      </action>
      <action context="Renderers" dev="AD" type="add" fixes-bug="44634">
        Add partial support for the "show-destination" property on fo:basic-link
        (PDF output only; see limitations on the compliance page)
      </action>
      <action context="Layout" dev="JM" type="add" importance="high">
        Added minimal support for integer keep values on the various keep properties on block-level
        FOs. For now, all integer values are treated the same (i.e. without strength distinction).
        Using integers allows to avoid overflows that can happen when "always" is used extensively.
      </action>
      <action context="Renderers" dev="JM" type="add">
        Added support for rendering pages using JPS (Java Printing System). See new example:
        examples/embedding/java/ExamplesFO2JPSPrint.java
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="41687">
        Restored ability to specify from/to and odd/even pages as well as the number of copies
        for printing from the command-line.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="44678" due-to="Antti Karanta">
        Added ability to pass a preconfigured PrinterJob instance to the PrintRenderer via
        the rendering options map.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="44743" due-to="Yegor Kozlov">
        Added a public accessor for reference to the current page to PDFGraphics2D.
      </action>
      <action context="Fonts" dev="JM" type="add" fixes-bug="44737" due-to="Jason Harrop">
        Added support for auto-configuring TrueType Collections. XML font metrics files for
        *.ttc fonts are not required anymore.
      </action>
      <action context="Renderers" dev="JM" type="update">
        When a JPEG image is embedded, an optionally embedded color profile is filtered out
        as it's already embedded separately in the PDF file.
      </action>
      <action context="Fonts" dev="JM" type="add" importance="high">
        Added support for addressing all glyphs available in a Type 1 font, not just the ones
        in the font's primary encoding.
      </action>
      <action context="Code" dev="JM" type="add" importance="high">
        Added an event handling framework which allows to get better feedback from within FOP
        with the ability to customize problem management.
      </action>
    </release>
    <release version="0.95" date="05 August 2008">
      <notes>
        <section>
          <title>Notes</title>
          <p>
            Besides the important changes listed below, the most important areas with
            improvements in this release are:
          </p>
          <ul>
            <li>
              Many bugfixes in tables, plus some new features (full support for keeps and
              breaks, border conditionality, background on columns and header/footer/body)
            </li>
            <li>
              Improvements and bugfixes for font handling and font
              auto-detection/-registration.
            </li>
            <li>
              Performance improvements and memory optimizations for the property handling
              in the FO tree.
            </li>
          </ul>
          <p>
            Please note that with this release, we've dropped support for Java 1.3.
            FOP will, from now on, <strong>require at least Java 1.4</strong>.
          </p>
          <p>
            There have been a few changes in tables that make FOP both more strict and more
            compliant to the Recommendation:
            <ul>
              <li>XSL-FO 1.1 explicitly states that a row-spanning fo:table-cell element is not
                allowed to span further than its enclosing fo:table-header/footer/body element
                (see bottom of <link href="http://www.w3.org/TR/xsl11/#fo_table">section
                  6.7.3</link>). From now on FOP will give a validation error if a document
                contains such an erroneous cell.
              </li>
              <li>
                <p>If an fo:table element contains explicit fo:table-column children, then those
                  elements set the total number of columns in the table. This means that a
                  validation error will now occur if a row contains more cells than available
                  columns. This change allows to improve performance, since the rendering of the
                  table may start as soon as the table-column elements have been parsed.</p>
                <p>If more flexibility is needed, then the fo:table-column elements may be just
                  omitted. The final number of columns will then be set by the row that has the
                  most cells.</p>
              </li>
            </ul>
          </p>
          <p>
            The image libraries Jimi and JAI are no longer needed (and used) for image loading.
            Instead we rely completely on the Image I/O API that has been introduced with
            Java 1.4. If you still need support for bitmap image formats that do not work
            out-of-the-box, we recommend adding
            <link href="http://jai-imageio.dev.java.net/">JAI Image I/O Tools</link>
            (an Image I/O compatible image codec package) to the classpath. JAI is still required
            for building the FOP distribution but it is optional for normal builds and at run-time.
          </p>
          <note>
            This final 0.95 release also includes all of the
            <a href="changes_0.95beta.html">changes made for Apache FOP 0.95beta</a>.
          </note>
        </section>
      </notes>
      <action context="Renderers" dev="JM" type="fix">
        Fixed a color selection problem which occurred after an image has been painted
        through the Graphics2DAdapter in PDF output.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="41306">
        Fixed page ordering problem with AWTRenderer.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="39980">
        Fixed image scaling for RTF output.
      </action>
      <action context="API" dev="JM" type="fix">
        Fixed the -imagein command-line option.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="43825" due-to="Maximilian Aster">
        Added support for fo:leader for RTF output (no full support!). Fixes problems with empty leaders
        being used to force empty lines among other issues.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="43824" due-to="Maximilian Aster">
        Added support for page-number-citation for RTF output.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="43606" due-to="Maximilian Aster">
        Fixed handling of proportional-column-width() and percentages for table column in RTF
        output.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="45295">
        Fixed NullPointerException when page-number-citations are used inside a marker.
      </action>
      <action context="Images" dev="JM" type="fix">
        Fixed two bugs concerning resolution handling with SVG images and their
        conversion to bitmaps for RTF output.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="44887" importance="high">
        Fixed potential multi-threading problem concerning the use of DecimalFormat.
      </action>
      <action context="Layout" dev="JM" type="fix" fixes-bug="44412">
        Regression bugfix: Multiple collapsible breaks don't cause empty pages anymore.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Fixed resolution handling inside AWT preview dialog.
      </action>
      <action context="Renderers" dev="JM" type="fix" importance="high">
        Fixed positioning of absolutely positioned block-containers in multi-column documents.
      </action>
      <action context="Renderers" dev="JM" type="fix" importance="high">
        Fixed rendering of fixed block-containers in AFP output.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="44621" importance="high">
        Various bugfixes for table layout.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Fixed regression causing bad positioning of block-containers if used as descendant
        of a table-cell.
      </action>
      <action context="Fonts" dev="JM" type="fix">
        Fixed text extraction problem with ZapfDingbats and Symbol font in PDF output.
      </action>
      <action context="Images" dev="JM" type="fix">
        Fixed a performance problem concerning image serialization.
      </action>
      <action context="Fonts" dev="JM" type="fix">
        Fixed NullPointerException when loading a TrueType font using XML font metric files.
      </action>
    </release>
    <release version="0.95beta" date="26 March 2008">
      <notes>
        <section>
          <title>Notes</title>
          <p>
            Besides the important changes listed below, the most important areas with
            improvements in this release are:
          </p>
          <ul>
            <li>
              Many bugfixes in tables, plus some new features (full support for keeps and
              breaks, border conditionality, background on columns and header/footer/body)
            </li>
            <li>
              Improvements and bugfixes for font handling and font
              auto-detection/-registration.
            </li>
            <li>
              Performance improvements and memory optimizations for the property handling
              in the FO tree.
            </li>
          </ul>
          <p>
            Please note that with this release, we've dropped support for Java 1.3.
            FOP will, from now on, <strong>require at least Java 1.4</strong>.
          </p>
          <p>
            There have been a few changes in tables that make FOP both more strict and more
            compliant to the Recommendation:
            <ul>
              <li>XSL-FO 1.1 explicitly states that a row-spanning fo:table-cell element is not
                allowed to span further than its enclosing fo:table-header/footer/body element
                (see bottom of <link href="http://www.w3.org/TR/xsl11/#fo_table">section
                  6.7.3</link>). From now on FOP will give a validation error if a document
                contains such an erroneous cell.
              </li>
              <li>
                <p>If an fo:table element contains explicit fo:table-column children, then those
                  elements set the total number of columns in the table. This means that a
                  validation error will now occur if a row contains more cells than available
                  columns. This change allows to improve performance, since the rendering of the
                  table may start as soon as the table-column elements have been parsed.</p>
                <p>If more flexibility is needed, then the fo:table-column elements may be just
                  omitted. The final number of columns will then be set by the row that has the
                  most cells.</p>
            </li>
            </ul>
          </p>
          <p>
            The image libraries Jimi and JAI are no longer needed (and used) for image loading.
            Instead we rely completely on the Image I/O API that has been introduced with
            Java 1.4. If you still need support for bitmap image formats that do not work
            out-of-the-box, we recommend adding
            <link href="http://jai-imageio.dev.java.net/">JAI Image I/O Tools</link>
            (an Image I/O compatible image codec package) to the classpath. JAI is still required
            for building the FOP distribution but it is optional for normal builds and at run-time.
          </p>
        </section>
      </notes>
      <action context="Layout" dev="JM" type="fix" fixes-bug="44412">
        Bugfix: The before border of a block is no longer swallowed if its first child issues
        a break-before.
      </action>
      <action context="Layout" dev="JM" type="fix" fixes-bug="44412">
        Bugfix: When there was a forced break after a block with (conditional) borders the
        border-after wasn't painted.
      </action>
      <action context="Layout" dev="VH" type="fix">
        Bugfix: a forced break inside a cell was ignored when occurring before the minimum height
        set on the enclosing row was set.
      </action>
      <action context="Layout" dev="JM" type="fix">
        Fixed exceptions when lists, tables or block-container are children of an inline-level
        FO.
      </action>
      <action context="Layout" dev="VH" type="add" importance="high">
        Added support for background on fo:table-column and fo:table-header/footer/body elements.
      </action>
      <action context="Layout" dev="VH" type="fix">
        Fixed the rendering of the area of a table corresponding to border-separation, which must
        be filled with the background of the table, and not the rows.
      </action>
      <action context="Layout" dev="VH" type="fix">
        Improved conformance: even if a table-cell spans several rows its background must
        correspond to the first row spanned.
      </action>
      <action context="Renderers" dev="JM" type="fix" due-to="Gordon Cooke">
        Slight improvement for thin lines in Java2D/AWT output.
      </action>
      <action context="Layout" dev="VH" type="add">
        Added full support for keep-with-previous on fo:table-row and in fo:table-cell elements.
      </action>
      <action context="Code" dev="MB" type="add">
        Turned on XInclude processing for the main source given on the command line.
      </action>
      <action context="Fonts" dev="JM" type="fix" fixes-bug="44451" due-to="Justus Piater">
        Improved the font auto-detection so fonts accessed using the font-family name are
        selected with higher accuracy.
      </action>
      <action context="API" dev="JM" type="remove">
        Removed deprecated methods in the "apps" package that were left-overs from the API
        discussions.
      </action>
      <action context="Fonts" dev="JM" type="add">
        Added support for unusual font encodings (like for Symbol or Cyrillic fonts) of Type 1
        fonts in PDF and PostScript output.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="44321">
        Moved to the FO tree stage the check for break-before/after on table-row while spanning in
        progress.
      </action>
      <action context="Layout" dev="VH" type="add">
        Added full support for breaks before and after table cells (that is, break-before/after set
        on the first/last child of a cell).
      </action>
      <action context="Layout" dev="VH" type="add">
        Added full support for breaks inside the cells of a table.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="41631">
        Added correct percentage resolution for arguments to the proportional-column-width() function.
      </action>
      <action context="Fonts" dev="JM" type="fix">
        Bugfix for date formatting with negative time zones in the PDF's Info object.
        This affected PDF/A compliance.
      </action>
      <action context="Renderers" dev="JM" type="add">
        Added an option to disable the default sRGB profile in PDF output for those who
        don't care about color fidelity, but care about PDF file size.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="43705">
        Fixed a bug when the rgb-icc() function was used either before the fo:declarations,
        or in documents without a fo:declarations node. In such cases, the sRGB fallback
        is now used to avoid an ugly NullPointerException.
      </action>
      <action context="Code" dev="AD" type="add">
        Added very basic parsing for the xml:lang shorthand.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="44343">
        Fixed a bug when using relative font-size (smaller/larger) in combination
        with percentages.
      </action>
      <action context="Fonts" dev="JM" type="fix">
        Bugfix for handling of optional tables in subset TrueType fonts. This bug caused errors
        in various PDF viewers.
      </action>
      <action context="Renderers" dev="JM" type="add">
        Added support for the natural language indentifier ("Lang" in the document catalog)
        for PDF documents based on the language/country values on fo:page-sequence.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="44286" due-to="Stefan Ziel">
        Fixed a memory-leak in XMLWhiteSpaceHandler.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="44289">
        Fixed the resolution of borders when header/footer is omitted at page breaks.
      </action>
      <action context="Layout" dev="VH" type="add" importance="high" fixes-bug="43934">
        Added support for conditional borders in tables, for both the separate and the collapsing
        border model.
      </action>
      <action context="Layout" dev="JM" type="fix" fixes-bug="44160">
        Fixed a possible IndexOutOfBoundsException that could happen with certain constellations
        when footnotes are used.
      </action>
      <action context="Layout" dev="JM" type="fix">
        Compliance fix: for absolutely positioned block-containers, "top" wasn't
        interpreted correctly.
      </action>
      <action context="Extensions" dev="JM" type="add">
        New extension attribute fox:transform on fo:block-container allows free-form transformation
        (rotation, scaling etc.) of absolute and fixed block-containers. Supported only
        for PDF, PS and Java2D-based renderers.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Fixed logic error setting the transformation matrix for block-container viewports
        (applies to absolute and fixed block-containers only).
        Important: External renderer implementations need to adjust for the change and implement
        the new method concatenateTransformationMatrix(AffineTransform) if the renderer is
        derived from AbstractPathOrientedRenderer.
      </action>
      <action context="Images" dev="JM" importance="high" type="fix">
        A new image loading framework has been introduced to fix various problems with external
        graphics and improve performance.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Fixed generation of named destinations so it works when the PDF document is encrypted.
      </action>
      <action context="Renderers" dev="JM" type="add">
        PostScript output now generates the bounding box DSC comments for the whole document.
      </action>
      <action context="Renderers" dev="JM" type="add">
        Added support for PDF page labels.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="44176" due-to="Patrick Jaromin">
        Added support for custom fonts in Java2DRenderer and derived renderers.
      </action>
      <action context="Extensions" dev="JM" type="add" importance="high">
        Added new extension element: fox:external-document. It allows to add whole documents
        such as multi-page TIFF images to be inserted as peers to a page-sequence. Each image
        will make up an entire page. See the documentation for details.
      </action>
      <action context="Layout" dev="JM" type="add">
        Added minimal support for the .minimum/.maximum components of block/inline-progression-dimension
        on fo:external-graphic and fo:instream-foreign-object.
      </action>
      <action context="Layout" dev="JM" type="add" importance="high">
        Added support for scale-down-to-fit and scale-up-to-fit (introduced in XSL 1.1).
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="43633">
        Bugfix: content of a row with zero height overriding the previous row
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="37993">
        Bugfix: allow multiple bookmarks to point at the same destination.
      </action>
      <action context="Layout" dev="JM" type="fix" fixes-bug="43917">
        Bugfix for border-after painting and element list generation when a
        forced break is involved.
      </action>
      <action context="Layout" dev="JM" type="fix" fixes-bug="40230">
        Bugfix: no empty page is generated anymore if there's no content
        after a break-after.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="43803">
        Restored proper handling of fo:table-cell having no children, which is allowed in relaxed
        validation mode.
      </action>
      <action context="Layout" dev="JM" type="fix">
        Memory Leak fixed in the Property Cache. Fixed by Jeremias Maerki. Reported and Tested By
        Chris Bowditch.
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="43712">
        Bugfix in tables: wrong element generation by the merging algorithm when glues must be
        produced to cope with conditional spaces. The corresponding length was added twice: one in
        the glue itself and one in the following box.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix for URI resolution: Make StreamSources without system identifier work again.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="43910" due-to="David Delbecq">
        Avoid a NullPointerException in AreaTreeHandler.endDocument().
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="43766">
        Bugfix: breaks generated by the merging algorithm for a table-row containing empty cells
        had always a penalty of 900.
      </action>
      <action context="Layout" dev="JM" type="add" fixes-bug="43605" due-to="V. Schappert">
        Added methods for fo:page-number-citation(-last) in FOEventHandler.
      </action>
      <action context="Layout" dev="VH" type="add">
        Step towards performance: the collapsing-border resolution algorithm no longer triggers the
        retrieving of the whole table, when possible.
      </action>
      <action context="Layout" dev="VH" type="fix">
        In case of missing cells the border-end of the table was applied to an inner cell, instead
        of the (empty) cell in the last column.
      </action>
      <action context="Layout" dev="VH" type="fix">
        Fixed the resolution of borders with table-columns (border-before/after was wrongly applied
        to every cell of the column).
      </action>
      <action context="Layout" dev="VH" type="fix" fixes-bug="42768">
        Fixed the resolution of border-end on cells spanning several rows.
      </action>
      <action context="Fonts" dev="JM" type="fix" fixes-bug="43835" due-to="David Churavy">
        Bugfix: Use Font.getName() (logical font name) instead of Font.getFontName()
        (localized) when registering fonts from AWT.
      </action>
      <action context="Fonts" dev="JM" type="fix">
        Made the way TrueType fonts are embedded in PDF compliant to the
        specification so viewers correctly identify subset fonts.
      </action>
      <action context="Fonts" dev="JM" type="fix">
        Fixed font-autodetection so fonts with uppercase extensions are
        detected, too.
      </action>
      <action context="Fonts" dev="JM" type="update">
        Improved font auto-detection and handling of AWT-supplied fonts in order
        to achieve better results when using multiple output formats. Whenever
        possible, the font names appearing in the operating system can also
        be used in XSL-FO.
      </action>
      <action context="Renderers" dev="JM" type="fix">
        Fixed regression: transparent-page-background was not recognized for PNG output.
      </action>
      <action context="Layout" dev="VH" type="add">
        Added check for table-cells which span more rows than available in their parent element
        (table-header/footer/body).
      </action>
      <action context="Layout" dev="AD" type="add">
        Added support for fo:markers in fo:inline and fo:basic-link.
      </action>
      <action context="Renderers" dev="JM" type="update" importance="high">
        PDF Transcoder (SVG) text painting has been completely rewritten.
        Except for some special cases (with filters for example), all text
        (including flow text) is now painted using PDF text operators.
      </action>
      <action context="Layout" dev="AD" type="add" fixes-bug="42748">
        Added support for ids on empty fo:inlines.
      </action>
      <action context="Fonts" dev="AC" type="add" fixes-bug="42982" due-to="Max Berger">
        Add Font support in jar files.
      </action>
      <action context="Renderers" dev="AC" type="fix" fixes-bug="43042" due-to="Andrejus Chaliapinas">
        Postscript extension cleanup.
      </action>
      <action context="Renderers" dev="AC" type="fix" fixes-bug="43587">
        Fix to avoid ClassCastException where multiple ps:ps-comments are declared within fo:declarations.
      </action>
      <action context="Fonts" dev="AC" type="fix" fixes-bug="43143">
        Fix to avoid NullPointerException when parsing ExpertEncoded and ExpertSubsetEncoded Type 1 fonts.
      </action>
      <action context="Renderers" dev="AC" type="fix" fixes-bug="43439">
        Fixes missing TLE value attribute when using AreaTree input with the AFP renderer.
      </action>
      <action context="Renderers" dev="JM" type="add">
        Added generic structures to the PDF library in order to support PDF
        file in fo:external-graphic later.
      </action>
      <action context="Code" dev="JM" type="add" fixes-bug="43597" due-to="Max Berger">
        Added support for SVGZ.
      </action>
      <action context="Layout" dev="JM" type="fix">
        Bugfix for NPE with empty table-row (regression from 0.93).
      </action>
      <action context="Renderers" dev="JM" type="add">
        Added a configuration setting to the PCL renderer to disable PJL commands.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="43464" due-to="Bruno Feurer">
        Fix to avoid a ClassCastException in renderer configuration.
      </action>
      <action context="Renderers" dev="JM" type="fix" fixes-bug="43439" due-to="Adrian Cumiskey">
        Fixed the restoration of the TLE values from the intermediate format
        for the AFP extension elements.
      </action>
      <action context="Renderers" dev="JM" type="add" fixes-bug="43041" due-to="Adrian Cumiskey">
        Added a configuration setting for the renderer/device resolution to the AFP renderer.
      </action>
      <action context="Layout" dev="AD" type="update">
        Facilitate the implementation for font-selection-strategy:<br/>
        • Changed FontInfo.fontLookup to always return an array of FontTriplet.<br/>
        • Changed CommonFont.getFontState to return an array of FontTriplet.<br/>
        • Initial modifications to the related LMs: initialized with
            the font corresponding to the first of the triplets.<br/>
      </action>
      <action context="Layout" dev="AD" type="update">
        PropertyCache phase 2:<br/>
        • improvement of the PropertyCache itself should now guarantee acceptable
            performance of the static caches in multi-session environments, which is
            a possible problem with synchronizedMap.<br/>
        • changed CommonFont to use the cache:
            added CachedCommonFont to contain the properties that are always cacheable
            CommonFont itself is only cached if the remaining properties are absolutes.<br/>
        • changed CommonHyphenation, KeepProperty, ColorProperty and FontFamilyProperty to use the cache.<br/>
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="42705">
        Fixed swallowing PCDATA in text-node children of
        retrieved markers.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="42703">
        Fixed erroneous white-space removal in retrieved markers.
      </action>
      <action context="Layout" dev="AD" type="fix" fixes-bug="43274" due-to="ckohrn.at.tng.de">
        Fixed erroneous usage of inherited color-values in SVG.
      </action>
    </release>
    <release version="0.94" date="24th August 2007">
      <action context="Code" dev="JM" type="fix">
        AFP Renderer: Bugfix for 1 bit images where the width is not a multiple of 8.
      </action>
      <action context="Code" dev="MM" type="add" importance="high">
        Support for keep-together.within-line="always".
      </action>
      <action context="Code" dev="MM" type="fix">
        Fixed incomplete support for Unicode Word Joiner characters (U+2060 and U+FEFF).
      </action>
      <action context="Code" dev="VH" type="add">
        Add support for conditional spaces in table-cells.
      </action>
      <action context="Code" dev="AD" type="add" fixes-bug="42785" due-to="Max Berger">
        Support alignment-adjust for images.
      </action>
      <action context="Code" dev="AD" type="add" fixes-bug="41044" due-to="Richard Wheeldon">
        Partial application of the patch in Bugzilla 41044:
          * addition of a generic PropertyCache to be used by all Property
            types that can be safely canonicalized
          * modified EnumProperty, StringProperty, NumberProperty, EnumNumber
            and FixedLength to make use of the cache infrastructure
      </action>
      <action context="Code" dev="AD" type="update" fixes-bug="41656">
        Refactoring in the fo package:
        -> removal of the childNodes instance member in fop.fo.FObj
        -> addition of a firstChild instance member in fop.fo.FObj
        -> addition of a siblings instance member in fop.fo.FONode
        -> addition of a FONodeIterator interface in FONode + corresponding implementation in FObj
        -> changed implementations of FObj.addChildNode(), .removeChild() and .getChildNodes()
      </action>
      <action context="Code" dev="AD" type="update" fixes-bug="42089" due-to="Adrian Cumiskey">
        Code cleanup and restructuring:
        Refactoring of PageSequenceLayoutManager and provide common FObj id property use
      </action>
      <action context="Code" dev="AD" type="add">
        Slight improvement of relative font-weight handling in the properties
        package.
      </action>
      <action context="Code" dev="JM" type="update">
        Updated PDF/A-1b support according to ISO-19005-1:2005/Cor.1:2007.
      </action>
      <action context="Code" dev="JM" type="add" importance="high" fixes-bug="41831" due-to="Adrian Cumiskey">
        Add support for font auto-detection (easier font configuration).
      </action>
      <action context="Code" dev="JM" type="update" fixes-bug="42406" due-to="Hussein Shafie">
        Use source resolution setting for bitmap images which don't provide their own
        resolution.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="42109" due-to="Paul Vinkenoog">
        Fixed the rendering of zero-width spaces for certain fonts by not generating them into
        the area tree.
      </action>
      <action context="Code" dev="LF" type="fix">
        Fixed a problem with disappearing footnotes inside hyphenated inlines (and footnotes with hyphenated inline child).
      </action>
      <action context="Code" dev="JM" type="add" fixes-bug="42067" due-to="Paul Vinkenoog">
        Add support for exact positioning of internal PDF links.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="41434" due-to="Martin Kögler">
        Fix PDF Genaration for non-ASCII compatible locales.
      </action>
      <action context="Code" dev="VH" type="fix">
        Fix several exceptions when break-before/after is set on the first/last row of a table.
      </action>
      <action context="Code" dev="VH" type="fix">
        Fix extra page break when break-before is set on both a table and its first row.
      </action>
      <action context="Code" dev="VH" type="fix">
        Make keep-with-next and keep-with-previous work on fo:table.
      </action>
      <action context="Code" dev="VH, JM" type="add" importance="high" fixes-bug="36934">
        Add support for the collapsing-border model in tables.
      </action>
      <action context="Code" dev="JB" type="add" importance="high">
        Add support for named destinations in PDF.
      </action>
      <action context="Code" dev="JM" type="fix">
        Fixed a problem with keep-with-next on table-rows. Once a keep-with-next was set
        inside a table, the FO following the table would always be glued to the previous table.
      </action>
      <action context="Code" dev="JM" type="fix">
        Fixed a problem with the auto-rotate-landscape setting in the PostScript renderer.
        It didn't generate the right setpagedevice command.
      </action>
      <action context="Code" dev="JM" type="fix">
        Fixed an IllegalArgumentException for absolutely positioned block-containers with a
        border and no height/bpd set.
      </action>
      <action context="Code" dev="JM" type="add">
        Add support for a two-pass production for PostScript output to minimize file size. This
        adds images only once and adds only the fonts that are really used.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="41652">
        If a line contained nothing but a linefeed, this didn't produce empty lines.
        Replaced the auxiliary zero-width box with a glue the width of a line,
        and shrinkable to zero-width.
      </action>
      <action context="Code" dev="VH" type="fix" fixes-bug="40120" due-to="Adrian Cumiskey">
        Stricter FOP user configuration checking
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="41572" due-to="Erwin Tratar">
        Fix parsing 'url(...)' when the URL itself contains a bracketed part.
      </action>
      <action context="Code" dev="JM" type="add">
        Support for GIF images in RTF output (RTF handler, only. Does not affect the RTF library.)
      </action>
      <action context="Code" dev="JM" type="fix">
        Fix for NPE with PNG images for RTF output.
      </action>
      <action context="Code" dev="AD" type="fix">
        Fix for properly parsing font-family names containing spaces.
      </action>
      <action context="Code" dev="JM" type="add">
        Support for soft masks (transparency) with ImageIO image adapter.
      </action>
      <action context="Code" dev="LF" type="fix" fixes-bug="41019">
        Fix incorrect behaviour of the BreakingAlgorithm when some inline content is wider than
        the available ipd, causing a restart.
      </action>
      <action context="Code" dev="JM" type="fix">
        Fix for PDF corruption when a TrueType font with spaces in its name is embedded and no
        XML font metrics file for that font is used.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="41426" due-to="Adrian Cumiskey">
        Fix for ClassCastException when fo:wrapper was used as direct child of fo:flow.
        Note: "id" attributes are still not handled properly on fo:wrapper!
      </action>
      <action context="Code" dev="MM" type="add">
        Added support for the soft hyphen (SHY) character.
      </action>
      <action context="Code" dev="MM" type="add">
        Added support for line-height-shift-adjustment property.
      </action>
      <action context="Code" dev="SP" type="add">
        Added support for the system property fop.home to
        cli.Main.getJARList().
      </action>
      <action context="Code" dev="JM" type="add" fixes-bug="40930">
        Added support for display-align for table-cell in RTF output.
      </action>
      <action context="Code" dev="MM" type="add" importance="high">
        Added support for UAX#14 type line breaking. Support does not extend across nested fo:inline elements.
      </action>
    </release>
    <release version="0.93" date="9 January 2007">
      <notes>
        <section>
          <title>Notes</title>
          <p>This is the first production grade release of the new FOP
            codebase.</p>
          <ul>
            <li>It contains the new API first introduced in release 0.92
              beta. The preceding API has been removed.
            </li>
            <li>
              See the <link href="../compliance.html">compliance page</link> for an
              overview of the compliance of this release with the XSL 1.0 and
              1.1 recommendations.
            </li>
            <li>
              This release again contains many bug fixes and new features. See
              below for details.
            </li>
            <li>
              See the <link href="../knownissues.html">known issues page</link>
              for an overview of the known issues with this release.
            </li>
          </ul>
          <p>Caveats:</p>
          <ul>
            <li>
              You may experience different behaviour compared to version 0.20.5.
              Please consult the <link href="upgrading.html">"Upgrading"</link> page for details.
            </li>
          </ul>
        </section>
      </notes>
      <action context="Code" dev="BD" type="add" importance="high">
        Added support for the use of Open Type fonts
      </action>
      <action context="Code" dev="BD" type="update" fixes-bug="5535" due-to="Adam Strzelecki, Victor Mote" importance="high">
        Enabled Copy/Paste from PDF content in Acrobat Reader for text using embedded TrueType fonts.
      </action>
      <action context="Code" dev="SP" type="update" fixes-bug="41044" due-to="Richard Wheeldon">
        Commented out unused properties, in order to minimize memory usage.
      </action>
      <action context="Code" dev="SP" type="update" fixes-bug="41009" due-to="Richard Wheeldon">
        Removed unused attributes from TableCell.
      </action>
      <action context="Code" dev="JM" type="add">
        Added initial support for loading fonts without a pre-created XML font metric
        file.
      </action>
      <action context="Code" dev="JM" type="add" fixes-bug="40729" due-to="Peter Coppens" importance="high">
        Support for the rgb-icc() function and for a proprietary cmyk() function (for device CMYK
        colors only through the PDF renderer so far).
      </action>
      <action context="Code" dev="JM" type="update" fixes-bug="40813" due-to="Richard Wheeldon">
        Minor fixes and improvements for the AWT Preview (keyboard shortcuts, scrolling, windows
        setup).
      </action>
      <action context="Code" dev="JM" type="add" fixes-bug="40849" due-to="Dominic Brügger">
        Added support for SVG in fo:instream-foreign objects for RTF output.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Fixed bug when the sum of column widths of a table is larger than the
        specified widths. The table width was not adjusted.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Nested tables with headers and footers were not handled correctly and could
        overlap with the region-after.
      </action>
      <action context="Code" dev="JM" type="add" fixes-bug="40519" due-to="Oliver Hernàndez Valls">
        Added support for CCITT compression in the TIFFRenderer by switching to the ImageWriter
        abstraction from XML Graphics Commons.
      </action>
      <action context="Code" dev="JM" type="add">
        Extension properties fox:orphan-content-limit and fox:widow-content-limit which
        help with list-block and table layout. See the documentation for details.
      </action>
      <action context="Code" dev="JM" type="add">
        Configuration option in the Java2D-based renderers that allows to disable the default
        white background in order to produce bitmap output with transparency.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="39414">
        Split up FOText instances larger than 32K characters to avoid
        integer overflow during layout.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Corrected painting of shading patterns and position of links for SVG images
        inside FO documents.
      </action>
      <action context="Code" dev="AD" type="update">
        Minor fix: correctly set negative values for ipd/bpd to zero.
      </action>
      <action context="Code" dev="AD" type="update" fixes-bug="35656">
        Rework of default column-creation / column-width setting from
        cells in the first row.
      </action>
      <action context="Code" dev="AD" type="update" fixes-bug="40270" due-to="Gary Reed">
        Added relaxed validation for empty list-item-*, as suggested by Gary Reed.
      </action>
      <action context="Code" dev="AD" type="update">
        Modified proportional-column-width() function to log an error if used
        with table-layout=auto
      </action>
      <action context="Code" dev="AD" type="fix">
        Deferred property resolution for markers until they are actually retrieved,
        which leads to percentages and relative font-sizes now getting the correct
        values. Also deferred white-space-handling for markers.
      </action>
      <action context="Code" dev="JM" type="update">
        Changed the way overflowing pages are handled. The overflow property on region-body
        is now used to define the behaviour.
      </action>
      <action context="Code" dev="JM" type="fix">
        Fixed a memory-leak: The FO tree part of a page-sequence was not released when a
        page-sequence was finished.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Table headers and footers were swallowed when a table was nested in a list-block.
      </action>
      <action context="Code" dev="JM" type="fix">
        Fixed a bug with indent handling when margins are used on a surrounding block and
        not start/end-indent.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="40106" due-to="Jeroen Meijer">
        Compatibility fix for GCJ (GNU Classpath): Using "UTF-16BE" instead of "UnicodeBigUnmarked"
        encoding.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="40062" due-to="Gilles Beaugeais">
        Fixed handling for CCITT Group 4 TIFF images with fill order 2.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="40048" due-to="Igor Istomin">
        Fixed setting of page margins in AWT Renderer like it was done in the print renderer.
      </action>
      <action context="Code" dev="JM" type="fix">
        Fixed two memory-leaks in image handling. The image cache is finally working
        properly.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="39608">
        Let numeric property values without a unit be treated as pixels like in HTML.
        This fixes certain NullPointerException when no units are specified.
        (Note: the use of pixels in XSL-FO is discouraged!)
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Potential multi-threading issue (ConcurrentModificationException)
        eliminated for ElementMapping classes.
      </action>
      <action context="Code" dev="JM" type="fix">
        No more System.exit() and look &amp; feel setting calls inside the reusable
        parts of the AWT viewer.
      </action>
      <action context="Code" dev="JM" type="fix">
        Proper escaping of characters in list-items labels for RTF output.
      </action>
      <action context="Code" dev="MM" type="fix">
        Bugfix: FOUserAgent specific configuration parameters specified in config file
        were not set when FOP was invoked from command line.
      </action>
      <action context="Code" dev="JM" type="add" importance="high">
        Added support for PDF/A-1b and PDF/X-3:2003. (Note: this may still be a bit
        incomplete. Feedback is welcome!)
      </action>
      <action context="Code" dev="JM" type="add">
        The CIDSet object is now generated for CID fonts which are embedded in PDFs.
        (Required by PDF/A).
      </action>
      <action context="Code" dev="JM" type="update" importance="high">
        The Java2DRenderer (and therefore the print and bitmap renderers) is now
        offering the same quality as the PDF and PS renderers. Note: There can still
        be little differences between PDF and Print/PNG/TIFF because the latter uses
        a different font metrics source.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="39712">
        Bugfix: components of the border-separation property weren't set when
        in shorthand-mode, leading to a NPE being thrown.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Table headers were omitted when a table is a child of a block-container.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Bookmarks in PDF will be generated even if some bookmarks cannot be
        resolved.
      </action>
      <action context="Code" dev="AD" type="fix" fixes-bug="39560">
        Bugfix: the interaction between the table FOs and properties package in
        determining initial values for column-number should be a one-time process,
        not repeated when the table is in a marker that is retrieved.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: All fonts names were converted unnecessarily to lower case in RTF output.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: The combination of hyphenation and kerning resulted in slightly ragged
        right ends for right-aligned and justified text.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: NullPointerException in AreaAdditionUtil in a table-cell spanning
        multiple pages and with a marker.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="39533">
        Bugfix: NullPointerException in RTF output when a table does not contain
        table-columns.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="39607" due-to="Julien Aym&#x00E9;">
        Bugfix: NullPointerException in RTF library when there are no borders on
        the parent table.
      </action>
      <action context="Code" dev="JM" type="add" importance="high">
       Automatic support for all fonts available to the Java2D subsystem for all
       Java2D-descendant renderers (TIFF, PNG, print, AWT).
     </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Improved baseline detection in TTFReader for TrueType fonts.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="39443">
        Bugfix: tables nested in inline elements caused a NullPointerException.
      </action>
      <action context="Code" dev="JM" type="update">
        The default sRGB color profile provided by the Java class library is no longer
        embedded if it is encountered. This should reduce the PDF size considerably.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="39443">
        Bugfix: Sections with span="all" lead to overlapping text if spanning multiple pages.
      </action>
      <action context="Code" dev="MM" type="fix">
        Bugfix: Percentages in vertical-align property values were not correctly handled.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="38243" due-to="Gerhard Oettl">
        Bugfix: Gaps in table-columns cause a NullPointerException.
      </action>
      <action context="Code" dev="JM" type="update" fixes-bug="38946" due-to="Max Berger">
        Changed the internal representation of colors to use Java's own color infrastructure
        instead of FOP's home-grown classes.
      </action>
      <action context="Code" dev="MM" type="fix">
        Bugfix: TABs were not correctly replaced by spaces in some circumstances.
      </action>
      <action context="Code" dev="JM" type="update">
        Content in block-containers makes better use of shrink to fit content vertically
        into the available area. This can be used indirectly to justify content vertically
        in a block-container.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: basic-links with internal destinations in documents with multiple
        page-sequences sometimes pointed at the wrong page.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Fixed ClassCastException when retrieve-marker is used as a direct child
        if static-content in which case leading and trailing white space is not properly
        removed.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="39285">
        Bugfix: Fixed OutOfMemoryException with long data URLs (RFC 2397).
      </action>
      <action context="Code" dev="JM" type="add" fixes-bug="39118" due-to="Pierre-Henri Kraus">
        Initial support for page-number-citation-last (XSL 1.1). Works without problems
        only for page-sequence so far.
      </action>
    </release>
    <release version="0.92beta" date="18 Apr 2006">
      <action context="Code" dev="JM" type="fix">
        Bugfix: The generation of the PDF "d" (setdash) command was assuming that
        only integer values can be used but that isn't the case. Dash patterns
        PDFGraphics2D would be wrong in the process.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Fixed a division by zero problem in TTFReader and improved the detection
        of the capHeight and xHeight font metric values for TrueType fonts.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Allow URLs in basic-link's external-destination to be wrapped in "url()".
      </action>
      <action context="Code" dev="MM" type="fix">
        Bugfix: Corrected enumerated property value for white-space property
        from "no-wrap" to "nowrap".
      </action>
      <action context="Code" dev="MM" type="fix" fixes-bug="38457">
        Bugfix: Added support for white-space-treatment="preserve" in particular to
        support the white-space="pre" short hand property.
      </action>
      <action context="Code" dev="JM" type="fix">
        Corrected expectation and behaviour for the text-indent property to only apply
        to the first line area generated by a block.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix for invalid handling of ICC color profiles in JPEG images and for
        dealing with CMYK JPEG images with the Adobe APPE marker.
      </action>
      <action context="Code" dev="JM" type="add">
        Initial support for page-position="last" added.
      </action>
      <action context="Code" dev="JM" type="add">
        Reenabled loading of user-supplied hyphenation patterns that was available in
        FOP 0.20.5. (See "hyphenation-base" option in the user configuration)
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Certain filter combinations in PDF could lead to invalid PDFs.
        DecodeParams were not properly handled.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: CCITT Group 4 encoded TIFF images with multiple strips are now properly
        embedded in PDF files.
      </action>
      <action context="Code" dev="JM" type="add">
        Added support for fixed-width spaces.
      </action>
      <action context="Code" dev="JM" type="add">
        Added support for kerning.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Fixed a copy/paste error in the table layout code that caused wrong page
        break decisions when table-headers and/or table-footers are used.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Fixed an NPE that was thrown when a table was used inside a footnote-body.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Fixed a problem with certain TrueType fonts which are missing the "PCLT"
        table, where a baseline-shift="sub" had no effect due to a missing x-height value.
        (Note: This only affects TTFReader, so the font metric file has to be regenerated.)
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: When the base URL was specified as a file system path, the constructed
        URL was wrong.
      </action>
      <action context="Code" dev="JM" type="add" due-to="Jirí Mareš">
        Support for "userconfig" attribute in FOP Ant Task.
      </action>
      <action context="Code" dev="JM" type="add">
        Initial support for XMP metadata (PDF 1.4) under fo:declarations.
      </action>
      <action context="Code" dev="AD" type="add">
        Added support for the background-position shorthand property.
      </action>
      <action context="Code" dev="AD" type="add">
        Added support for the font shorthand property.
      </action>
      <action context="Code" dev="JM" type="add" fixes-bug="38618" due-to="Max Berger">
        Added support for system-color() function.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Fixed two causes for ClassCastExceptions in BlockContainerLayoutManager.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: padding-top and padding-bottom on list-items could lead to wrong page
        break decisions and thus to overlapping text.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: break-before and break-after were ignored on list-items.
      </action>
      <action context="Code" dev="LF" type="fix" fixes-bug="38507">
        Bugfix: The elements representing a non-breaking space weren't always correct.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="38453">
        Bugfix: Text-decoration was not promoted if no text-decoration attribute was
        specified on a nested element.
      </action>
      <action context="Code" dev="AD" type="add" fixes-bug="38282"
              due-to="Gerhard Oettl (gerhard.oettl.at.oesoft.at)">
        Added support for the from-table-column() function.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="38397">
        Bugfix: Spanned cells could lead to an false error message about overlapping
        cells and ultimately a NullPointerException.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Regions with non-standard names got ignored in RTF output leading to
        missing headers and footers.
      </action>
      <action context="Code" dev="JM" type="fix">
        The RTF output now properly generates the "\landscape" flag for documents in
        landscape orientation.
      </action>
      <action context="Code" dev="JM" type="fix">
        Following a clarification by the XSL FO SG, space traits are only set on the
        first and last area generated by an FO, and not on every area anymore.
      </action>
      <action context="Code" dev="JM" type="add">
        New feature: "Intermediate format" (IF). The IF is basically the XML dialect
        written by the area tree renderer (XMLRenderer). A new parser for this format
        allows reparsing a serialized and possibly modified area tree and rendering it
        to the final target format.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Floating point numbers were not properly formatted in the PDF renderer
        which could lead to error messages while opening a PDF in Acrobat Reader.
      </action>
      <action  context="Code" dev="SP" type="update" fixes-bug="38098"
               due-to="Gerhard Oettl">
        Implement property name as default argument on some xsl-function calls.
      </action>
      <action  context="Code" dev="SP" type="update" fixes-bug="38087"
               due-to="Gerhard Oettl">
        Implement force-page-count property of page-sequence.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="38054">
        Bugfix: Spans that end up with a negative height don't get swallowed anymore.
      </action>
      <action context="Code" dev="MM" type="add" fixes-bug="36729">
        Relative URLs for the font configuration attributes metrics-url and embed-url
        are now supported. A new configuration property font-base has been added. It
        sets the base URL against which relative font URLs are resolved. If font-base is
        not set base is used.
      </action>
      <action context="Code" dev="JM" type="add" fixes-bug="38132" due-to="Richard Wheeldon">
        Added support for RFC2397 "data" URLs.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="38132">
        Bugfix: Certain border styles could lead to a NullPointerException.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="38102">
        Bugfix: Space was not adjusted if the space was on a nested block. This could
        lead to content overflowing the bottom of a page.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: TableCell did not properly report that it generates reference-areas
        which could lead to wrong inherited values for start-indent and end-indent.
      </action>
      <action context="Code" dev="JM" type="add">
        The font loading code now reads the encoding value from the XML font metrics file
        so that fonts like Symbol and ZapfDingbats can be embedded explicitely (Required by PDF/A).
      </action>
      <action context="Code" dev="SP" type="update">
        Improvements to the code for inline block content.
      </action>
      <action context="Code" dev="MM" type="fix" fixes-bug="38089">
        Bugfix: Image height for BMP images was incorrectly calculated
      </action>
      <action context="Code" dev="AD" type="update">
        Revision of refinement white-space handling.
      </action>
      <action context="Code" dev="AD" type="add">
        Added feature: support for white-space shorthand
      </action>
      <action context="Code" dev="AD" type="add">
        Added feature: support for page-break-* shorthands
      </action>
      <action context="Code" dev="MM" type="fix" fixes-bug="38053">
        Bugfix: NullPointerException on certain fo:inline within lists.
      </action>
      <action context="Code" dev="MM" type="fix" fixes-bug="37743">
        Bugfix: ClassCastException on certain fo:inline with border combinations.
      </action>
      <action context="Code" dev="MM" type="fix">
        Changed a method name in LineArea from finalize to finalise because it was
        never intended for the method to be an override of the Java Object finalize
        method. If invoked by the Java garbage collector it may cause a NPE.
      </action>
    </release>
    <release version="0.91beta" date="23 Dec 2005">
      <action context="Code" dev="JM" type="update">
        Deprecated Fop constructors that use integer constants to select the
        output format have been removed in favor or the constructors that use
        MIME types.
      </action>
      <action context="Code" dev="MM" type="fix">
        Fixed a bug where the linefeed-treatment property value "preserve" was not
        honoured when used in conjunction with text-align="center".
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="37964">
        Bugfix: hard breaks with even-page or odd-page were not handled correctly
        when spaces were surrounding the break.
      </action>
      <action context="Code" dev="JM" type="update">
        Changed the XMLHandler interface so it doesn't report the MIME type it
        supports but instead can report whether it supports a particular Renderer
        implementation. XMLHandlers are now configurable.
      </action>
      <action context="Code" dev="JM" type="fix">
        Fixed a bug where SVG content could be clipped when rendered to PostScript.
      </action>
      <action context="Code" dev="JM" type="fix">
        Changed the way resolutions are handled. The single resolution in the user
        agent got split up into source and target resolutions. For more info, see
        the updated documentation. Note: backwards-incompatible change!
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="37875">
        Bugfix: Some content inside a table-header may not have been renderered on
        pages n &gt; 1 in certain conditions.
      </action>
      <action context="Code" dev="MM" type="fix">
        Fixed a bug where an empty line, i.e. a block containing only a &amp;nbsp;,
        was not rendered at all.
      </action>
      <action context="Code" dev="JM" type="fix">
        Fixed a bug where the area for a finished cell that is broken over pages was
        created once for each row it was spanned over instead of only once.
      </action>
      <action context="Code" dev="JM" type="add">
        Added checks that warn about tables and block-containers that are wider than
        the available content area.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="37880">
        Bugfix: Footnotes were lost if the footnote appeared in centered text.
      </action>
      <action context="Code" dev="JM" type="update">
        Improved log and error messages in a number of places by adding additional
        context information that should make it easier to find the location in the
        source files.
      </action>
      <action context="Code" dev="JM" type="fix">
        Fix to correct image sizes in RTF output.
      </action>
      <action context="Code" dev="JM" type="add">
        First attempt at SVG support in RTF output. SVG images are converted to 300dpi JPEG
        images internally.
      </action>
      <action context="Code" dev="JM" type="update">
        Additional checks to detect text overflows. The overflow property is now properly
        handled where applicable.
      </action>
      <action context="Code" dev="JM" type="update">
        Source location information improved. If location information is not available,
        the context information is provided based on text content.
      </action>
      <action context="Code" dev="JM" type="add">
        The command-line now automatically sets two parameters for any XSLT transformation:
        "fop-output-format" contains the MIME type of the currently selected output format,
        "fop-version" contains FOP's version number.
      </action>
      <action context="Code" dev="JM" type="fix">
        The output file is now deleted when an exception occurs when calling FOP from
        the command-line.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Areas for table-cells that are broken over more than one page are now
        generated even if all its content is already painted on a previous page. This
        fixes strange effects like a table grid that is not completely painted.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="37828">
        Bugfix: Column balancing produced strange break decisions in certain multi-column
        documents with large amounts of text.
      </action>
      <action context="Code" dev="JM" type="add">
        Added an alternative set of rules for calculating text indents which tries to mimic
        the behaviour of many commercial FO implementations that chose to break the rules
        in the FO specification in order to better meet the natural expectations of
        inexperienced FO users.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="37815" due-to="Tom Craddock">
        Bugfix: The combination of content-width="scale-to-fit" and content-height="100%"
        did not work as expected due to a datatype conversion bug.
      </action>
      <action context="Code" dev="JM" type="fix" fixes-bug="37813">
        Bugfix: A span="all" on the first block cause a subsequent page break and the first block
        didn't span all columns.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Self-created OutputStreams in PNG Renderer were not properly closed.
      </action>
      <action context="Code" dev="JM" type="update">
        The border-collapse property on fo:table is now forced to the value "separate" until the collapsing
        border has been implemented.
      </action>
      <action context="Code" dev="JM" type="add">
        font-family list still not fully supported but a comma-separated list is now properly tokenized.
        FOP will now go through all fonts in the list to find one that is available, but it doesn't
        do so per character, yet.
      </action>
      <action context="Code" dev="JM" type="add">
        Implemented "Overconstrained Geometry" rules (5.3.4, XSL 1.0) for the most important cases.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Relatively positioned BlockViewports (from block-containers) caused the paint
        cursor not be be properly advanced when space-before or space-after were present.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix: Space resolution was incomplete for content in table-cells. Conditional elements
        didn't get removed.
      </action>
      <action context="Code" dev="JM" type="fix">
        The validation check for non-zero borders and padding on a region-* and for empty static-content
        elements is now turned off when relaxed validation is active to improve compatibility with
        FO documents written for other FO implementations.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix for "/ by zero" ArithmeticExceptions when an URL to a non-existing image is used
        and content-width and/or content-height is used.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix for a multi-threading problem:
        propertyListTable initialization moved from the constructor to a static block in FONode.
        This fixes NullPointerExceptions in PropertyList.
      </action>
      <action context="Code" dev="JM" type="fix">
        Bugfix for placement of text inside a text area when borders are present in PostScript output.
      </action>
      <action context="Code" dev="JM" type="update">
        Improvements on leader painting in PDF output.
      </action>
      <action context="Code" dev="JM" type="add">
        Support for leader painting in PostScript output.
      </action>
      <action context="Code" dev="LF, MM" type="add">
        Support for hyphenation-ladder-count.
      </action>
    </release>
    <release version="0.90alpha1" date="22 Nov 2005">
      <action context="Code" dev="all" type="update">
        <strong>Complete redesign of the FOP codebase</strong> in the period between Dec 2001 and Nov 2005.
        There are just too many changes to list here. If you like to know details, run
        <code>"svn log --verbose http://svn.apache.org/repos/asf/xmlgraphics/fop/trunk/"</code>.
      </action>
    </release>
    <release version="0.20.5" date="18 July 2003">
      <action context="Code" dev="all" type="update">
        For the change log for the maintenance branch
        (where FOP 0.20.5 came from), please see the "CHANGES" file in the distribution, or
        <link href="http://svn.apache.org/viewcvs.cgi/xmlgraphics/fop/branches/fop-0_20_2-maintain/CHANGES?view=markup">the CHANGES file in the SVN repository</link>.
      </action>
    </release>
  </changes>

  <todo>
    <!-- See Bugzilla and http://wiki.apache.org/xmlgraphics-fop/FOPProjectTasks -->
    <actions>
      <action dev="open" type="update" context="Docs">
        Improve the documentation.
      </action>
    </actions>
  </todo>

</status>
