Apache OpenJPA 2.3.0
Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
--------------------------------------------------------------------------------

Content
-------
   * Overview
   * License
   * Notices
   * Prerequisites
   * Documentation
   * Getting Involved
   * Included Changes
     * Sub-tasks
     * Bugs
     * Improvements
     * New Features
     * Test


Overview
--------
   The Apache OpenJPA community is proud to release a SNAPSHOT distribution of
   OpenJPA 2.3.0. This distribution is based on the final JSR 317 Java 
   Persistence API, Version 2.0 specification and passes the JPA 2.0 TCK,
   while remaining backwards compatible with prior releases based on the
   Java Persistence API (JPA 1.0) part of Java Community Process JSR-220
   (Enterprise JavaBeans 3.0).
   
   Additional information on the OpenJPA project may be found at the project
   web site:
      http://openjpa.apache.org


License
-------
   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.

   The license may also be found in LICENSE.txt included in each assembly.


Notices
-------
   Copyright 2006,2013 The Apache Software Foundation.
   Apache, the Apache feather logo and OpenJPA are trademarks of
   The Apache Software Foundation.

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

   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:
       http://java.net/projects/glassfish

   The complete list of notices can be found in NOTICE.txt included in each
   assembly.


Prerequisites
-------------
   OpenJPA requires Java SE 6 or higher and a relational 
   database of some sort.


Documentation
-------------
   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
       http://openjpa.apache.org/documentation.html

   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:
       http://openjpa.apache.org/mailing-lists.html


Getting Involved
----------------
   The Apache OpenJPA project is being built by the open source community for
   the open source community - we welcome your input and contributions!

   What we are looking for
        * Source code and fixes contributions
        * Documentation assistance
        * Product and feature suggestions
        * Detailed and constructive feedback
        * Articles and whitepapers

   How do I contribute?
        * To discuss Apache OpenJPA topics check out the mailing lists.
        * Informal discussion also occurs on the #openjpa IRC channel on
          freenode.net.
        * Bugs and other issues can be posted on the issue tracker at
          https://issues.apache.org/jira/browse/OPENJPA


Included Changes in OpenJPA 2.3.0
---------------------------------

Sub-task

    [OPENJPA-2168] - Do not go through LifeCycleEventManager overhead if the Entity has declared to be excluded

