blob: ef145de4c15d94d82167088148baa35196052eb4 [file] [log] [blame]
<!--
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$
Commons Digester Package
Version 2.0
Release Notes
INTRODUCTION
============
This is a major release. New projects are encouraged to use this release
of digester. There are breaking changes from Digester 1.8, see release notes
in detail before choosing to upgrade. There is no urgency for existing
projects to upgrade; Digester 1.8 has proven to be a stable release.
IMPORTANT NOTES
================
BREAKING CHANGES:
* The minimum JDK requirement is now JDK 1.5. The provided binaries will not
work on lower JDKs. The source has been updated to leverage Generics and
other JDK 1.5 features where possible, and requires JDK 1.5 to compile.
* This release eliminates all dependencies on Commons Collections classes.
Previously, ArrayStack was used in the Digester implementation and was
exposed via protected fields or inner classes of the following classes:
org.apache.commons.digester.Digester,
org.apache.commons.digester.CallParamRule, and
org.apache.commons.digester.xmlrules.DigesterRuleParser
These classes now use java.util.Stack instead. Any subclasses of the above
using protected ArrayStack members will require appropriate migration to
use java.util.Stack instead before they can be used with version 2.0.
OTHER IMPORTANT CHANGES:
* The legacy schema support has been deprecated in favor of
javax.xml.validation.Schema support.
DEPENDENCIES
=============
Digester 2.0 users should upgrade to the recommended dependency set below
where possible.
The Recommended Dependency Set for Digester 2.0 is:
Digester 2.0 + Logging 1.1.1 + BeanUtils 1.8.0
It is also possible to use Logging 1.0.x or BeanUtils 1.7.0 instead.
NEW FEATURES
=============
* XML SCHEMA SUPPORT
Support for XML Schema validation using javax.xml.validation.Schema
has been added to Digester. See Digester class Javadoc, and
Digester#setSchema(javax.xml.validation.Schema) method.
This allows usage of W3C XML Schema, Relax NG and Schematron for
validation of XML documents.
The legacy schema support has been deprecated (details below).
* XINCLUDE AWARENESS
The underlying SAXParser factory can now be easily configured to be
XInclude aware. This allows for general purpose inclusion of XML or
text documents, for example, and facilitates document modularity. For
more details on XInclude, see: http://www.w3.org/TR/xinclude/
BUGS FROM PREVIOUS RELEASE
===========================
* [DIGESTER-122] Potential NullPointerException if debug is enabled in
Digester#resolveEntity()
* [DIGESTER-126] Potential NullPointerException if debug is enabled in
FactoryCreateRule#begin()
IMPROVEMENTS OVER PREVIOUS RELEASE
===================================
* [DIGESTER-111] Null arguments to all Digester#parse() methods now an
IllegalArgumentException.
* 'serialVersionUID' fields have been added to Serializable classes.
DEPRECATIONS
============
* org.apache.commons.digester.Digester#schemaLanguage and
org.apache.commons.digester.Digester#schemaLocation
Use org.apache.commons.digester.Digester#schema instead.
* org.apache.commons.digester.Digester#getSchemaLanguage(),
org.apache.commons.digester.Digester#setSchemaLanguage(String),
org.apache.commons.digester.Digester#getSchemaLocation(), and
org.apache.commons.digester.Digester#setSchemaLocation(String)
Use org.apache.commons.digester.Digester#getSchema() and
org.apache.commons.digester.Digester#setSchema(javax.xml.validation.Schema)
instead.
* org.apache.commons.digester.ParserFeatureSetterFactory
Switch to javax.xml.validation.Schema validation via Digester class
instead.
* org.apache.commons.digester.parsers package; classes
org.apache.commons.digester.parsers.GenericParser and
org.apache.commons.digester.parsers.XercesParser
Switch to javax.xml.validation.Schema validation via Digester class
instead.
OTHER NOTES
============
* This is the first Digester release using Maven 2.