Apache OpenJPA 2.0.0 Beta ------------------------- Content ------- * Overview * License * Notices * Prerequisites * Documentation * Getting Involved * Included Changes * Sub-tasks * Bugs * Improvements * New Features * Test Overview -------- This distribution of Apache OpenJPA builds upon the prior releases which provided a feature-rich implementation of the Java Persistence API (JPA 1.0) part of Java Community Process JSR-220 (Enterprise JavaBeans 3.0) by implementing the specification functionality from the final Java Community Process JSR-317 (JPA 2.0) release on 12/10/2009 and passes the Sun JPA 2.0 TCK. Some of the key features included in this distribution: * Passes the Sun JPA 2.0 TCK * Implements the final JSR-317 JPA 2.0 specification APIs * Supports the final JSR-303 Bean Validation 1.0 specification APIs * Extended lock scope support * Support for CacheRetrieve/StoreMode properties on find/refresh methods * Updated find/refresh methods to support entity manager level properties * Reworked support for delimited identifiers This Beta distribution is based upon the contributions provided in development iterations 12 through 14, as defined in the JPA 2.0 Roadmap at: http://openjpa.apache.org/jpa-20-roadmap.html The JPA 2.0 Roadmap contains a complete list of implemented features and feature summaries, including what is on deck for future iterations. 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 5 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'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 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-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-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-859] - OpenJPA requires all persistent fields to be specified on an XML defined entity * [OPENJPA-993] - PCEnhancer can't execute if a non-OpenJPA PU is found * [OPENJPA-1046] - Unique Constraint on MappedSupperClass causes NullPointerException * [OPENJPA-1224] - OpenJPA MySQL BigDecimal ignoring Precision/Scale column Annotation when generating tables * [OPENJPA-1263] - TestReaderLob.testUpdateWithNull() fails on MySQL * [OPENJPA-1294] - Nested JDBC calls fail for certain database * [OPENJPA-1308] - shouldn't always use CAST with UPPER and LOWER for DB2 * [OPENJPA-1321] - Documentation inaccuracies * [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-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-1379] - Locking problem when using timestamp QueryCache eviction policy. * [OPENJPA-1381] - IllegalStateException on query method call after named query is created twice. * [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-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-1400] - Unable to persist a relationship to a detached Entity * [OPENJPA-1409] - Improve type preservation for currentDate/Time expression in queries * [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-1439] - Metamodel instantiation fails on InputStream properties * [OPENJPA-1441] - NPE when enhancing a Serializable, versioned class * [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-1463] - JPQL new operator arguments should be more flexible in matching constructor arguments * [OPENJPA-1464] - PreparedQuery fails with enum query parameter * [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-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 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-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-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-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-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-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-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-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-1206] - Bean validation call to provider not Java 2 Enabled * [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-1338] - Allow comparison for VALUE(e) that maps to basic type Improvement ----------- * [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-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-960] - Support unwrap methods on EntityManager and Query interfaces * [OPENJPA-961] - Support projection of element collection from a JPQL query * [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-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-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-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-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-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-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 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-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-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-828] - Externalizer fails with ClassCastException with runtime enhancement * [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-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