Apache Aries 
Copyright 2009-2010 The Apache Software Foundation

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

Portions of this software were developed at IBM and donated to the 
ASF under the Apache 2.0 license.  The former work was referred to 
as Trade 6.
