Release Notes -- Apache JBIG2 ImageIO -- Version 3.0.0

Introduction
------------

The Java ImageIO plugin for JBIG2 enables access to images encoded using the JBIG2 
image compression standard. This component is part of the Apache PDFBox® project.

This is the first release of the plugin under the umbrella of the Apache PDFBox project.

For more details on all fixes and improvements included in this release, please refer
to the following issues on the PDFBox issue tracker at 
https://issues.apache.org/jira/browse/PDFBOX.

Bug

[PDFBOX-4014] - Malformed/pathological/malicious input can lead to infinite looping

Task

[PDFBOX-4065] - Set JBIG2 plugin to jdk6

Fixes which were solved before the sources where donated to the ASF:

https://github.com/levigo/jbig2-imageio/issues/25: Build tests fail if project path has a space.
https://github.com/levigo/jbig2-imageio/issues/26: Huffman user tables in text regions.
https://github.com/levigo/jbig2-imageio/issues/27: Problems in standard Huffman tables.
https://github.com/levigo/jbig2-imageio/issues/32: Newlines printed to stdout.


Release Contents
----------------

This release consists of a single source archive packaged as a zip file.
The archive can be unpacked with the jar tool from your JDK installation.
See the README.md file for instructions on how to build this release.

The source archive is accompanied by SHA1 and MD5 checksums and a PGP
signature that you can use to verify the authenticity of your download.
The public key used for the PGP signature can be found at
https://svn.apache.org/repos/asf/pdfbox/KEYS.

About Apache PDFBox
-------------------

Apache PDFBox is an open source Java library for working with PDF documents.
This project allows creation of new PDF documents, manipulation of existing
documents and the ability to extract content from documents. Apache PDFBox
also includes several command line utilities. Apache PDFBox is published
under the Apache License, Version 2.0.

For more information, visit http://pdfbox.apache.org/

About The Apache Software Foundation
------------------------------------

Established in 1999, The Apache Software Foundation provides organizational,
legal, and financial support for more than 100 freely-available,
collaboratively-developed Open Source projects. The pragmatic Apache License
enables individual and commercial users to easily deploy Apache software;
the Foundation's intellectual property framework limits the legal exposure
of its 2,500+ contributors.

For more information, visit http://www.apache.org/
