   Apache Wave
   Copyright 2011-2013 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 Google Inc. and
   have been kindly donated to the Apache Software Foundation.

   This product includes software developed at
   The DOM4J Project (http://dom4j.sourceforg.net).

   This product includes software developed by the
   JDOM Project (http://www.jdom.org/).

   This product includes software developed by
   Joda.org (http://www.joda.org/).
