   =========================================================================
   ==  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 the following software copyright 2007 Miroslav Nachev

openjpa-kernel/src/main/java/org/apache/openjpa/util/BigDecimalId.java
openjpa-kernel/src/main/java/org/apache/openjpa/util/BigIntegerId.java
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/identity/SQLBigIntegerIdEntity.java
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/identity/SQLBigDecimalIdEntity.java
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/identity/TestSQLBigIntegerId.java
openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/identity/TestSQLBigDecimalId.java

