<?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>
    <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"/>
  </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="06 July 2014">
      <action context="Layout" dev="GA" type="fix" fixes-bug="FOP-2388">
          Fix Arabic text left justified on the first cell of a table with writing mode rl-tb.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="FOP-2311">
          Eliminate regression to shorthand properties from Bugzilla 37114 (FOP-1069).
      </action>
      <action context="Renderers" dev="GA" type="add" fixes-bug="FOP-2301">
          Enable support for PDF sub-page transitions.
      </action>
      <action context="Layout" dev="GA" type="fix" fixes-bug="FOP-2310">
          Fix misplaced table cell border in WM RTL context.
      </action>
      <action context="Renderers" dev="GA" type="add" fixes-bug="FOP-2298">
          Enable support for PDF page transitions.
      </action>
      <action context="Code" dev="PH" type="fix" fixes-bug="FOP-2211" due-to="Alexios Giotis, PH">
          Fix and improve the handling of temporary files using the new URI resource resolvers
      </action>
      <action context="Layout" dev="CB" type="fix" fixes-bug="FOP-2217" due-to="Robert Meyer">
        Image scaling change was adversely affecting other image types 
      </action>
      <action context="Renderers" dev="CB" type="fix" fixes-bug="FOP-2214" due-to="Simon Steiner">
        Thin dashed border look like dots
      </action>	
      <action context="Renderers" dev="CB" type="fix" fixes-bug="FOP-2215" due-to="Simon Steiner">
       NullPointerException when generating IF with fox:external-document 
      </action>	
      <action context="Renderers" dev="GA" type="add" fixes-bug="FOP-2206" due-to="Luis Bernardo">
       Add support for CS placement and escapement data in PS renderer.
      </action>
      <action context="Code" dev="PS" type="fix" fixes-bug="FOP-2203" due-to="Will May">
       XML syntax error in XSD.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="FOP-2197">
       Missing GlyphTester class in transcoder archives.
      </action>
      <action context="Fonts" dev="GA" type="fix" fixes-bug="FOP-2195">
       Use sparse arrays for position adjustments.
      </action>
      <action context="Fonts" dev="GA" type="fix" fixes-bug="FOP-2194">
       Optimize lazy font load invocation for hot methods.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="FOP-2192">
       Fix checkstyle and findbugs warnings.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="FOP-2191">
       Cache matched lookups, assembled lookup spec uses; reduce glyph processing state allocation.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="FOP-2188">
       Optimize string allocation in PDF output processing.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="FOP-2186">
       Optimize inefficient glyph processing state update operations in CS path.
      </action>
      <action context="Renderers" dev="GA" type="fix" fixes-bug="FOP-2184" due-to="Luis Bernardo">
       Optimize inefficient position adjustment array allocation in non-CS path.
      </action>
      <action context="Fonts" dev="PH" type="add" fixes-bug="FOP-2180" due-to="Alexey Neyman">
       TTFReader: Output bounding box information for glyphs.
      </action>
      <action context="Code" dev="PH" type="fix" fixes-bug="FOP-1069" due-to="Robert Meyer">
        Warn instead or error on invalid property values.
      </action>
      <action context="Layout" dev="CB" type="fix" fixes-bug="FOP-2174" due-to="Robert Meyer">
        When using SVG drawings, if no content-width and content-height is specified, 72 will
        be used instead of the source-resolution option.
      </action>
      <action context="Code" dev="GA" type="fix" fixes-bug="FOP-2179" due-to="Robert Meyer">
        Fix checkstyle and findbugs warnings.
      </action>
      <action context="Layout" dev="GA" type="fix" fixes-bug="FOP-2160" due-to="Robert Meyer">
        Fix NPE when rl writing mode is used in certain contexts.
      </action>
      <action context="Layout" dev="GA" type="fix" fixes-bug="FOP-2178">
        Fix incomplete kerning when complex script features are enabled.
      </action>
      <action context="Renderers" dev="CB" type="fix" fixes-bug="FOP-2173" due-to="Simon Steiner">
        Invalid Postscript created if more than 255 characters in a custom font are used within
        SVG when generating Postscript
      </action>
      <action context="Code" dev="PH" type="fix" fixes-bug="37114" due-to="Robert Meyer">
        Implementation of changes necessary to warn of invalid property values.
      </action>
      <action context="Layout" dev="PH" type="fix" fixes-bug="FOP-2171" due-to="Simon Steiner">
       Missing Glyph in Postscript using DejaVuSans.
      </action>
      <action context="Renderers" dev="VH" type="fix" fixes-bug="54169" due-to="Robert Meyer">
        Split the parent tree (the number tree corresponding to the ParentTree entry in the
        structure tree root) to avoid reaching the internal limits of Acrobat Pro, that would
        otherwise split it at the wrong place when saving the document.
      </action>
      <action context="Fonts" dev="MH" type="add" fixes-bug="54120">
        Created a simple mechanism to avoid NPEs when AWT fonts are requested from Batik
        for AFP output.
      </action>
      <action context="Renderers" dev="VH" type="add" fixes-bug="54081">
        PDF accessibility: properly tag hyphenated words.
      </action>
      <action context="Code" dev="CB" type="fix" fixes-bug="48955" due-to="Peter Hancock">
        Allow AFP font codepage names to be less than 8 chars
      </action>
      <action context="Code" dev="PH" type="fix" fixes-bug="54075">
        Fixed a regression
      </action>
      <action context="Code" dev="MH" type="add" fixes-bug="45822">
        Changed the dashed borders to appear more like dashes and less like dots
      </action>
      <action context="Code" dev="PH" type="add" fixes-bug="54041">
        Added support for Rounded Corners on block areas.
      </action>
      <action context="Renderers" dev="VH" type="add" fixes-bug="54038">
        Added PDF/A-2 output option.
      </action>
      <action context="Renderers" dev="VH" type="add" fixes-bug="54037">
        PDF output: Issue a warning when accessibility is enabled and language information is
        missing.
      </action>
      <action context="Renderers" dev="VH" type="add" fixes-bug="53980">
        PDF accessibility: Store language information coming from fo:block or fo:character in the
        structure tree.
      </action>
      <action context="Layout" dev="MH" type="add" fixes-bug="53924" due-to="Luis Bernardo">
        Support for retrieve-table-markers
      </action>
      <action context="Renderers" dev="VH" type="add" fixes-bug="53902">
        Added possibility to define ‘header’ table columns (the same way as fo:table-header allows
        to define header rows). When accessibility is enabled, this allows to set the appropriate
        Scope attribute on the corresponding TH cells.
      </action>
      <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.1" date="20 October 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>