Bug

    [OPENJPA-696] - Cache TransactionSynchronizationRegistry per EMF (vs JVM)
    [OPENJPA-1794] - Result of aggregate function MAX is 0 on empty table (instead of NULL).
    [OPENJPA-1819] - ORDER BY will append additional column to the SELECT clause which may potentialy cause ORA-00979 error
    [OPENJPA-1901] - QueryCacheStoreQuery$CachedObjectId that is not Serializable
    [OPENJPA-1979] - Regression for non-standard joins with constant column values
    [OPENJPA-1993] - Deadlock Potential with ORM XML Processing
    [OPENJPA-2018] - Cannot bind String[] to ParameterExpression for path.in(parameter)
    [OPENJPA-2067] - A 'length' of '-1' passed to PreparedStatement.setBinaryStream can cause an exception on some, but not all, JDBC drivers.
    [OPENJPA-2072] - InvalidStateException deleting an instance with a timestamp in its primary key
    [OPENJPA-2095] - Unhandled exception thrown from within an Externalizer method causes incorrect/incomplete SQL to be generated/executed.
    [OPENJPA-2102] - URLs which contains spaces are not properly handled by OpenJPA.
    [OPENJPA-2110] - Abstract entity causes standard openjpa collection proxies to be injected even if custom collections are used.
    [OPENJPA-2118] - Prepared SQL query does not handle collection-valued parameter where collection is empty
    [OPENJPA-2123] - Minor performance improvements for Connection and ResultSet processing
    [OPENJPA-2131] - Missing IN or OUT parameter exception with OracleDictionary
    [OPENJPA-2132] - Traversal of a OneToMany relationship returns an empty list when InheritanceType.JOINED or SINGLE_TABLE is used.
    [OPENJPA-2133] - OpenJPA doesn't find custom mappings with an applicable class loader
    [OPENJPA-2136] - NPE when using LiteAutoDetach
    [OPENJPA-2140] - Locking tests issue many warnings about the use of a duplicate pu name
    [OPENJPA-2142] - Merge of a new object does not handle Entity Id field
    [OPENJPA-2145] - Missing ASM depending jar in binary zip
    [OPENJPA-2146] - StateManager for Embeddable may throw Exception while initializing
    [OPENJPA-2149] - Criteria.function adds wrong casts to parameters making it unsuable
    [OPENJPA-2153] - NoSuchMethodException of DBCPDriverDataSource.newInstance()
    [OPENJPA-2154] - test-dynamic-enhancer profile failed for module more than one level deep
    [OPENJPA-2156] - Fix bug in org.apache.openjpa.persistence.util.SourceCode to correctly generate imports.
    [OPENJPA-2158] - LiteAutoDetach + DetachProxyFields=false can lead to Broker concurrency exceptions
    [OPENJPA-2161] - Make some members of StateManagerImpl protected to allow for greater extensability
    [OPENJPA-2163] - Lifecycle event callback occurs more often than expect
    [OPENJPA-2170] - Multiple INSERT of the same row in batch update manager
    [OPENJPA-2172] - openjpa-all jar is missing slf4j runtime dependency
    [OPENJPA-2174] - Result set mapping was not looked up when retrieving column data from a NamedNativeQuery
    [OPENJPA-2178] - PostgresDictionary
    [OPENJPA-2180] - OpenJPA build broken in java7 / jdk-1.7
    [OPENJPA-2187] - metamodel generation with default package creates invalid class
    [OPENJPA-2191] - QueryCache don't allow for misconfigurations
    [OPENJPA-2196] - Create Sequence Postgres 9.1
    [OPENJPA-2197] - MethodComparator in AnnotationPersistenceMetaDataParser should also compare parameters
    [OPENJPA-2199] - Constraint violation exception when removing relationship using (orphanRemoval = true)
    [OPENJPA-2204] - NPE in JDBCStoreManager with Trace turned on
    [OPENJPA-2221] - Use of AbstractValueHandler map() causes exception on find()
    [OPENJPA-2227] - OpenJPA doesn't find custom SequenceGenerators
    [OPENJPA-2228] - QuerySQLCache broken for Entities with @EmbeddedId
    [OPENJPA-2229] - Persistence entities not recognized when deploying on JBoss AS 7.1
    [OPENJPA-2230] - Event Listener detection didn't work with MappedSuperClasses or Entity heirarchies
    [OPENJPA-2234] - EntityManager instance creation needs TX activity
    [OPENJPA-2235] - "READ_UNCOMMITTED" setting for the fetch plan isolation level is ignored in DB2Dictionary
    [OPENJPA-2236] - Trace of connection info can cause class transform/enhancement to fail
    [OPENJPA-2238] - IllegalAccessError when trying to proxy a default scoped Class
    [OPENJPA-2240] - JVMVRFY012 when using openjpa together with hyperjaxb3
    [OPENJPA-2244] - Nested classpath ignored in mapping tool ant task
    [OPENJPA-2245] - NotSerializableException when using a remote QueryCache and the Criteria API
    [OPENJPA-2247] - JoinColumn annotation is ignored when mapping a unidirectional owned OneToOne that is in a SecondaryTable
    [OPENJPA-2253] - Memory leak in Audit feature
    [OPENJPA-2255] - Couldn't load the referencedColumn definition when create the JoinTable
    [OPENJPA-2257] - Concurreny in org.apache.openjpa.persistence.EntityManagerImpl.getProperties leads to NullPointer and ConcurrentModificationException
    [OPENJPA-2260] - Parenthesis-augmented parameters are improperly processed at EM level
    [OPENJPA-2261] - Query SQL Cache issue with NULL parameters
    [OPENJPA-2267] - native query select with null result causes NullPointerException
    [OPENJPA-2269] - Duplicate key exception in sequence table on multithreaded initialization
    [OPENJPA-2271] - Old <ciManagement/> info on root POM
    [OPENJPA-2282] - ESCAPE '\' is appended to the like clause unexpectedly
    [OPENJPA-2284] - NPE occurs when <cascade-persist/> is added to a <persistence-unit-defaults> in an orm.
    [OPENJPA-2288] - MetaDataRepository should be able to filter classes from other app ClassLoaders in JEE Env
    [OPENJPA-2289] - Additional SQL alias generated for query with subquery causes incorrect # of rows returned - Oracle only
    [OPENJPA-2298] - VerifyError/Stack underflow due to extra 'return' statements generated by PCEnhancer.
    [OPENJPA-2304] - Thread deadlock in CriteriaBuilder
    [OPENJPA-2305] - Canonical MetaModel class generation should not use inhertence
    [OPENJPA-2318] - Left outer join is not generated when specifien using Criteria API
    [OPENJPA-2320] - CriteriaBuilder predicate construction deadlocks in multi-core VM due to static initializer
    [OPENJPA-2321] - Synchronizing logging output stream causes deadlock when used some JDK LogManger derivative
    [OPENJPA-2325] - MappedSuperClass without an @Id causes wrong identity type for the inherited types
    [OPENJPA-2326] - Updates in TCK execution configuration
    [OPENJPA-2328] - NPE caused by one too many calls on the iterator inside the library.
    [OPENJPA-2330] - Stackoverflow due to endless recursive calls
    [OPENJPA-2334] - OpenJPA must support processing puRoot & jar-file URLs as jar-formatted InputStreams
    [OPENJPA-2335] - Constrained foreign key column value setting needs to be flexible
    [OPENJPA-2336] - Relax Join column name comparison based on database dictionary schema case setting
    [OPENJPA-2343] - Version field returns null when explicity projected from a JOIN in SELECT clause
    [OPENJPA-2355] - CONCAT() function must support more than two arguments
    [OPENJPA-2357] - @..ToMany(optional=false) throws InvalidStateException: [...] the metadata for this field specifies that nulls are illegal.
    [OPENJPA-2377] - Metamodel.managedType returns wrong result for Embeddable
    [OPENJPA-2378] - TestHandlerStrategy.testIssue_OPENJPA2328 failed with Oracle
    [OPENJPA-2384] - Rendering criteria query to JPQL-like string ignores multiple GROUP BY clauses
    [OPENJPA-2390] - HSQLDB SELECT NEXT VALUE FOR Sequence will skip 1 sequence value if allocation size is 1
    [OPENJPA-2391] - HSQLDB v2.2.9
    [OPENJPA-2400] - Support MariaDB
    [OPENJPA-2405] - EntityManager.merge does not work for entity that is managed by another EntityManager
    [OPENJPA-2409] - allow the openjpa-maven-plugin to use a persistence.xml from resources and not only from files
    [OPENJPA-2414] - FinderCache does not consider active Fetch Groups/FetchPlan added Fields
    [OPENJPA-2418] - Cannot build 2.2.x due to NullPointerException in maven-checkstyle-plugin
    [OPENJPA-2421] - Slices: Can't setting up FinderTargetPolicy
    [OPENJPA-2425] - SELECT fields with @ExternalValues defined returns datastore values instead of unmapped fields
    [OPENJPA-2432] - MySQL dictionary can't be found from a valid connection
    [OPENJPA-2435] - Version field in a projection always returned as an Integer.
    [OPENJPA-2437] - transactional listeners added too late to observe begin event
    [OPENJPA-2440] - foreign key drop leaks jdbc connections
    [OPENJPA-2443] - InvalidStateException while merging a new Entity with a GeneratedValue id
    [OPENJPA-2444] - ReverseMappingTool creates orm.xml files in the current working directory

