
Apache OpenJPA
Copyright 2006-2015 The Apache Software Foundation

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


The following copyright notice(s) were affixed to portions of this code
with which this file is now or was at one time distributed.


OpenJPA includes software developed by the SERP project
Copyright (c) 2002-2006, A. Abram White. All rights reserved.

OpenJPA includes the persistence and orm schemas from the JPA specifications.
Copyright 2005-2009 Sun Microsystems, Inc. All rights reserved.
OpenJPA elects to include this software in this distribution under the
CDDL license.  You can obtain a copy of the License at:
    https://glassfish.dev.java.net/public/CDDL+GPL.html
The source code is available at:
    https://glassfish.dev.java.net/source/browse/glassfish/

OpenJPA includes software written by Miroslav Nachev

OpenJPA uses test code written by Charles Tillman.

