Apache Commons Digester
Copyright 2001-2011 The Apache Software Foundation

This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).

CGLIB - licensed under the Apache License v2.0.
This product includes software developed by
Juozas Baliuka, Chris Nokleberg and Sam Berlin (http://cglib.sourceforge.net/)

ASM - Copyright (c) 2000-2011 INRIA, France Telecom
All rights reserved. (http://asm.ow2.org/)
