   =========================================================================
   ==  NOTICE file corresponding to the section 4 d of                    ==
   ==  the Apache License, Version 2.0,                                   ==
   ==  in this case for the Apache OpenJPA distribution.                  ==
   =========================================================================

   This product includes software developed by
   The Apache Software Foundation (http://www.apache.org/).

COPYRIGHT NOTICES

* OpenJPA includes software developed by the SERP project
    Copyright (c) 2002-2006, A. Abram White. All rights reserved.

* OpenJPA is bundled with the binaries from the JPA specification, by
    Sun Microsystems and licensed under the CDDL 1.0. The source code is
    available at: https://glassfish.dev.java.net/source/browse/glassfish/

* OpenJPA includes software written by Miroslav Nachev

