Release Notes -- Apache JBIG2 ImageIO -- Version 3.0.2

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 an incremental bugfix release based on the earlier 3.0.1 release.

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-4290] - Memory Leak in SoftReferenceCache

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/