Improvement

    [OPENJPA-2120] - Add new option to eliminate reflection calls from enhancer generated IdClass PC copy operations
    [OPENJPA-2134] - Do not close Connections when ConnectionRetainMode is set to "always"
    [OPENJPA-2137] - Make some members of StateManagerImpl protected to allow for greater extensibility
    [OPENJPA-2143] - Reduce lock contention on LifecycleEventManager
    [OPENJPA-2151] - Improve the performance of StateManagerImpl.initialize
    [OPENJPA-2152] - Don't process query hints when LockModeType == NONE
    [OPENJPA-2159] - Add support for no rounding of Date
    [OPENJPA-2162] - Avoid delimited identifier processing if it's not required by application
    [OPENJPA-2164] - Don't setPCState if field requested is already loaded
    [OPENJPA-2167] - Misc changes to improve flush() path performance
    [OPENJPA-2171] - asm should be optional
    [OPENJPA-2189] - Update OpenBooks example to build, install, and execute in the WAS Liberty Profile
    [OPENJPA-2208] - Add additional Java 2 Security doPriv function
    [OPENJPA-2209] - MetaDataRepository preload configuration should be more inclusive
    [OPENJPA-2220] - Persistent field fetching statistic tool
    [OPENJPA-2231] - jest TokenReplacedStream use Reader instead of Inputstream
    [OPENJPA-2264] - Upcast PreparedStatementManagerImpl.logSQLWarnings to take a Statement rather than a PreparedStatement
    [OPENJPA-2275] - Extending SchemaTool
    [OPENJPA-2292] - Reduce object allocations
    [OPENJPA-2293] - Reduce LifecycleEventManager
    [OPENJPA-2324] - Option to express literal in query string directly into generate SQL
    [OPENJPA-2332] - Update message when unable to resolve datasource configuration
    [OPENJPA-2342] - Consider modifying PCEnhancer.run to use serp.bytecode.BCClass.getDeclaredInterfaceNames instead of getDeclaredInterfaceTypes.
    [OPENJPA-2346] - Optimize MetaDataRepository.getMetaDataInternal
    [OPENJPA-2347] - Make StateManagerImpl more extensible
    [OPENJPA-2348] - Cache calculated hashCode in OpenJPAId
    [OPENJPA-2353] - Reduce object allocations
    [OPENJPA-2354] - Removed synchronized from enhancer added pcReplaceStateManager method
    [OPENJPA-2368] - Move www.apache.org/openjpa/ns/orm to openjpa.apache.org/ns/orm
    [OPENJPA-2410] - Build time detection of System.out/err.print(ln) in source files

New Feature

    [OPENJPA-2283] - Upgrade to ASM 4 dependency
    [OPENJPA-2295] - speed up query metadata lookup
    [OPENJPA-2366] - provide option to exclude schema name from generated @Table annotation for generated entities

Question

    [OPENJPA-1532] - Should the <shared-cache-mode> element in a persistence unit definition automatically turn on the data cache?

Task

    [OPENJPA-2388] - support new xbean asm4 shade

Test

    [OPENJPA-2169] - TestOracleXmlColumn test failed using Oracle 11.2 driver
