   =========================================================================
   ==  NOTICE file for use with the Apache License, Version 2.0,          ==
   ==  in this case for the Apache ServiceMix distribution.               ==
   =========================================================================

   This product contains software developed by
   The Apache Software Foundation (http://www.apache.org/).

   This product contains software developed by
   Open Participation Software for Java (http://www.ops4j.org/).

   This software contains unmodified binary redistributions for H2 database engine (http://www.h2database.com/),
   which is dual licensed and available under a modified version of the MPL 1.1 (Mozilla Public License)
   or under the (unmodified) EPL 1.0 (Eclipse Public License).
   An original copy of the license agreement can be found at: http://www.h2database.com/html/license.html

