Apache OpenJPA 2.0.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 2.0.0 distribution of OpenJPA. 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 compatiable with prior releases based on the Java Persistence API (JPA 1.0) part of Java Community Process JSR-220 (Enterprise JavaBeans 3.0). Included in this release are many enhancements, fixes, and new functionality; giving developers access to all the new features of JPA 2.0, including: * Access Types - expanded to allow specification on a per-persistent type basis or on individual attributes. * Embeddables - expanded to include collections of embeddables, nested embeddables, and embeddables containing relationships to other entities. * Enhanced Map Collections - expanded to support ElementCollection and new annotations for MapKeyColumn, MapKeyClass and MapKeyJoinColumn * Derived Identities - enables the ID of an entity to be derived from another entity, which provides for parent-to-dependent relationships * Query API - methods to get typed query parameters and results, supported and in-effect hints and lock mode getter/setter * Locking - official support for Pessimistic locking (included in prior OpenJPA releases) along with LockModeType properties and hint * JPQL Updates - ** Embeddables support for path expressions to nested Embeddables and Embeddables with relationships ** Enhanced Map Collection support for ElementCollection and new query expressions for KEY, ENTRY, VALUE ** Support for CASE and TYPE expressions along with IN expressions for Collection parameters ** Support for native date/time/timestamp literals ** Support for INDEX expressions on an OrderColumn * L2 Cache - ** Provides cache operations such as entity eviction and cache mode behaviors to use, bypass or refresh items ** Per-entity annotation to specify whether an entity should be cached * Bean Validation - supports using a JSR 303 implementation for entity validation for persist and remove operations * Metamodel API - ** Provides API to dynamically retrieve metamodel information for a persistence unit ** Used with Criteria API to generate and execute type safe queries ** Supports dynamic or static generation of the metamodel * Criteria API - ** Provides programmatic construction of queries using an object based query graph ** Operates on Metamodel objects to provide compile-time type safety enforcement * EntityManagerFactory API - updated for new L2 Cache, Properties, Criteria and Metamodel APIs * EntityManager API - updated for new Query and Query Result APIs, Hints, Properties, LockModeType, and Detach * OSGi - support for the Persistence Unit Service Specification 1.0 in the OSGi Service Platform Release 4 Enterprise Version 4.2 specifications has been provided by integration with the Apache Aries JPA module * And many more... This distribution is based upon the contributions provided in all of the development iterations for 2.0, as defined in the JPA 2.0 Roadmap: http://openjpa.apache.org/jpa-20-roadmap.html 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,2010 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: https://glassfish.dev.java.net/source/browse/glassfish/ The complete list of notices can be found in NOTICE.txt included in each assembly. Prerequisites ------------- In normal usage, OpenJPA requires Java SE 5 or higher and a relational database of some sort. The metamodel generation and annotation processing features require Java SE 6 or higher. 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're looking for in the manual or would like more clarification you 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 project JIRA. Included Changes in OpenJPA 2.0.0 --------------------------------- Sub-task -------- * [OPENJPA-1179] - openjpa.jdbc.QuerySQLCache plugin values Bug --- * [OPENJPA-1091] - ReverseMappingTool fails for openjpa-examples/reversemapping sample * [OPENJPA-1510] - Documentation corrections * [OPENJPA-1550] - When batchLimit=-1 or >1 and an exception is caused, the params and failedObject are missing from the resultant exception. * [OPENJPA-1559] - DataCacheManager initialization isn't thread safe. * [OPENJPA-1569] - @Strategy triggers an InvalidStateException for fields which are declared as Java interfaces * [OPENJPA-1597] - Need Compatibility setting for new OPENJPA-1097 Proxies and DetachedStateField behavior * [OPENJPA-1599] - Cache mode properties passes in to em.find and lock methods are not transient * [OPENJPA-1602] - Query with lock mode set to PESSIMISTIC_WRITE does not have for update clause attached to the sql when runs twice * [OPENJPA-1604] - Setting PessimisticLockManager fails to append "for update clause" to the select statement * [OPENJPA-1605] - ReverseMappingTool (SchemaGenerator) bug * [OPENJPA-1608] - PESSIMISTIC_WRITE is not working in Informix * [OPENJPA-1609] - PessimisticLockException instead of LockTimeoutException thrown on DB2V9 for ZOS * [OPENJPA-1611] - Wrong PersistentAttributeType returned for @Embedded types * [OPENJPA-1618] - Exception during factory creation due to javax.persistence.transactionType * [OPENJPA-1625] - Inconsistent creation of StateManagerImpl in BrokerImpl * [OPENJPA-1630] - NPE in MetaDataRepository when preloading is enabled under heavy stress. * [OPENJPA-1631] - MetaDataRepository preload doesn't load JAXB meta data Improvement ----------- * [OPENJPA-1382] - make org.apache.openjpa.persistence.meta.AnnotationProcessor6 as service * [OPENJPA-1545] - Add new Detach processing * [OPENJPA-1603] - Decouple the QueryCache from the DataCache * [OPENJPA-1622] - Invoking MetaModel generator * [OPENJPA-1628] - Output control for generated canonical metamodel source code Task ---- * [OPENJPA-1178] - Backwards Compatibility Issues Test ---- * [OPENJPA-1336] - Intermittent test failure in org.apache.openjpa.persistence.generationtype.TestGeneratedValues when running on MySQL * [OPENJPA-1606] - Add JPQL tests for element collection * [OPENJPA-1614] - Testcase failures in TextException on MSSQL * [OPENJPA-1616] - Fix TestTimeoutException test failures on MSSQL, MySQL, HSQLDB, Oracle and re-enable for DB2 * [OPENJPA-1619] - Fix intermittent TestTimestampVersion failures on various DBs when running on Windows * [OPENJPA-1620] - Fix TestJDBCEscapeDate test for MSSQL and HSQLDB * [OPENJPA-1621] - Fix TestGeneratedValues for DB2 * [OPENJPA-1623] - New tests for query qualified paths * [OPENJPA-1624] - Fix intermittent datacache timeout failures in TestSJVMCache and CacheTest Included Changes in OpenJPA 2.0.0 Beta 3 ---------------------------------------- Sub-task -------- * [OPENJPA-1101] - OSGi Integration tests * [OPENJPA-1505] - Add a boolean provision CallbackOptions.AllowsDuplicateListener Bug --- * [OPENJPA-740] - In MySQL use LONGBLOB, MEDIUMBLOB etc.. when needed, cause BLOB only holds 64kb of data. * [OPENJPA-774] - Executing native queries with Firebird * [OPENJPA-1097] - Detachment processing of our proxied mutable types (Date, Timestamp, etc) needs to be consistent * [OPENJPA-1234] - Make AllowFailure configurable * [OPENJPA-1248] - LOB streaming does not work as expected * [OPENJPA-1360] - ReverseMappingTool omits nullable, length, etc. when ClassMapping.setEmbedded(true) is called * [OPENJPA-1395] - MappingTool attempts to create table in Oracle even when the table already exist * [OPENJPA-1406] - (In)Compatibility section in OpenJPA doc needs some work... * [OPENJPA-1410] - Class linkage exception when creating an EMF with OpenJPA M3 * [OPENJPA-1438] - Fail to remove an entity which has derived identity * [OPENJPA-1455] - SynchronizeMapping ALTER TABLE ADD COLUMN fails with column already exist exception * [OPENJPA-1458] - Named parameters are not handled by OpenJPA correctly * [OPENJPA-1477] - Multithreaded attempt to set Query parameter occassionally fails * [OPENJPA-1482] - NoSuchMethodError when calling setVersion on an enhanced property access Entity * [OPENJPA-1486] - Lazy fetched embeddable should not be materialized in the query result * [OPENJPA-1491] - org.apache.openjpa.kernel.Bootstrap uses the application classloader to load OpenJPA internals * [OPENJPA-1500] - DataCache types and excludedTypes are case sensitive * [OPENJPA-1503] - Metamodel class loading fails with security manager * [OPENJPA-1506] - ConfigurationImpl.equals fails using a OpenJPA derived provider * [OPENJPA-1524] - ManagedRuntime does not work for OSGi * [OPENJPA-1535] - Inconsistency in exceptions thrown from MetaDataRepository.resolve() * [OPENJPA-1536] - SQL with outer join cannot handle null columns when inheritance is involved * [OPENJPA-1538] - Move hard coded text in OpenJPAVersion.java to localizer.properties * [OPENJPA-1542] - Support openjpa.DataCache Types and ExcludedTypes configuration * [OPENJPA-1543] - Need to change fragmented messages that are combined by PreparedQueryImpl and PreparedQueryCacheImpl to complete messages * [OPENJPA-1544] - Remove WebSphere version number from org/apache/ee/localizer.properties * [OPENJPA-1546] - OpenJPA doesn't work as internal JPA inside web applicaion in JBoss AS * [OPENJPA-1547] - NOT IN with MEMBER OF returns syntax error * [OPENJPA-1550] - When batchLimit=-1 or >1 and an exception is caused, the params and failedObject are missing from the resultant exception. * [OPENJPA-1556] - Exception thrown on first use of @Strategy in @Embeddable classes * [OPENJPA-1558] - Many side of a MxO relationship contains null reference if One side is loaded first. * [OPENJPA-1562] - EntityManager:Refresh on Removed entity does not trigger IllegalArgumentException * [OPENJPA-1565] - QueryTimeOut and LockTimeOut exceptions are not raised correctly * [OPENJPA-1568] - Make createConnectionFactory() in JDBCConfigurationImpl public * [OPENJPA-1570] - Exception using @Strategy in @MappedSuperclass or @Embeddable classes * [OPENJPA-1571] - The change in the element collection is not persisted to the database during merging a detached entity * [OPENJPA-1573] - Incorrect SQL for HAVING = entity variable * [OPENJPA-1575] - Query parameter on externalized field breaks Prepared Query Cache * [OPENJPA-1576] - maven plugin broken as of 3/16/2010 2:30 AM PST using openjpa-2.0.0-SNAPSHOT * [OPENJPA-1577] - Using @Strategy in Queries not working properly * [OPENJPA-1578] - CacheStoreMode.REFRESH is not recognized * [OPENJPA-1580] - Using firstResult and maxResults in queries is not working properly * [OPENJPA-1581] - getCache() should throw IllegalStateException if the EMF has been closed. * [OPENJPA-1583] - Update by query fails on entities using Timestamp as Version field * [OPENJPA-1588] - modify 925451 revision for setProperty processing for enums * [OPENJPA-1596] - Index name too long for DB2 zOS Improvement ----------- * [OPENJPA-979] - Define process for contributions * [OPENJPA-1118] - code changes towards broader use of JDK5 features * [OPENJPA-1443] - Turn on some additional DataCache and PCData testcases * [OPENJPA-1492] - Change access on ReverseMappingTool#getAnnotationsForMeta(Object) from private to public * [OPENJPA-1498] - Update localizer.properties files for easier translation * [OPENJPA-1530] - MySQL storage engine support * [OPENJPA-1531] - The DataCache EvictionSchedule property should accept other time formats. * [OPENJPA-1539] - DataCacheManager should cache whether or not a given type is cacheable or not. * [OPENJPA-1548] - Miscellaneous ClassMetaData performance improvements * [OPENJPA-1549] - StateManagerImpl performance improvement * [OPENJPA-1551] - Allow connectionFactoryName to be specified when creating an EntityManager * [OPENJPA-1552] - Enable EntityManager to perform property QueryImpl creation by its subclass * [OPENJPA-1557] - Logging configuration is difficult for running tests * [OPENJPA-1561] - Cache Criteria Query * [OPENJPA-1566] - Provide all the cached prepared query strings in QueryStatistics * [OPENJPA-1585] - Additional trace to relate SQL pushdowns with entity action or JPQL query * [OPENJPA-1591] - Refactor various parts to allow for greater extensibility Test ---- * [OPENJPA-1411] - Include DayTrader test case to OpenJpa * [OPENJPA-1560] - Additional tests for JDBC date/timestamp literals in JPQL * [OPENJPA-1579] - Additional test for qualified path in HAVING clause * [OPENJPA-1586] - Additional test single valued path expression which references qualified path in JPQL Included Changes in OpenJPA 2.0.0 Beta 2 ---------------------------------------- Bug --- * [OPENJPA-1001] - java.lang.IndexOutOfBoundsException when executing attached test case * [OPENJPA-1367] - H2 Database Engine does support cross join * [OPENJPA-1460] - Fix scope visibility of orm.xml when it is packaged in both ear file and war file * [OPENJPA-1483] - count (Distinct e) in JPQL gives wrong result when the id field is a compound primary key * [OPENJPA-1485] - isLoaded util method does not behave per spec for collection attributes and basic type * [OPENJPA-1494] - Criteria query IN predicate generates incorrect SQL * [OPENJPA-1496] - Fail to set temporal parameter * [OPENJPA-1504] - Validation junits should not rely on Hibernate Impl * [OPENJPA-1506] - ConfigurationImpl.equals fails using a OpenJPA derived provider * [OPENJPA-1507] - NPE with a non-JDBC store manager * [OPENJPA-1509] - Enum field types cannot be modified in an in-memory JPQL bulk update statement * [OPENJPA-1518] - Remove WARN messages for uncacheable finder select statements * [OPENJPA-1533] - JPA2 select math mix with aggregate reports syntax error Improvement ----------- * [OPENJPA-924] - Cache Finder Query for performance enhancement * [OPENJPA-1475] - Performance improvement - don't call syncVersion() when no version is specified * [OPENJPA-1493] - Performance improvement in SelectImpl.getTableIndex() for JPQL without subselect * [OPENJPA-1502] - Improve msg for unrecognized EntityManager properties * [OPENJPA-1512] - Include a BundleActivator to register ourselves as a javax.persistence.provider for Apache Aries * [OPENJPA-1516] - Introduce new "clear" method on EntityManagerImpl * [OPENJPA-1517] - Reduce locking in LifecycleEventManager * [OPENJPA-1520] - Move trunk (2.0.x) to require Java 6 to build (but target 1.5 runtime) * [OPENJPA-1525] - TestCacheMarshallerEndToEnd.Log requires to implement warn() method * [OPENJPA-1528] - Upgrade to latest MySQL 5.1.12 for junit tests ** Test * [OPENJPA-1408] - Create test case binary and source jars in module * [OPENJPA-1529] - Create new tests for bean caching mode Included Changes in OpenJPA 2.0.0 Beta -------------------------------------- Sub-task -------- * [OPENJPA-1103] - Remove early-access disclaimer from the NOTICE files once the spec is released * [OPENJPA-1115] - Finish support for delimited identifiers * [OPENJPA-1345] - Update to JPA Spec Version EA9 (dated 10-08-2009) * [OPENJPA-1347] - Upgrade to Validation API 1.0.0.GA * [OPENJPA-1353] - Add legal info to the docs * [OPENJPA-1358] - Support CacheRetrieve/StoreMode properties for find()/refresh() operation * [OPENJPA-1404] - Add find method that accepts properties to entity manager * [OPENJPA-1405] - Add refresh method that accepts properties to entity manager * [OPENJPA-1453] - Add support for testing with final JPA 2.0 TCK * [OPENJPA-1476] - Turn off QueryCache by default Bug --- * [OPENJPA-123] - Test framework should allow tests that are expected to fail to be checked in * [OPENJPA-459] - Problem with bulk updates in mySQL * [OPENJPA-714] - "Encountered unmanaged object in persistent field" error while merging object tree * [OPENJPA-748] - Disable QuerySQLCache by default * [OPENJPA-757] - Map existing OpenJPA extensions to new features of JPA 2.0 * [OPENJPA-859] - OpenJPA requires all persistent fields to be specified on an XML defined entity * [OPENJPA-944] - FetchAttribute.recursionDepth = -1 does not load properly self referenced entities in a complex relation * [OPENJPA-993] - PCEnhancer can't execute if a non-OpenJPA PU is found * [OPENJPA-1005] - Add PersistenceXMLSchemaVersion(); support * [OPENJPA-1020] - eager fetching of PersistentCollection of a primitive type fails * [OPENJPA-1025] - AbstractResultList.subList throws UnsupportedOperationException * [OPENJPA-1046] - Unique Constraint on MappedSupperClass causes NullPointerException * [OPENJPA-1141] - NPE at org.apache.openjpa.jdbc.meta.MappingInfo.mergeJoinColumn(MappingInfo.java:1400) * [OPENJPA-1142] - OptimisticLockException thrown on Query.getResultList() when Pessimistic Lock is applied * [OPENJPA-1173] - Update PostgreSQL support for 8.4.x * [OPENJPA-1185] - Subquery overhaul * [OPENJPA-1189] - Column names do not contain delimiters when obtained from DatabaseMetaData * [OPENJPA-1197] - NativeQueries fail with MySQL * [OPENJPA-1224] - OpenJPA MySQL BigDecimal ignoring Precision/Scale column Annotation when generating tables * [OPENJPA-1263] - TestReaderLob.testUpdateWithNull() fails on MySQL * [OPENJPA-1276] - Support CQL for Criteria Query * [OPENJPA-1289] - Oracle driver throws exception due to incorrect mapping of XMLType column * [OPENJPA-1293] - JUnit test failure when using Derby 10.5.3.0 * [OPENJPA-1294] - Nested JDBC calls fail for certain database * [OPENJPA-1306] - Extended lock scope support * [OPENJPA-1308] - shouldn't always use CAST with UPPER and LOWER for DB2 * [OPENJPA-1321] - Documentation inaccuracies * [OPENJPA-1326] - ReverseMappingTool and SchemaTool failing for Sybase * [OPENJPA-1328] - Move cacheable class configuration to ClassMetaData * [OPENJPA-1341] - PostRemove not invoked after database record was deleted * [OPENJPA-1344] - Query [get|set]LockMode & Em getLockMode not throwing correct exceptions * [OPENJPA-1349] - Compatibility options are not set appropriately for spec level when emf is created by JEE container * [OPENJPA-1350] - Race condition in the MetaDataRepository * [OPENJPA-1351] - java.lang.ClassCastException: javax.naming.Reference incompatible with javax.sql.DataSource * [OPENJPA-1352] - Merge fails if an entity has an element collection which is contructed using Arrays.asList * [OPENJPA-1354] - Configuring DBCP connection pool with connection properties breaks when user/pasword is specifed and javax.* configuration is set to DBCP Driver * [OPENJPA-1355] - Recent snaphot versions of openjpa have problem with postgresPreparedStatementImpl constructor making Postgres impossible to use * [OPENJPA-1357] - Support CacheRetrieve/StoreMode properties for find()/refresh() operation * [OPENJPA-1370] - JPA2 missing implementation for createNamedQuery(String name, Class resultClass) * [OPENJPA-1374] - Enable junits to be executed against an in-memory Derby 10.5.3.0 db * [OPENJPA-1375] - OutOfMemory runs in container environment in a long stress run * [OPENJPA-1377] - JPA property to enum conversion failure * [OPENJPA-1379] - Locking problem when using timestamp QueryCache eviction policy. * [OPENJPA-1380] - Query not getting evicted from QueryCache * [OPENJPA-1381] - IllegalStateException on query method call after named query is created twice. * [OPENJPA-1383] - tests rely on US date formatting without setting the correct Locale * [OPENJPA-1384] - ClassNotFoundException for custom DBDictionary used by EJB * [OPENJPA-1385] - Parameter in having clause of Criteria query not recognized * [OPENJPA-1386] - Metamodel Generator does not handle field types that can hide another * [OPENJPA-1387] - Unique colums automatically defined as non-nullable * [OPENJPA-1388] - JPQL named parameter using a reserved word resulting in ArgumentException * [OPENJPA-1390] - Criteria API untyped join(String attr) implies any attribute not a singular attribute * [OPENJPA-1391] - Handle generic/unspecified type arguments for persistent fields during metamodel generation * [OPENJPA-1392] - CriteriaBuilder.size() must return Integer as value * [OPENJPA-1393] - CriteriaBuilder.countDistinct() does not return correct result * [OPENJPA-1394] - Pessimistic Lock not honour when ORDER BY clause is used * [OPENJPA-1396] - metadata-complete in the orm file does not override @Transition annotation * [OPENJPA-1397] - NULL in columns part of an @IdClass composite key leads to "disappearing" (null) returned objects * [OPENJPA-1400] - Unable to persist a relationship to a detached Entity * [OPENJPA-1401] - Inheritance using Join Strategy may fail in cross join JPQL * [OPENJPA-1402] - Improve (avoid) lock on relation field per 2.0 spec semantics * [OPENJPA-1408] - Create test case binary and source jars in module * [OPENJPA-1409] - Improve type preservation for currentDate/Time expression in queries * [OPENJPA-1413] - NPE when update using CASE statement on Derby * [OPENJPA-1414] - Performance improvements for detach * [OPENJPA-1419] - Access path metadata set incorrectly for fetch joins in Criteria Query * [OPENJPA-1425] - Literal value in projection can not be parameterized for all databases * [OPENJPA-1431] - @Temporal annotation overrides the @Column annotation when using in conjunction with @ElementCollection * [OPENJPA-1432] - openjpa.Compatibility property for JPA 2.0 behavior may be overwritten if this property is an argument to createEntityManagerFactory * [OPENJPA-1435] - Multi-1xm relation of same type in entity yields extra null in result collection * [OPENJPA-1439] - Metamodel instantiation fails on InputStream properties * [OPENJPA-1441] - NPE when enhancing a Serializable, versioned class * [OPENJPA-1442] - java.sql.Date, java.math.BigDecimal, or java.math.BigInteger types as derived primary keys are not Enhanced correctly * [OPENJPA-1444] - Criteria Query with fetch joins does not return correct DISTINCT result * [OPENJPA-1445] - Support Enum as external value * [OPENJPA-1452] - OpenJPA 2.0.0-M3 attempts to mutate unmodifiable map in Glassfish * [OPENJPA-1461] - Incorrect Oracle CREATE TABLE DDL for XML column * [OPENJPA-1463] - JPQL new operator arguments should be more flexible in matching constructor arguments * [OPENJPA-1464] - PreparedQuery fails with enum query parameter * [OPENJPA-1467] - java.lang.IllegalMonitorStateException in ConcurrentDataCache.writeUnlock() * [OPENJPA-1470] - PCEnhancer is overly verbose * [OPENJPA-1478] - OpenJPA is no longer available as an OSGi bundle Improvement ----------- * [OPENJPA-250] - Reduce synchronization bottlenecks in data cache, metadata repository, and lifecycle event manager * [OPENJPA-709] - Better naming for unique constraints * [OPENJPA-716] - Improve the documentation about Streaming LOB Support * [OPENJPA-839] - change pom.xml to publish sources as well. * [OPENJPA-1085] - Add toString() method to PCState classes * [OPENJPA-1172] - Use java.util.concurrent.ConcurrentHashMap rather than a synchronized HashMap in ClassMapping. * [OPENJPA-1236] - Finish support of delimiters other than double-quotes * [OPENJPA-1258] - make warning message more friendly when other persistence provider configured by application * [OPENJPA-1356] - Use maven-enforcer-plugin to verify proper Java and Maven levels * [OPENJPA-1363] - Upgrade to latest commons-pool maintenance release * [OPENJPA-1366] - Remove need for an EMF from OpenJPAPersistenceUtil and TraversableResolverImpl * [OPENJPA-1368] - Upgrade to HSQLDB 1.8.0.10 and in-memory db for unit tests * [OPENJPA-1415] - Performance improvement by reduced logging of batched OLE * [OPENJPA-1440] - Allow COUNT(*) instead of COUNT(t0.id) for simple queries as an option * [OPENJPA-1456] - Replace StringBuffer usage with StringBuilder * [OPENJPA-1468] - Upgrade build to use final Bean Validation spec API from Geronimo New Feature ----------- * [OPENJPA-773] - Upgrade to JPA 2 * [OPENJPA-1181] - Metamodel Generation must be more selective and controllable * [OPENJPA-1276] - Support CQL for Criteria Query * [OPENJPA-1332] - Allow configuration property to be declared for internal usage only * [OPENJPA-1334] - Support instance level distribution policy for named cache partitions * [OPENJPA-1337] - OpenJPA 2.0 iteration 12 primary task * [OPENJPA-1357] - Support CacheRetrieve/StoreMode properties for find()/refresh() operation * [OPENJPA-1373] - OpenJPA 2.0 iteration 13 primary task * [OPENJPA-1426] - OpenJPA 2.0 iteration 14 primary task Task ---- * [OPENJPA-1183] - Ergonomics of metamodel generation process * [OPENJPA-1290] - Document Criteria API Test ---- * [OPENJPA-1153] - Test suite speed-up outside SingleEMFTestCase * [OPENJPA-1342] - Build a mechanics to test JTA transaction semantics within JSE * [OPENJPA-1466] - Some JUnit test failures on Oracle backeend Included Changes in OpenJPA 2.0.0 Milestone 3 --------------------------------------------- Sub-task -------- * [OPENJPA-849] - Add metadata-type getter methods to EntityManager * [OPENJPA-946] - Oracle create table(s) exceptions * [OPENJPA-1013] - Build strictly-typed Criteria API * [OPENJPA-1033] - Update supported database and driver matrix * [OPENJPA-1076] - PersistenceProviderResolver interface and PersistenceProviderResolverHolder class * [OPENJPA-1078] - Cache mode elements added to persistence.xml * [OPENJPA-1082] - Validation target groups via persistence.xml or createEMF properties Map * [OPENJPA-1083] - org.apache.openjpa.persistence.kernel.TestEJBState fails with two exceptions ORA-00904 and ORA-02275 against oracleDB. * [OPENJPA-1105] - OpenJPA 2.0 iteration 8 primary task * [OPENJPA-1106] - Integration tests for Bean Validation providers - Part 1 * [OPENJPA-1107] - Provide TraversableResolver for use with Bean Validation Factory * [OPENJPA-1111] - Validation mode of callback should cause a PersistenceException when no provider is available * [OPENJPA-1112] - JPA2 Query result of embeddable object can not be further updated * [OPENJPA-1130] - Use maven-jar-plugin to create a o-p-j-tests.jar to share base TestCase classes across modules * [OPENJPA-1131] - Upgrade to maven-jar-plugin-2.2 * [OPENJPA-1149] - Add embeddables sample to the examples module * [OPENJPA-1155] - BrokerImpl.detachAllInternal() does not detach newly loaded entities * [OPENJPA-1157] - Integration tests for Bean Validation providers - Part 2 * [OPENJPA-1164] - Make sleepTime in SimpleWBCallback configurable * [OPENJPA-1167] - Use Geronimo EA4 JPA spec jar * [OPENJPA-1175] - Implement PersistenceUtil and isLoaded methods on the provider * [OPENJPA-1176] - Properties marked as private are no longer persistent * [OPENJPA-1177] - Upgrade to Bean Validation JSR-303 1.0 CR3 Spec API * [OPENJPA-1182] - PreUpdate and PostUpdate behavior * [OPENJPA-1190] - Use Geronimo EA5 JPA spec jar * [OPENJPA-1191] - Implement Tuple interface * [OPENJPA-1194] - LockManager tests call platformSpeedTest() for every test method * [OPENJPA-1202] - Compile against Geronimo JPA EA6 * [OPENJPA-1208] - Set specification level based upon persistence.xml version * [OPENJPA-1210] - Specify derby timeouts via properties. * [OPENJPA-1213] - query.setParameter() behaviour * [OPENJPA-1214] - RelationFieldStrategy behaviour * [OPENJPA-1215] - detach()/detachCopy() behaviour * [OPENJPA-1220] - Disable DynhamicEnhancerAgent for maven builds * [OPENJPA-1223] - Update documentation for autoOff config option * [OPENJPA-1228] - Change in default value of exclude-unlisted-classes in JPA 2.0 * [OPENJPA-1231] - Bean Validation sample * [OPENJPA-1232] - Keys in an EmbeddedCollection are returned as PCData objects when DataCache is enabled * [OPENJPA-1233] - Update DerbyDictionary with new reserved words * [OPENJPA-1235] - Support for optional name property on UniqueConstraint annotation and XML * [OPENJPA-1237] - WriteBehind configuration exception not thrown when it should be * [OPENJPA-1238] - Upgrade to latest commons-pool and commons-dbcp * [OPENJPA-1240] - Lob, Temporal, Enumerated on element collections annotations and in XML * [OPENJPA-1246] - Add configuration example for Ingres to User manual * [OPENJPA-1247] - WriteBehindCallback sleepTime interval of one EMF datacache adversely impacting other EMF datacache * [OPENJPA-1252] - Include a Derby Network Server test profile * [OPENJPA-1261] - JPQL query result shape for multi-selections including multi-select-new-constructor * [OPENJPA-1264] - Support shared-cache-mode element * [OPENJPA-1266] - JDBC date/timestamp literals in JPQL * [OPENJPA-1270] - Assert that relationships defined in a mapped superclass must be unidirectional * [OPENJPA-1271] - Support CacheStoreMode and CacheRetrieveMode properties for EntityManager * [OPENJPA-1272] - Add tests for element collection association overrides defined in XML * [OPENJPA-1274] - Support cascade-detach via orm.xml * [OPENJPA-1282] - Update validation spec api and provider dependencies to spec level CR5 * [OPENJPA-1292] - NullPointerException when handling WriteBehindConfigurationException * [OPENJPA-1298] - WriteBehindCache Callback Singleton * [OPENJPA-1301] - EntityManagerFactoryImpl * [OPENJPA-1309] - DB2 requires CAST for argument passed to datastore MOD function * [OPENJPA-1310] - SQLServer requires XML in UTF-16 instead of UTF-8 * [OPENJPA-1315] - org.apache.openjpa.persistence.QueryImpl * [OPENJPA-1319] - EntityManagerImpl * [OPENJPA-1323] - Relax em.refresh TransactionRequireException thown condition * [OPENJPA-1327] - Document JPQL Query updates Bug --- * [OPENJPA-386] - org.apache.openjpa.meta.ClassMetaData.validateAppIdClass() does not take @MappedSuperclass into account * [OPENJPA-466] - Primary key constraint violated using (Oracle) sequence to generate ID in multithreaded app * [OPENJPA-525] - Inserts new entity with NULL value for Clob column actually inserts empty string * [OPENJPA-890] - Typos and inconsistent method signature styles in the user manual * [OPENJPA-922] - setByteArrayInputStream being used in stead of setBytes * [OPENJPA-932] - Runtime enhancer doesn't work propery if there is a trailing persistence.xml file on the classpath. * [OPENJPA-934] - Oversight in TestSequenceGenerator * [OPENJPA-973] - Allow DB2 JCC driver to work with Informix database * [OPENJPA-1002] - Select range doesn't work on Oracle JDBC driver * [OPENJPA-1043] - JPQL queries do not support queries on a MappedSuperclass * [OPENJPA-1049] - Query against a MappedSuperclass is not supported * [OPENJPA-1061] - Entities extending from a Mapped Superclass that defines the ID fields share the same ObjectID type parameter * [OPENJPA-1065] - Prepared Query Cache does not work with DataCache * [OPENJPA-1074] - OrderColumn does not maintain index upon inter-list element removal - Phase 1 * [OPENJPA-1100] - @Version-Annotation on Column with unsupported type (e.g. BigDecimal) is silently ignored, but should raise an error * [OPENJPA-1116] - Annotation Strategy not working * [OPENJPA-1117] - Missing AgentClass attribute in openjpa-all-xxx.jar manifest.mf * [OPENJPA-1119] - NPE in InstrumentationFactory * [OPENJPA-1120] - idEquals() broken in BigDecimalId and BigIntegerId * [OPENJPA-1121] - Enums cause a ClassNotFoundException in the MappingTool * [OPENJPA-1125] - A message is logged about dynamically loading the class enhancer even though I'm using the -javaagent * [OPENJPA-1127] - Typos in user manual and log messages * [OPENJPA-1132] - Dropping constraints fails on MySQL * [OPENJPA-1133] - DBDictionary.getPlaceholderValueString returns 0 for boolean which fails in PostgreSQL database. * [OPENJPA-1135] - Overrides are not applied when embeddables are defined in XML * [OPENJPA-1139] - checkstyle results in velocity errors in build output * [OPENJPA-1156] - Path length issues on Windows * [OPENJPA-1158] - Incorrect handling of long values in AbstractResult * [OPENJPA-1159] - Bad error message for find of an Entity with compound primary key if parameter of wrong class * [OPENJPA-1163] - Data consistency issues while modifying collections. * [OPENJPA-1168] - NPE in UUIDGenerator.initializeForType1() * [OPENJPA-1170] - Upgrade to Bean Validation JSR-303 1.0 CR2 Spec API * [OPENJPA-1174] - OpenJPA performs differently with orm.xml and annotations * [OPENJPA-1184] - Inverse relations not set for MapKey field when using parallel eager select * [OPENJPA-1200] - Incorrect Entity is returned if ElementClassCriteria is not selected. * [OPENJPA-1201] - "Mapped by" field not set when contained in superclass * [OPENJPA-1203] - JPA2 - createEMF should return null for unhandled PUs * [OPENJPA-1204] - Argument type mismatch when an EmbeddedId contains an Emun type * [OPENJPA-1205] - Cannot retrieve Map fields when DataCache is on * [OPENJPA-1206] - Bean validation call to provider not Java 2 Enabled * [OPENJPA-1211] - Enable string navigation in a From expression. * [OPENJPA-1217] - Ensure comparisons do not contain two parameters with Derby (ie SELECT ... WHERE ? = ?) * [OPENJPA-1218] - Cache.evict(Clazz) should remove subclasses as well * [OPENJPA-1221] - Change openjpa-integration module pom's to reflect proper artifact-id * [OPENJPA-1226] - Can not merge entity with nested embeddable * [OPENJPA-1227] - SQL generation error when using data cache * [OPENJPA-1230] - javax.persistence.validation.mode property in createEMF map failed to create emf * [OPENJPA-1239] - Explicit access type set incorrectly within collection of embeddable with nested embeddable * [OPENJPA-1242] - Unable to cascade delete an entity in an embeddable * [OPENJPA-1250] - @ElementCollection with eagar fetch of a List collection is causing a ClassCastException on a em.find(entity). * [OPENJPA-1253] - JoinColumn annotation not allowed in conjunction with *ToMany annotation * [OPENJPA-1256] - get java.lang.ClassCastException when IdClass contains an Enum Field * [OPENJPA-1260] - Wrong sequence is generated for custom native sequence generator from getIdGenerator. * [OPENJPA-1269] - The table attribute in the MapKeyColumn annotation is not honored * [OPENJPA-1279] - Query results are not inserted into StoreCache properly * [OPENJPA-1281] - Reparameter is not working properly for some sql if PreparedQueryCache is on * [OPENJPA-1283] - Incorrect SQL for JPQL query selecting Map value from an elementCollection of a Map and the map the value is an embeddable * [OPENJPA-1284] - Fix missing 1.0 schema license headers * [OPENJPA-1286] - Relationships in mapped superclass must be unidirectional * [OPENJPA-1294] - Nested JDBC calls fail for certain database * [OPENJPA-1295] - Query with Escape '\' fails in MySQL * [OPENJPA-1302] - Ehcache product derivation isn't detected when running in WebSphere * [OPENJPA-1305] - WriteBehind 'callback; broker should always be unmanaged * [OPENJPA-1333] - Oracle driver returns incorrect update count on batched insert * [OPENJPA-1335] - Alternating manual delim id tests fail * [OPENJPA-1338] - Allow comparison for VALUE(e) that maps to basic type * [OPENJPA-1371] - Insert is called instead of Update when merge() with derived Identity Improvement ----------- * [OPENJPA-5] - OpenJPA doesn't compile with JDBC 4 * [OPENJPA-250] - Reduce synchronization bottlenecks in data cache, metadata repository, and lifecycle event manager * [OPENJPA-651] - Disable dangerous "fallback enhancement", make openjpa.RuntimeUnenhancedClasses=unsupported the default * [OPENJPA-703] - Cache ResultObjectProvider data to improve query performance * [OPENJPA-952] - Utilize Sun JDK's Attach API to dynamically load the OpenJPA enhancer agent * [OPENJPA-968] - Change in default detach() behavior for JPA 2.0 * [OPENJPA-1000] - Consistent usage of serialVersionUID * [OPENJPA-1050] - Use generic types and remove casts wherever applicable * [OPENJPA-1122] - Remove JDBC 3 related reflection from DBDictionary * [OPENJPA-1126] - Note on Calendar and Java 1.3 no longer needed in user manual * [OPENJPA-1136] - Add .gitignore for git users * [OPENJPA-1146] - Shaded RuntimeUnenhancedClass(s)esModes * [OPENJPA-1151] - Cache the current-time timestamp in AbstractQueryCache.onTypesChanged() * [OPENJPA-1171] - Use StringBuilder instead of StringBuffer in SQLBuffer * [OPENJPA-1180] - Query Parameter processing in JPA 2.0 * [OPENJPA-1245] - Move locking tests to a separate module * [OPENJPA-1285] - Dynamic JDBC4 connection wrapper should maintain constructor refernce for faster instantiation * [OPENJPA-1287] - Criteria query to generate 'optimize for 1 row' for DB2 if selection is an aggregate function New Feature ----------- * [OPENJPA-918] - Stored procedures not handling returns properly * [OPENJPA-948] - Ingres DBDictionary * [OPENJPA-1008] - Generate meta-model for JPA 2.0 * [OPENJPA-1009] - Populate canonical meta-model for strictly typed Criteria Query building * [OPENJPA-1010] - Instantiate meta-model classes for JPA 2.0 from source code annotations * [OPENJPA-1014] - Build weakly-typed Criteria API * [OPENJPA-1089] - Provide for password encryption within persistence.xml * [OPENJPA-1123] - MySQL query hints support * [OPENJPA-1150] - Add WriteBehind mode to cache updates before flushing to backing store * [OPENJPA-1152] - OpenJPA 2.0 iteration 9 primary task * [OPENJPA-1187] - Output control for generated canonical metamodel source code * [OPENJPA-1195] - Allow datastore function as query expression * [OPENJPA-1198] - Query by Example * [OPENJPA-1209] - OpenJPA 2.0 iteration 10 primary task * [OPENJPA-1225] - Improve query result processing with composite pattern * [OPENJPA-1241] - Add support for joining via keys of a Map attribute for Criteria query * [OPENJPA-1251] - Add setProperty() method for JPA 2.0 EntityManager * [OPENJPA-1265] - Support Edit on Criteria Query * [OPENJPA-1267] - Support JDBC Escape syntax for temporal types on Criteria Query * [OPENJPA-1268] - OpenJPA 2.0 iteration 11 primary task * [OPENJPA-1276] - Support CQL for Criteria Query * [OPENJPA-1277] - Support JPQL to Criteria Query conversion * [OPENJPA-1278] - Define interfaces for OpenJPA specific extension to Criteria Query API * [OPENJPA-1288] - Support alias() on Criteria Query API * [OPENJPA-1330] - Support uni-/bi-directional Many-To-One mapping using Join Table Strategy * [OPENJPA-1331] - Support bi-/uni-directional One-to-One mappin using Join Table Strategy Task ---- * [OPENJPA-1143] - Synch JPA 2.0 development with evolving JPA 2.0 Spec * [OPENJPA-1229] - OpenJPA 2.0 milestone 3 distribution * [OPENJPA-1262] - Update to JPA Spec Version EA7 (dated 08-19-2009) * [OPENJPA-1275] - Update to JPA Spec Version Public Draft Version 2 (dated 08-31-2009) * [OPENJPA-1290] - Document Criteria API Test ---- * [OPENJPA-1071] - Derby test suit speed-up * [OPENJPA-1124] - TestDateQueries and TestQueryTimeout are locale dependent * [OPENJPA-1147] - Streaming LOB tests and TestAutoIncrement not executed by test suite * [OPENJPA-1148] - Build failures with 64bit Sun JDK6 on Linux due to PermGen space * [OPENJPA-1222] - Enable Criteria testcases Included Changes in OpenJPA 2.0.0 Milestone 2 --------------------------------------------- Sub-task -------- * [OPENJPA-722] - persist - clear - merge scenario doesn't work * [OPENJPA-744] - Extra SQL on LAZY/EAGER ManyToOne relation * [OPENJPA-754] - Un-scheduled pre/postUpdate callbacks from persist. * [OPENJPA-765] - Check for insertable or updateable before checking value for null * [OPENJPA-769] - Add compatibility option to use previous column naming convention * [OPENJPA-770] - Use annotations instead of excluding tests in pom.xml * [OPENJPA-782] - Support for collections of embeddables and basic types * [OPENJPA-803] - Update SequenceGenerator to support schema and catalog * [OPENJPA-804] - JPA 2.0 spec API update - iteration 1 * [OPENJPA-805] - JPQL updates - iteration 1 * [OPENJPA-809] - Support JPA 2.0 Cache Interface * [OPENJPA-823] - Add JPA 2.0 schemas and appropriately validate for version * [OPENJPA-837] - OpenJPA 2.0: Update OpenJPA documentation with new persistence schemas * [OPENJPA-849] - Add metadata-type getter methods to EntityManager * [OPENJPA-850] - Support equivalent names for plug-in value * [OPENJPA-851] - Support for enhanced map collection (and corresponding annotations) * [OPENJPA-855] - JPA2 Query support for Index function * [OPENJPA-856] - JPA2 Query support for entity type expressions * [OPENJPA-861] - Update the manual for XML column support for MySQL * [OPENJPA-865] - JPA2 Query support for collection-valued input parameters in IN Expression predicate * [OPENJPA-869] - Support @OrderColumn annotation and XML-based definition - phase 2 * [OPENJPA-870] - Support orphanRemoval attribute on relationships * [OPENJPA-871] - Support derived identity * [OPENJPA-878] - Support default query hint for query timeout * [OPENJPA-879] - JPA2 Query support for general and qualified identification variable * [OPENJPA-880] - Use maven-remote-resources-plugin to generate required legal files * [OPENJPA-885] - Support clear methods on EntityManager, including new CascadeType.CLEAR * [OPENJPA-891] - JPA2 LockTypeMode Support * [OPENJPA-903] - org.apache.openjpa.persistence.exception.TestException hangs when run using PostgreSQL 8.3 database * [OPENJPA-905] - org.apache.openjpa.persistence.kernel.TestProxies2 * [OPENJPA-906] - org.apache.openjpa.persistence.jpql.expressions.TestEntityTypeExpression * [OPENJPA-907] - org.apache.openjpa.persistence.jdbc.update.TestParentChild * [OPENJPA-908] - org.apache.openjpa.persistence.annotations.TestOneToOne * [OPENJPA-926] - Support explicit access types including @Access annotation and AccessType enum and XML * [OPENJPA-930] - @AttributeOverride updates * [OPENJPA-931] - Support derived identity (spec 2.4.1.2 Ex 5(a), 6 (a)) * [OPENJPA-937] - @AssociationOverride updates * [OPENJPA-946] - Oracle create table(s) exceptions * [OPENJPA-957] - Support lock timeout hint on applicable methods * [OPENJPA-959] - Support lock mode on Query interface * [OPENJPA-960] - Support unwrap methods on EntityManager and Query interfaces * [OPENJPA-961] - Support projection of element collection from a JPQL query * [OPENJPA-962] - Support the use of delimited-identifiers * [OPENJPA-963] - Add query timeout tests for PU and Map properties * [OPENJPA-964] - Finish updating sql-error-state- codes.xml for query timeout support on other DBs * [OPENJPA-967] - JPA2 Query support for selction of KEY, VALUE, ENTRY of a Map value * [OPENJPA-972] - Support standard provider properties in PersistenceProvider class * [OPENJPA-978] - Allow third argument of JPQL SUBSTRING function to be optional * [OPENJPA-990] - setHint should return IllegalArgumentException for invalid query/lock timeout values * [OPENJPA-1012] - Test failures in TestManagedInterface with @ManagedInterface annotation when using JDK6 * [OPENJPA-1016] - JPA2 Query support for embeddables; nested embeddables; relationships from embeddables * [OPENJPA-1023] - Message files contain windows EOL characters * [OPENJPA-1024] - JPA2 Query scalar expression in subquery * [OPENJPA-1026] - Ensure newlines at end of fie * [OPENJPA-1027] - Document changes for detach methods * [OPENJPA-1032] - Revert OpenJPAQuery.getPositionalParameters method signature back to 1.x signature * [OPENJPA-1033] - Update supported database and driver matrix * [OPENJPA-1034] - Removal of OrderColumn attributes per latest spec draft * [OPENJPA-1035] - JPA2 Query allow map key/value path as argument of scalar functions * [OPENJPA-1055] - Added MapKeyEnumerated and MapKeyTemporal annotations and XML. * [OPENJPA-1062] - Include OSGi bundle metadata * [OPENJPA-1064] - JPA2 Query comparisons over instances of embeddable class are not supported * [OPENJPA-1068] - Support Bean Validation: Entity validation upon lifecycle events * [OPENJPA-1069] - OrderBy annotation applied to an element collection of basic type doesn't require property or field name * [OPENJPA-1076] - PersistenceProviderResolver interface and PersistenceProviderResolverHolder class * [OPENJPA-1077] - Validation-mode element support added to persistence.xml and to createEMF properties Map * [OPENJPA-1078] - Cache mode elements added to persistence.xml * [OPENJPA-1082] - Validation target groups via persistence.xml or createEMF properties Map * [OPENJPA-1090] - Oracle failures due to the following warning "This database dictionary "Oracle" does not support auto-assigned column values. The column "pid" may not behave as desired." * [OPENJPA-1094] - JPA2 Query support for KEY appear in subquery * [OPENJPA-1098] - JPA2 Query support subselect_identification_variable * [OPENJPA-1101] - OSGi Integration tests * [OPENJPA-1102] - Support application/container provided ValidatorFactory * [OPENJPA-1103] - Remove early-access disclaimer from the NOTICE files once the spec is released * [OPENJPA-1106] - Integration tests for Bean Validation providers * [OPENJPA-1111] - Validation mode of callback should cause a PersistenceException when no provider is available * [OPENJPA-1113] - Reflection class performance improvement * [OPENJPA-1114] - Bean Validation APIs should be an optional runtime dependency * [OPENJPA-1115] - Finish support for delimited identifiers Bug --- * [OPENJPA-207] - failure when composite ID has another composite ID as a field * [OPENJPA-218] - pcNewInstance and ApplicationId * [OPENJPA-377] - RuntimeUnenhancedClasses support can go into a "half baked" state * [OPENJPA-466] - Primary key constraint violated using (Oracle) sequence to generate ID in multithreaded app * [OPENJPA-557] - Primary key sequences broken with postgres schemas * [OPENJPA-580] - Need a better algorithm to find DBDictionary classname in DBDictionaryFactory * [OPENJPA-732] - Updates to entities via Lifecycle callback methods * [OPENJPA-751] - Typos in the manual * [OPENJPA-755] - OpenJPA thows EntityExistsException trying persist a preexisting, detached entity * [OPENJPA-761] - SchemaTool failed with a NPE in ForeignKey.join * [OPENJPA-762] - Batch execution fails for Oracle when batch limit set to -1 (unlimited batch size) * [OPENJPA-764] - Query parsing error with IN expression and String functions such as UPPER() * [OPENJPA-777] - Exception is thrown during retrieval of an entity which contains a persistent collection of embeddable * [OPENJPA-787] - slices query.getSingleResult is broken * [OPENJPA-792] - An entity persist may fail when @MappedSupercalss is specified. * [OPENJPA-795] - enhancer throws an exception when parsing column name "first.name" because it thinks 'first' is a table name * [OPENJPA-798] - slices does can not work with sequences properly (no adding objects?) * [OPENJPA-811] - With Oracle, OpenJPA allows setting non-nullable field to null * [OPENJPA-815] - Exception is thrown when retrieving an entity which contains an embeddable and the embeddable contains a toMany relation * [OPENJPA-818] - TCK module should use Geronimo JPA 2.0 EA jar * [OPENJPA-819] - NPE when no metadata is defined for a persistent class * [OPENJPA-828] - Externalizer fails with ClassCastException with runtime enhancement * [OPENJPA-834] - State field mapped to XML column has incorrect value when loaded from database * [OPENJPA-835] - Loading nested toMany EAGER relation resuled in PersistenceException * [OPENJPA-836] - after em.clear the datacache is inconsistent * [OPENJPA-838] - fix parameter setting problem when QuerySQLCache is on * [OPENJPA-843] - Unnecessary version update on inverse-side of a 1-m relationship * [OPENJPA-847] - Retrieving database generated keys gets never enabled * [OPENJPA-853] - Informix cursor not open problem if synchronizeMapping set true * [OPENJPA-863] - Unexpected mere-cascade behavior when cascade.all/merge specified on both sides of relationships !!! * [OPENJPA-864] - Subquery problems with SYNTAX_DATABASE (Oracle) * [OPENJPA-866] - DBDictionary.maxTableNameLength is not checked when using SynchronizeMappings * [OPENJPA-872] - Compound custom id in bidirectional many-to-one * [OPENJPA-873] - @MappedSuperClass Cause Null Pointer Exception in Class With IdClass * [OPENJPA-883] - Documentation is out of date for some MySQLDictionary properties * [OPENJPA-884] - Logging oversight in DB2Dictionary * [OPENJPA-886] - Certain query failing after svn:739123 * [OPENJPA-887] - Assertion oversight in TestLibService * [OPENJPA-890] - Typos and inconsistent method signature styles in the user manual * [OPENJPA-892] - Incorrect package name of javax.jdo for Query class image * [OPENJPA-896] - Several source files include Windows EoL chars * [OPENJPA-898] - hints don't work for NamedNativeQuery * [OPENJPA-912] - Potential NPE in setInverseRelation * [OPENJPA-913] - A deadlock issue happens when DirtyListener is used * [OPENJPA-916] - DistributedTemplate is incorrectly setting some attributes on the statements * [OPENJPA-917] - stored procedures throw InvalidStateException when using getSingleResult() or getResultList() * [OPENJPA-919] - JUnit for Bi-directional OneToOne with null relationships * [OPENJPA-922] - setByteArrayInputStream being used in stead of setBytes * [OPENJPA-923] - Update documentation for properly configuring Oracle, PostgreSQL, and DB2 * [OPENJPA-925] - Bidirectional OneToOne relation incorrectly set in loadEagerJoin * [OPENJPA-927] - Fix definition of javax.persistence.query.timeout property * [OPENJPA-928] - getSupportedProperties() shows wsjpa property by default * [OPENJPA-933] - Database version detection in MySQLDictionary is not reliable * [OPENJPA-935] - Removing entities with Embedded field issue multiple delete statements * [OPENJPA-947] - Overly verbose TestCases * [OPENJPA-951] - Javadoc jar file does not contain legal files * [OPENJPA-954] - openjpa-slice build fails due to tests relying on openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/test/AllowFailure.java * [OPENJPA-955] - MethodQL parameter passing broken * [OPENJPA-965] - Open up FinderCacheImpl for non-JDBC or JDBC-like implementation of preparing statement/query execution * [OPENJPA-970] - SchemaToolTask does not have "dropTables" argument * [OPENJPA-973] - Allow DB2 JCC driver to work with Informix database * [OPENJPA-974] - Docs: Add new Exception types * [OPENJPA-981] - @Replicated is only recognized for root instance but not the instanes reachable from the root during persist() operation. * [OPENJPA-992] - Failed to throw EntityExistException on duplicated persist in DB2 * [OPENJPA-999] - Missing sql-warning in the localizer.properties * [OPENJPA-1002] - Select range doesn't work on Oracle JDBC driver * [OPENJPA-1004] - Derived Identity fails when parent id is auto-generated * [OPENJPA-1006] - Disabling QueryCaching at runtime does not work * [OPENJPA-1028] - ClassCastException during findBy when embeddable is involved * [OPENJPA-1029] - SQLServerDictionary causes NumberFormatException if MS SQL Server JDBC driver is used * [OPENJPA-1031] - Update docs that refer to OpenJPAEntityManager.getExtent(..) * [OPENJPA-1040] - Fix code formatting errors introduced by OPENJPA-1010 * [OPENJPA-1041] - OrderBy on nested embeddables is not working * [OPENJPA-1046] - Unique Constraint on MappedSupperClass causes NullPointerException * [OPENJPA-1047] - Unique Constraint on sibling classes causes name conflict * [OPENJPA-1049] - Query against a MappedSuperclass is not supported * [OPENJPA-1051] - [patch] Mappingtool doesn't check name conflicts if MappingDefaultsImpl is called with multiple columns. * [OPENJPA-1053] - Updating an entity by setting an embeddable to it does not work properly if the embeddable has a cascade delete relationship with another entity * [OPENJPA-1054] - Large result sets do not work with MySQL * [OPENJPA-1057] - Foreign keys are not properly set for ConstraintUpdateManager to determine the correct order of the sql * [OPENJPA-1058] - Duplicate rows in DB when UniqueConstraint set * [OPENJPA-1060] - Attempting to returning a list over RMI/IIOP results in serialization exception * [OPENJPA-1067] - SetQueryTimeout(x) where x != 0 causes SQLException with DB2 on Z/OS * [OPENJPA-1070] - Restore support for composite foreign keys on MySQL * [OPENJPA-1072] - Nested embeddable with a relationship to an Entity with a generated id doesn't persist the relationship * [OPENJPA-1088] - Build updates for openjpa-examples and openjpa-integration/examples * [OPENJPA-1091] - ReverseMappingTool fails for openjpa-examples/reversemapping sample * [OPENJPA-1099] - tag in Javadoc comments causes Javadoc corruption Improvement ----------- * [OPENJPA-213] - @Column with precision and scale should result in NUMERIC(precision, scale) * [OPENJPA-736] - Combine insert and select SQL together for generated Id strategy=GenerationType.IDENTITY * [OPENJPA-742] - Add line number and column number to QueryMetaData * [OPENJPA-752] - ProxySetupStateManager.setProxyData routing through PersistanceCapable caused "PersistenceException: null" * [OPENJPA-772] - Proper maven pluginManagement and use ianal-maven-plugin for enforcing legal files * [OPENJPA-775] - Some Firedird setup tricks * [OPENJPA-776] - Firebird 2 dictionary which supports sequences * [OPENJPA-778] - cleaning up build for openjpa-kernel * [OPENJPA-779] - patch for eclipse .project and .classpath files... * [OPENJPA-780] - code review for DistributedStoreManager * [OPENJPA-781] - openjpa-jdbc depends on postgres driver, should be "provided" * [OPENJPA-783] - openjpa-lib/pom.xml has extraneous code * [OPENJPA-784] - more pom.xml dependency cleanup * [OPENJPA-817] - Order of inserts lost when using ConstraintUpdateManager * [OPENJPA-854] - Testcases should not specify log level * [OPENJPA-858] - Allow postPersist be invoked immediately after persist() * [OPENJPA-876] - Better test profiles for proprietary databases (DB2, Oracle) and continuous build * [OPENJPA-881] - Enable connection pooling for testcases. * [OPENJPA-882] - Upgrade to latest Geronimo Spec releases * [OPENJPA-901] - Use hosted JAI artifacts as the default for the docbook build * [OPENJPA-910] - Allow multiple keys for the same property to be specified at different levels * [OPENJPA-949] - Allow override of Surefire test excludes from cmdline * [OPENJPA-952] - Utilize Sun JDK's Attach API to dynamically load the OpenJPA enhancer agent * [OPENJPA-968] - Change in default detach() behavior for JPA 2.0 * [OPENJPA-975] - Oracle needs ability to not have an escape character for search strings. * [OPENJPA-983] - FirebirdDictionary improvements * [OPENJPA-988] - Refactor JPA2/MixedLockManager to conform architectual module dependency * [OPENJPA-1000] - Consistent usage of serialVersionUID * [OPENJPA-1022] - Support distinct LockModeType.READ/OPTIMISTIC & WRITE/OPTIMISTIC_FORCE_INCREMENT * [OPENJPA-1038] - Enhancer java.lang.StackOverflowError exception when circular dependencies are encountered within embeddables * [OPENJPA-1045] - Add opt-in and opt-out configuration for L2 DataCache * [OPENJPA-1056] - Add support for Sybase in the query timeout tests * [OPENJPA-1063] - Create a new openjpa-all artifact to include runtime depends * [OPENJPA-1066] - Generated ID starting with 0 can cause unexpected results * [OPENJPA-1079] - Allow client to access the distributed JDBC connection New Feature ----------- * [OPENJPA-723] - Feature request for PostgreSQL XML Column Mapping * [OPENJPA-767] - Better OSGi Integration * [OPENJPA-773] - Upgrade to JPA 2 * [OPENJPA-800] - OpenJPA 2.0 iteration 1 primary task * [OPENJPA-807] - OpenJPA 2.0 iteration 2 primary task * [OPENJPA-808] - OpenJPA 2.0 iteration 3 primary task * [OPENJPA-831] - OpenJPA 2.0 iteration 1.5 (holiday) primary task * [OPENJPA-846] - XML column support for MySQL * [OPENJPA-875] - OpenJPA 2.0 iteration 4 primary task * [OPENJPA-918] - Stored procedures not handling returns properly * [OPENJPA-956] - OpenJPA 2.0 iteration 5 primary task * [OPENJPA-966] - Support Replication-enabled MySQL * [OPENJPA-985] - Support dynamic addition of slices * [OPENJPA-1005] - Add PersistenceXMLSchemaVersion(); support * [OPENJPA-1007] - OpenJPA 2.0 iteration 6 primary task Test ---- * [OPENJPA-247] - new-delete-new-find doesn't work * [OPENJPA-833] - An improved test case for XML column mapping * [OPENJPA-998] - Add @Ignore annotation support for testcases * [OPENJPA-1015] - Enforce 80-column line width for source code * [OPENJPA-1071] - Derby test suit speed-up * [OPENJPA-1073] - Upgrade to latest maven-surefire-plugin * [OPENJPA-1092] - enable test case for jpql Included Changes in OpenJPA 2.0.0 Milestone 1 --------------------------------------------- Sub-task -------- * [OPENJPA-765] - Check for insertable or updateable before checking value for null * [OPENJPA-802] - Support @OrderColumn annotation and XML-based definition * [OPENJPA-806] - Support Criteria API for JPA 2.0 - Iteration 1 * [OPENJPA-857] - Detect and store JPA version * [OPENJPA-899] - Add support for JPA2.0 method Query.getHints() * [OPENJPA-900] - Add support for JPA2.0 method Query.getSupportedHints() * [OPENJPA-958] - Support lock mode on Named Query * [OPENJPA-1013] - Build strictly-typed Criteria API Bug --- * [OPENJPA-645] - Date millisecond precision lost for Informix IDS and SQLServer * [OPENJPA-662] - Version field returns null when explicitly projected in SELECT clause * [OPENJPA-677] - Single Table Inheritance Strategy causes entity identity issues * [OPENJPA-680] - Flush followed by refresh on a new instance returns an instance with all fields but id cleared * [OPENJPA-699] - SQLWarnings not handled properly with WarningAction set to "handle" * [OPENJPA-794] - issues with closing/opening entity manager (slices) (can't seem to be able to create multiple entityManagers ) * [OPENJPA-799] - slices: can not handle multiple projections in one query ( select count(*), max(fieldA) .......) * [OPENJPA-801] - slices: basic query is failing on sort.. not sure why * [OPENJPA-812] - slices: aggregate queries fail if any slice has empty results * [OPENJPA-821] - slices: DistributedStoreQuery$UpdateExecutor calls executeDelete by mistake * [OPENJPA-824] - org.apache.openjpa.lib.util.ParseException when try to get property descriptor for property: CacheMarshallers * [OPENJPA-825] - slices: hangs with multithreaded true * [OPENJPA-828] - Externalizer fails with ClassCastException with runtime enhancement * [OPENJPA-845] - Ordering across slice fails when ordering terms are not included in projection items * [OPENJPA-886] - Certain query failing after svn:739123 * [OPENJPA-955] - MethodQL parameter passing broken * [OPENJPA-1039] - Dynamic query predicates must not treat AND OR operators as associative Improvement ----------- * [OPENJPA-703] - Cache ResultObjectProvider data to improve query performance * [OPENJPA-760] - Better DBDictionary autodetection * [OPENJPA-841] - Create structures to hold Slice information with StateManangers * [OPENJPA-858] - Allow postPersist be invoked immediately after persist() * [OPENJPA-968] - Change in default detach() behavior for JPA 2.0 New Feature ----------- * [OPENJPA-800] - OpenJPA 2.0 iteration 1 primary task * [OPENJPA-807] - OpenJPA 2.0 iteration 2 primary task * [OPENJPA-831] - OpenJPA 2.0 iteration 1.5 (holiday) primary task * [OPENJPA-966] - Support Replication-enabled MySQL * [OPENJPA-1008] - Generate meta-model for JPA 2.0 * [OPENJPA-1009] - Populate canonical meta-model for strictly typed Criteria Query building * [OPENJPA-1010] - Instantiate meta-model classes for JPA 2.0 from source code annotations * [OPENJPA-1011] - Instantiate meta-model classes for JPA 2.0 from XML descriptors * [OPENJPA-1014] - Build weakly-typed Criteria API Task ---- * [OPENJPA-995] - Migrate existing Criteria Query implementation as OpenJPA extension to prepare for upcoming JPA 2.0 spec changes Test ---- * [OPENJPA-766] - Tests that currently fail should be committed to the repository