<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE- 2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<html>
<title>Release Notes for Apache OpenJPA 3.1.2</title>
<body>
<h1>Release Notes for Apache OpenJPA 3.1.2</h1>
<p>
<ul>
  <li><a href="#Overview">Overview</a></li>
  <li><a href="#Prerequisites">Prerequisites</a></li>
  <li><a href="#Documentation">Documentation</a></li>
  <li><a href="#GetInvolved">Getting Involved</a></li>
  <li><a href="#License">License</a></li>
  <li><a href="#Notice">Notice</a></li>
  <li><a href="#ReleaseNotes">Release Notes</a></li>
  <li><a href="#Previous">Release Notes for previous OpenJPA releases</a></li>
</ul>
</p>
<BR>
<hr>
<h2><a name="Overview"></a>Overview</h2>

<P>
   The Apache OpenJPA community is proud to release a distribution of
   OpenJPA 3.1.2. This distribution is based on the final JSR 338 Java
   Persistence API, Version 2.2 specification while not beeing fully TCK tested.
   We remain backwards compatible with prior releases based on the
   Java Persistence API 1.0 and 2.0.
</P>

<p>Additional information on the OpenJPA project may be found at the project
web site: <a href="http://openjpa.apache.org">http://openjpa.apache.org</a></p>

<h2><a name="Prerequisites"></a>Prerequisites</h2>
<P>OpenJPA requires Java 8 or higher and a relational
database of some sort.
</p>

<h2><a name="Documentation"></a>Documentation</h2>
<p>If you have questions about OpenJPA, a good source of information is the
online product manual. You can find the manual for the current release as well
as older releases of OpenJPA at
<a href="http://openjpa.apache.org/documentation.html">
http://openjpa.apache.org/documentation.html</a></p>
<p>If you can't find what you are looking for in the manual or would like more
clarification, please post to the OpenJPA development mailing list.
Information on all of the OpenJPA mailing lists may be found here:
<a href="http://openjpa.apache.org/mailing-lists.html">
http://openjpa.apache.org/mailing-lists.html</a></p>

<h2><a name="GetInvolved"></a>Getting Involved</h2>
<p>The Apache OpenJPA project is being built by the open source community for the open source community -
we welcome your input and contributions!</p>
<P>What we are looking for:
<ul>
    <li> Source code and fixes contributions </li>
    <li> Documentation assistance </li>
    <li> Product and feature suggestions </li>
    <li> Detailed and constructive feedback </li>
    <li> Articles and whitepapers </li>
</ul></p>
<p>How do I contribute?
<ul>
    <li> To discuss Apache OpenJPA topics check out the mailing lists. </li>
    <li> Informal discussion also occurs on the #openjpa IRC channel on
         freenode.net. </li>
    <li> Bugs and other issues can be posted on
         <a href="https://issues.apache.org/jira/browse/OPENJPA">
         the issue tracker</a>.
     </li>
</ul>
</p>

<BR>
<hr>
<h2><a name="License"></a>License</h2>
<P>Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.
<BR>You may obtain a copy of the License at:
<a href="http://www.apache.org/licenses/LICENSE-2.0">
http://www.apache.org/licenses/LICENSE-2.0</a>
<BR>Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.</p>
<P>The license may also be found in LICENSE.txt which is included
in each release of OpenJPA.</P>

<h2><a name="Notice"></a>Notice</h2>
<p>Copyright 2006,2020 The Apache Software Foundation
<BR>This product includes software developed at The Apache Software Foundation (http://www.apache.org/).</p>
<P>Apache OpenJPA includes the persistence and orm schemas from the JPA specifications.
<BR>Copyright 2005-2009 Sun Microsystems, Inc. All rights reserved.
<BR>Apache OpenJPA elects to include this software in this distribution under the CDDL license.
<BR>You can obtain a copy of the License at:
<a href="https://glassfish.dev.java.net/public/CDDL+GPL.html">https://glassfish.dev.java.net/public/CDDL+GPL.html</a>
<BR>The source code is available at:
<a href="http://java.net/projects/glassfish">http://java.net/projects/glassfish</a></p>
<P>The complete list of notices can be found in NOTICE.txt included in each assembly.</p>

<BR>
<hr>
<h2><a name="ReleaseNotes">Release Notes</a></h2>

<hr>
<h3><a name="312">OpenJPA 3.1.2</a></h3>



<h1>Release Notes - OpenJPA - Version 3.1.2</h1>

<h2>        Bug
</h2>
<ul>
    <li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2807'>OPENJPA-2807</a>] -         javax.persistence.Index#columnList should strip spaces
    </li>
    <li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2810'>OPENJPA-2810</a>] -         Major version is returned instead of minor
    </li>
</ul>

<h2>        Improvement
</h2>
<ul>
    <li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2790'>OPENJPA-2790</a>] -         Convert build from SVN to GIT
    </li>
    <li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2798'>OPENJPA-2798</a>] -         OpenJPA need to be more Java11 friendly
    </li>
</ul>

<h2>        Task
</h2>
<ul>
    <li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2809'>OPENJPA-2809</a>] -         Add openjpa-junit5 helper to enhance entities at test run
    </li>
    <li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2811'>OPENJPA-2811</a>] -         Upgrade to ASM 8
    </li>
    <li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2812'>OPENJPA-2812</a>] -         Enable to force snake_case for column names
    </li>
    <li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2813'>OPENJPA-2813</a>] -         Implement basic support of PersistenceProvidergenerateSchema
    </li>
    <li>[<a href='https://issues.apache.org/jira/browse/OPENJPA-2815'>OPENJPA-2815</a>] -         Basic jakarta bundle
    </li>
</ul>


<BR>
<hr>
<h2><a name="Previous"></a>Previous Releases</h2>
<p>Release notes for earlier releases of OpenJPA may be found in our repos at the following locations.
<ul>
  <li><a href='https://github.com/apache/openjpa/blob/3.1.0/openjpa-project/RELEASE-NOTES.html'>OpenJPA 3.1.0 RELEASE-NOTES.html</a></li>
  <li><a href='https://github.com/apache/openjpa/blob/3.0.0/openjpa-project/RELEASE-NOTES.html'>OpenJPA 3.0.0 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.4.3/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.4.3 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.4.2/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.4.2 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.4.1/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.4.1 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.4.0/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.4.0 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.3.0/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.3.0 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.2.2/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.2.2 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.2.1/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.2.1 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.2.0/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.2.0 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.1.1/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.1.1 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.1.1/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.1.1 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.1.0/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.1.0 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.0.1/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.0.1 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.0.0/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.0.0 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.0.0-beta3/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.0.0-Beta 3 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.0.0-beta2/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.0.0-Beta 2 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.0.0-beta/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.0.0-Beta RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/2.0.0-M3/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 2.0.0-Milestone 3 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/1.2.2/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 1.2.2 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/1.2.2/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 1.2.2 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/1.2.1/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 1.2.1 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/1.1.0/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 1.1.0 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/1.0.4/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 1.0.4 RELEASE-NOTES.html</a></li>
  <li><a href='http://svn.apache.org/viewvc/openjpa/tags/1.0.3/openjpa-project/RELEASE-NOTES.html?view=co'>OpenJPA 1.0.3 RELEASE-NOTES.html</a></li>
</ul></p>

<hr>
<p>Copyright (C) 2006,2020 Apache Software Foundation. Licensed under Apache License 2.0.<br>
Apache, the Apache feather logo and OpenJPA are trademarks of Apache Software Foundation.<br>
</body>
</html>
