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

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

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

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

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

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

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

</status>
