Apache Zeta Components
Copyright 2010 The Apache Software Foundation

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

Originally developed by eZ Systems as eZ Components 
Copyright 2005-2010 eZ Systems AS (http://ez.no)
