June 10th, 2013· Mapping : cater for inheritance with (multiple) MappedSuperclass part way down tree but with superclass Entity with own table (i.e effectively @MappedSubclass)
· SchemaTool : support properties file and/or System props overriding persistence.xml
· Simplify internal metadata storage for fetch groups and constraints
· Rename "datanucleus.metadata.validate" persistence property to "datanucleus.metadata.xml.validate"
· Add "datanucleus.metadata.xml.namespaceAware" to allow control over use of XML namespaces
· Fix to operation queue for Map remove operations
· Add check on specification of discriminator value for abstract classes
· JPA : Support more situations
· JPA : run against JPA 2.1 API jar
· JPA : Support JPA 2.1 Index and ForeignKey specification
· JPA : Support JPA 2.1 JPQL "FUNCTION"
· JPA : Support JPA 2.1 Criteria UPDATE/DELETE
· JPA : Support JPA 2.1 FROM "ON" in Criteria query
· JPA : Drop support for DN extension @Index annotation (use JPA 2.1 annotation now)
· RDBMS : Schema Generation improvement to better cater for any ordering of input classes
· RDBMS : Schema Generation fix to recursive initialisation of PK of a table
· RDBMS : Fix to handling of FK Map where key/value have inheritance and the value/key is stored in a superclass
· RDBMS : Fix to value-map discriminator handling for embedded object
· RDBMS : add ability to invoke any SQL function (for JPA 2.1)
· MongoDB : fix to explicitly specify the storage type for primitive wrapper types
· Various minor bug fixes and improvements
March 12th, 2013· Fix to in-memory evaluation when using a variable that has no possible value
· Move operation queue for SCOs to ExecutionContext so that it can control the whole flush process
· Disable ObjectProvider pooling since it currently causes issues when in a highly multithreaded environment
· Add check on attempted persistence of final fields
· JPA : allow for user overriding a JNDI datasource with a URL-based datasource
· RDBMS : fix to bulk update when setting fields to NULL
· RDBMS : Cater for fields of a type that have a TypeConverter but no Mapping defined, falling back to the TypeConverter
· Neo4j : Support for bulk delete
· MongoDB : Support for bulk delete
· HBase : Support for bulk delete
Version 3.2 includes the following major changes over 3.1:
· The enhancer and ASM are now merged into datanucleus-core
· L2 caching of embedded/serialised fields now defaults to ON
· ExecutionContext objects are now pooled, together with various other improvements for performance
· Enhancer now includes an option to enhance classes as detachable regardless of metadata
· Neo4j : now uses a single connection per PM/EM
· Neo4j : now supports bulk delete
· MongoDB : now uses a single connection per PM/EM
· MongoDB : now supports bulk delete
· HBase : supports various extensions for bloom filters, compression, in-memory etc (Nicolas Seyvet)
· HBase : now supports bulk delete
· RDBMS : support added for the Virtuoso database (Emmanuel Poitier)
· RDBMS : support added for Tomcat connection pool (Marshall Reeske)
· OSGi : improved deployability due to dependency version restrictions
· JPA : validated to work with JBoss 7 (thanks to Nicolas Seyvet and Scott Marlow)
· JPA : access of non-detached field will result in IllegalAccessException instead of the previous JDO exception
· JPA : support for JPA2.1 FROM "ON" clauses
· JPA : support for bulk usage of persist(), remove(), merge() and detach() (pass in Collection or array of entities)
· JPA : support for JPA2.1 "Generate Schema" feature
· If a type is supported to be persistent then it defaults to persistent now (no need to mark all non-standard typed fields as persistent).
· Add ability to disable the L2 cache on a PM/EM-basis where the PMF/EMF has it enabled.
· Cache : provides support for javax.cache v0.61
· Many bug fixes, and minor feature additions.
February 21st, 2013· Upgrade support for javax.cache to v0.61
· Add support for javax.cache "readThrough", "writeThrough", "statisticsEnabled" and "storeByValue"
· Fix bug where user had JPA inheritance tree with MappedSuperclass part way through tree and no discriminator value specified.
· JDO : Fix to JDO PM.getProperties to present the properties in the case they are in the JDO spec.
· Support disabling of L2 cache on a PM basis
· Add synchronisation to evict method on query results cache
· Much code refactoring around the enhancer and restricting JDO classes to just two places specific to the bytecode enhancement contract.
· JPA : Support for JPA2.1 XSD (Proposed Final Draft (PFD))
· JPA : Update support for "generate-schema" to match JPA2.1 PFD
· JPA : Fix bug in XML processing
· JPA : Add missing support for @MapKeyTemporal and associated XML variant.
· JPA : Cater for missing @OneToOne on persistable field
· JDO : Fix initialisation of a Localiser that caused problems in OSGi
· RDBMS : Fix to NPE in UpdateRequest/DeleteRequest for corner-case version handling
· RDBMS : Fix to not setting version when class was read in and has no DFG fields
· RDBMS : Fix to bulk update for SQLServer
· RDBMS : Support for Tomcat connection pool (Marshall Reeske)
· RDBMS : Better control over how statements are logged
· RDBMS : Fix bug in HAVING clause application
· RDBMS : Omit class from discriminator restriction when class is abstract
· Various minor bug fixes and improvements
February 2nd, 2013· Introduction of a 2-phase flush process for corner cases that discover extra objects to be persisted during the first phase of flush
· Support for JTA TransactionSynchronizationRegistry
· Support for JTA transactions without auto-join
· Fixes to JTA support for JBoss 7 (Nicolas Seyvet)
· Fix to JDOQL bulk update bug
· Various fixes to integration of Bean Validation
· Support ability to precompile all named queries during PMF/EMF creation
· Improvements to L2 cache update process to only update particular fields
· Fix to XML auto-start mechanism to avoid duplicate entries
· JPA2.1 : support for FROM "ON" clause
· JPA : Support for multi-object usage of EntityManager persist(), merge(), remove() and detach() - vendor extension
· JDO : Move JDO Typesafe classes to "datanucleus-api-jdo" plugin
· RDBMS : Fix to getGeneratedKeys for MySQL (10-15% speed up for some cases)
· RDBMS : Fix to pessimistic locking for SQLServer (Vladimir Konkov)
· RDBMS : Improvements to bulk update to cope with inheritance and multiple tables
· RDBMS : Improvements to bulk delete to cope with inheritance and multiple tables
· RDBMS : Fix to query compilation caching to allow for serialize-read setting (Graham Stewart)
· RDBMS : Support for Virtuoso database (Emmanuel Poitier)
· RDBMS : Bug fix so that any HAVING clause is applied to all UNIONs
· RDBMS : Change DB2 to use UNION ALL instead of UNION
· HBase : fix to use of HTable (Nicolas Seyvet)
· HBase : fix to extensions handling (Nicolas Seyvet)
· Excel : allow connectionURL prefix of "xls" as alias for "excel"
· MongoDB : fix to logger argument to be String
· Various minor bug fixes and improvements
January 3rd, 2013· JDO : ability to mark all classes as detachable, overriding metadata
· JDO : add convenience accessor for "detachedState" of an object
· JDO : provide access to the native query performed by JDOQL
· JPA : add convenience accessor for "detachedState" of an object
· JPA : provide access to the native query performed by JPQL
· JPA : support surrogate version on a class
· JPA : fix to exception throwing when using JTA in a JavaEE environment
· JPA : support for JPA2.1 "Generate Schema" feature
· JPA : improved logix for finding a persistence-unit with a name, and flag duplicate units with the same name
· JPA : default to not add classTransformer in JavaEE environment (so user has to enable it)
· Update to JMX beans definitions for compliance
· Bundle (repackaged) ASM into datanucleus-core for cleaner usage
· Fix missing "PreMainClass" for enhancer so runtime enhancement works
· Moved "mapped datastores" code into RDBMS plugin (from datanucleus-core) since only used there
· Add pooling for ExecutionContext and ObjectProvider objects for performance.
· Fix to persist of N-1 relation with detached owner so we don't get multiple element objects
· Fix to ClassLoaderImpl/MetaDataUtils to preserve ordering whilst removing dups
· Provide access to native query being invoked by a JDOQL/JPQL query
· RDBMS : fix to use of named parameters in range clause of query
· RDBMS : add statement batching to shifting process for elements in a List
· RDBMS : fix to schema generation when we have "subclass-table" part way down an inheritance tree
· MongoDB : improvement for polymorphic queries to make use of discriminator column and handle all in single query
· MongoDB : improvement to deletion process to not reload same fields multiple times
· HBase : support for Bloom filters, in-memory and various other options (Nicolas Seyvet)
· Excel : make "poi-ooxml" dependency optional since not needed with XLS
· Various minor bug fixes and improvements
November 15th, 2012· JPA : Fix missing space after filter in criteria query filter/having clauses
· JPA : Support Criteria parameter() method without name.
· Fix to JTA transaction manager locator constructors
· Add support for L2 caching of embedded/serialised fields (disabled by default)
· Change process for update of an object in L2 cache to avoid concurrent access
· LDAP : Fix to concurrent modification exception
· MongoDB : update "native"/"auto" value generator to use "increment" when using numeric PK
· HBase : make use of Table pool (Simon Kelly)
· RDBMS : Clean up DeleteRequest code
· RDBMS : Support for specifying indexes/unique-keys on map join tables
· Updates to all plugins to place upper limit on Maven dependency versions (pre-3.2 releases)
· Various other bug fixes and minor improvements
September 28th, 2012· Fix to lookup of object inheritance level in some corner-case situations
· Provide TypeConverters for persisting Serializable object as byte[] or base-64 encoded string
· Fix clone of JPQL query so that "from" is cloned
· Log which fields (numbers) are being attached
· Complete TODO in FetchPlan code for dynamic fetch groups from PM
· JDO : Fix bug in map key/value metadata handling introduced in 3.1.1
· JPA : Fix bug in use of Query.getParameters when used by Spring Data JPA
· XML : Fix to class loading in relation lookup
· Neo4j : Fix to some JPQL queries causing exception
· Neo4j : Fix to lazy load iterator for empty result condition
· Neo4j : Fix to stackoverflow with bidirectional relation retrieval
· Neo4j : Support persistence of arrays
· Neo4j : Support persistence of serialised fields
· Neo4j : Support "increment" value generator
· MongoDB : Support for capped DB collections (size limit on objects of a type)
· MongoDB : Fix to replica-set URL string parsing
· RDBMS : Extend support for stored procedure parameters to other types
· Various other bug fixes and minor improvements
August 30th, 2012· Support for persisting to Neo4j graph datastores was added.
· A hook for transaction event listeners was added.
· Many improvements to in-memory query evaluation were made.
· Improvements to invocation of query methods with RDBMS were made.
· Improvements to querying with MongoDB were made.
· More flexibility for querying of spatial types was added.
· Vendor extension annotation for specifying indexes with JPA was added.
· Many minor feature enhancements and bugfixes were made.
July 9th, 2012· Generic query compilation was made serializable.
· Support for named queries in non-Entity classes was added.
· Improvements to JTA transactions with JPA were made.
· Support for Jodatime was made more robust.
· Support for query methods with AWT and spatial types was added.
· Various bugs were fixed and minor improvements made.
May 12th, 2012· Support for non-transactional atomic updates was added.
· The "native"/"auto" value generation algorithm was rewritten to include "identity"/"sequence" etc.
· Full support for nondurable identity was added for RDBMS, MongoDB, HBase, Excel, and ODF datastores.
· Support for the REST API was rewritten to provide complete query support.
· Various improvements were made to the "simple" SCO container wrappers.
· Various problems were fixed in metadata handling, detachment/attachment, and date-string conversion.
February 29th, 2012· Cascade-attach of arrays of persistables was fixed.
· The JPA extension feature "findTypeConversion" was fixed.
· A bug in OSGi class loading for persistence.xml was fixed.
· Support for sequences with Derby was added.
· Some other minor improvements were made.
January 31st, 2012· Support for the JPA2.1 Stored Procedures API was added.
· Support for nondurable identity for MongoDB/Excel was added.
· Handling of HBase tables was fixed, allowing use of all recent versions.
· Querying of embedded inherited fields for RDBMS was fixed.
· Use of JPA EmbeddedId with relations was fixed.
· Support for embedded PK fields with Excel/ODF was added.
· Support for direct serialization of query results was added.
· An annotation for specifying column position with JPA was added.
November 6th, 2011· Support for bean validation (javax.validation JSR303) for JDO has been added.
· The L2 caching process has been rewritten.
· Various OSGi MANIFESTs have been fixed.
· Metadata relation information for reference fields has been fixed.
· Support for multitenancy via discriminator for MongoDB has been added.
· Use of "validation-mode" of a persistence-unit has been fixed.
· Various other bugs have been fixed.
August 1st, 2011· JDO API, JPA API, REST APIs repackaged, and JSON API added
· JPA/JDO : support for application-identity root classes without own table and without identity field(s)
· JDO3.1 : support for "complete-table" now standarised
· JDO : Support for bulk update/delete via typesafe API (vendor extension)
· JPA : support for singleton EMF pattern
· JPA : support for merge of transient object with identity that mirrors persistent object.
· Noticeable performance change with non-transactional write operations
· Ability to specify classes as "read-only"
· RDBMS : Initial support for SQLite
· MongoDB : Support for MongoDB
· MongoDB : support for "increment" and "identity" value generation
· MongoDB : support for embedded persistable fields, collections, arrays and maps
· MongoDB : support for SchemaTool
· MongoDB : support for version persistence, and optimistic checking
· MongoDB : support for datastore identity
· MongoDB : support for basic queries in-datastore
· HBase : support for SchemaTool
· HBase : support for version persistence and optimistic checking
· HBase : support for datastore identity
· HBase : support for relationships and reachability
· HBase : support for "increment" value generation (Peter Rainer)
· HBase : support for embedded persistable fields
· HBase : support for basic queries in-datastore
· Excel/OOXML : support for SchemaTool
· Excel/OOXML : support for maps
· Excel/OOXML : support for "increment" value generation
· ODF : support for embedded persistable fields
· ODF : support for maps
· ODF : support for SchemaTool
· ODF : upgrade to ODFDOM-Java 0.8.7+
· ODF : support for "increment" value generation
· NeoDatis : support for unique constraints.
· Excel, ODF, XML, HBase, MongoDB : support for querying of interfaces
· Cache : upgrade to EHCache 1.6+
· Cache : support for Xmemcached
· Works with JBoss 6.0
February 24th, 2011· The number of SQL statements for some map operations was reduced.
· Support for JPA @MapKeyEnumerated was added.
· Support for multiple @MappedSuperclass levels was added.
· JPQL "NOT IN (subquery)" syntax was fixed.
· A possible race condition in JDBC statement handling was fixed.
· Various other fixes and minor improvements were also made.
November 15th, 2010· Handling of container and addition of null elements was improved.
· The default for null containment was improved.
· Support for maps with null values was added for RDBMS.
· Attach process was improved.
· In-memory query evaluation was fixed.
· JDO typesafe queries were added.
· JPA2 lock methods were added.
· Some issues with RDBMS schema generation were fixed.
· More control for joining in JDOQL was added.
· Various other bugs were fixed.
November 15th, 2010· The attach process was improved to not need "attachPolicy" control.
· The in-memory query evaluator was fixed.
· Column reuse on RDBMS was added.
· The length of BLOB/CLOB on MySQL was fixed.
· Creation of index/FK on Derby was fixed.
· JPA2 handling was improved.
October 21st, 2010· Merge of JPA metadata has changed when specified in mixed annotations and XML.
· The PMF/EMF startup process has been fixed so that all persistence properties are respected.
· The use of positional parameters in JDOQL for RDBMS was fixed.
· Validation of candidate keys was fixed.
· Support for List.get in the JDOQL result clause was added.
· Creation of sequences with SchemaTool was fixed.
· Use of @Enumerated with a @Column in JPA was fixed.
· Runtime enhancement class loader problems were fixed.
October 21st, 2010· Complete support for JDO3.1 column positioning and initial support for JDO3.1 sequence control was added.
· The ability to retain the datastore connection when outside of a transaction was added.
· Support for use of methods in JDOQL grouping statements was added.
· Type comparison handling by the in-memory query evaluator was extended.
· The ability to skip validation of objects found in the L2 cache when invoked from PM.getObjectById/EM.find was added.
· Validation of candidate keys was fixed.
· Support for the use of maps with embedded keys/values and key in value was added.
· Many other additions and fixes.
June 25th, 2010· Addition of support for persistence to OOXML documents
· Addition of support for persistence to GoogleStorage
· Added support for persistence of some "javax.time" (JSR0310) types
· Added support for persistence of some Google Collections types
· Changed to use rewritten JDOQL implementation for RDBMS by default. This makes many more JDOQL statements runnable than were previously possible
· Uses JDO3 "final" jar
· Uses JPA2 "final" jar
· Supports full JPA2 definition of JPQL
· Supports JPA2 static metamodel creation
· Supports JPA2 orphan removal
· Support for embedded PC objects with Excel persistence
· Support for using spatial methods in queries with the new JDOQL implementation for RDBMS
· Support for BoneCP RDBMS connection pooling library
· Support for HSQLDB 2.0
· RDBMS : Statement batching for inserts
October 12th, 2009· Bugfixes were made to the PersistenceManager proxy when multithreaded, to interface "xcalia" mapping, and to handling of discriminators with subclasses.
· Support for enums with LDAP datastores was added.
· This is almost certainly the final 1.1.x release.
September 11th, 2009· Support for persistence to Oracle TimesTen was added.
· Support for persistence of JodaTime types was added.
· Support for JPA "extended" persistence context was added.
· Support for use of subqueries with JDOQL2/JPQL2 for RDBMS was added.
· Support for pin/unpin control over caching of query results was added.
· Support for "detachAllOnRollback" was added.
· A bug in the attachment of embedded fields was fixed.
· Support for persistence of recursive graphs to LDAP was added.
· The SQL API use of object literals was improved. Several other bugs were fixed.
March 17th, 2009· Support for generic query compilation of param.method, param.field, chained methods, etc. was added.
· In-memory evaluation of queries for cases of a failing expression was improved.
· RDBMS backing store iterator SQL was rewritten using the new SQL API.
· RDBMS "JDOQL2" implementation has support for static fields, chained methods, input Extents, enums, Math.XXX, and JDOHelper.XXX.
· Bugs were fixed for JTA, JPA @Basic, and runtime enhancement with JPA.
February 23rd, 2009· Support for persistence to OpenDocument format spreadsheets was added. Support for compile-time enhancement was added.
· Support for JDO2.3 query cancel/timeout API was added.
· Improvements to the replication API were added.
· Bugfixes were made relating to class loading, non-tx writes, Collection.remove(), and JTA.
December 11th, 2008· Support for Xcalia/Kodo style datastore-identity was added.
· Enhancer API support for retrieving the enhanced bytes of a class was added.
· Support for native LDAP queries was added.
· Some bugs were fixed.
September 23rd, 2008· Support for JDO2.2 transaction isolation has been added.
· Support for JPQL bulk deletion with NeoDatis, db4o, XML, Excel, LDAP, and JSON has been added.
· Performance improvement on RDBMS table detection have been made.
· Some bugs have been fixed.
August 31st, 2008· JDO persistence has been migrated to the forthcoming JDO2.2 standard.
· Support for JDO2.2 dynamic fetch groups has been added (this was previously a vendor extension).
· Generic query compilation support for chained method invocations was added.
· Support for dynamic RDBMS schema upgrades for 1-1 interface fields was added.
· Support for the use of datastore identity with Excel datastores was added.
· Support for cascade delete with NeoDatis datastores was added.
· A bug was fixed in cascade delete for db4o datastores.
· A bug was fixed for persistence/retrieval of object wrapper field values with Excel datastores.