New in version 3.3.6

January 3rd, 2014
  • Auto-generate MANIFEST.MF OSGi information using Maven bundle plugin
  • Change use of StringBuffer to StringBuilder for efficiency
  • Add fix to enhancement contract for JDK1.7+ for getter when using persistence properties
  • Add support for in-memory query evaluation of String.concat
  • Provide fallback API for runtime enhancement
  • Add metadata checks for some common primary-key specification errors
  • Support persistence of StringBuilder fields
  • JPA : Fix Criteria FromImpl getJoins/getFetches to return empty set when null
  • XML : restructured to allow potential of using different JAXB implementations internally
  • XML : add support for XML indentation formatting
  • Cache : upgraded Coherence support to 3.6+
  • RDBMS : support added for query range in datastore for Derby, SQLServer 2012, Firebird
  • RDBMS : support added for sequences with SQLServer 2012
  • RDBMS : support added for M-N relations using ordered lists
  • RDBMS : fixes to schema creation for M-N relations
  • RDBMS : support added for parameters with bulk-fetch feature
  • RDBMS : bulk-fetch support added for array fields
  • RDBMS : add ability to turn off bulk-fetch on a per-query basis
  • Geospatial : new plugin comprising merged spatial/awtgeom plugins
  • Geospatial : added some missing PostGIS methods and validated against latest PostGIS JDBC driver
  • MongoDB : improved handling of ordering/range parts of query to correct previous contribution
  • MongoDB : upgrade to use latest java driver
  • HBase : fix problem with retrieval of Enum stored as numeric (ordinal)
  • Various other bug fixes and minor improvements

New in version 3.3.5 (December 12th, 2013)

  • Wrap any exception thrown from JDOHelper.getObjectId so that it meets the JDO spec
  • Fix to class loading for property validators for OSGi
  • Couple of fixes for optimistic relationship management
  • JDO : Change PMF to be Serializable
  • JPA : Change EMF and CriteriaQuery to be Serializable
  • JPA : Fix criteria CONCAT support to give correct JPQL string form
  • JPA : Add support for IN with criteria queries via CriteriaBuilder
  • JPA : Add support for JPQL "TREAT" in WHERE clause
  • RDBMS : Add support for bulk fetch of multi-valued collection fields of a candidate when in FetchPlan of a query (removes "1+N" problem)
  • RDBMS : Add support for SQLServer to handle JDOQL String.substring with 2 args (Daniel Dai)
  • RDBMS : Add support for JDOQL String.concat (Daniel Dai)
  • RDBMS : Fix to detection of type of backing store required for a collection, using metadata more
  • MongoDB : Add support for specifying the MongoOptions when creating the first connection (Robin Zhang)
  • Spatial : Fix some missing PostGIS methods
  • Various other bug fixes and minor improvements

New in version 3.2.9 (December 11th, 2013)

  • Wrap any exception thrown from JDOHelper.getObjectId so that it meets the JDO spec
  • Fix to class loading for property validators for OSGi
  • Couple of fixes for optimistic relationship management
  • JDO : Change PMF to be Serializable
  • RDBMS : Add support for bulk fetch of multi-valued collection fields of a candidate when in FetchPlan of a query (removes "1+N" problem)
  • RDBMS : Add support for SQLServer to handle JDOQL String.substring with 2 args (Daniel Dai)
  • RDBMS : Add support for JDOQL String.concat (Daniel Dai)
  • RDBMS : Fix to detection of type of backing store required for a collection, using metadata more
  • MongoDB : Add support for specifying the MongoOptions when creating the first connection (Robin Zhang)
  • Spatial : Fix some missing PostGIS methods
  • Some other bug fixes and minor improvements

New in version 3.2.8 (November 22nd, 2013)

  • Metadata : Add level of locking to metadata load process to assist in multithreaded environments
  • Metadata : fix bug in OrderMetadata for multithreaded environments
  • Fix to some potential startup problems with ExecutionContext/ObjectProvider in multithreaded environments
  • Change "datanucleus.SerializeRead", "datanucleus.cache.collections", "datanucleus.deletionPolicy", "datanucleus.query.jdoql.allowAll", "datanucleus.query.sql.allowAll" to be overrideable on the PM/EM
  • Cache : update javax.cache support to "1.0-PFD" standard
  • RDBMS : Fix to persistence of bidirectional 1-N with Set
  • RDBMS : Change backing stores to be one per field and be thread-safe
  • RDBMS : Support for more boolean expressions in result clause for JDOQL/JPQL
  • RDBMS : Support for persisting a field serialised into a local file
  • RDBMS : Support for persisting a File type field streamed to/from datastore
  • RDBMS : Upgrade "datasource" plugin point to be "connectionpool", adding more capabilities
  • Neo4j : support for persistence of map fields (Map, Map)
  • Neo4j : support for using embedded database with user-provided configuration properties
  • Neo4j : support for access to underlying Cypher query for a JDOQL/JPQL query
  • MongoDB : support for query evaluation of several String methods in-datastore (Marcin Jurkowski)
  • MongoDB : support for query evaluation of Collection.contains in-datastore (Marcin Jurkowski)
  • MongoDB : fix to retrieval of class version field (Marcin Jurkowski)
  • MongoDB : support for query literals of type Character
  • Some other bug fixes and minor improvements

New in version 3.3.4 (November 20th, 2013)

  • Metadata : Add level of locking to metadata load process to assist in multithreaded environments
  • Metadata : fix bug in OrderMetadata for multithreaded environments
  • Fix to some potential startup problems with ExecutionContext/ObjectProvider in multithreaded environments
  • Change "datanucleus.SerializeRead", "datanucleus.cache.collections", "datanucleus.deletionPolicy", "datanucleus.query.jdoql.allowAll", "datanucleus.query.sql.allowAll" to be overrideable on the PM/EM
  • Cache : update javax.cache support to "1.0-PFD" standard
  • JPA : Fix to metamodel Attribute.isOptional to return false for PK fields
  • RDBMS : Fix to persistence of bidirectional 1-N with Set
  • RDBMS : Change backing stores to be one per field and be thread-safe
  • RDBMS : Support for more boolean expressions in result clause for JDOQL/JPQL
  • RDBMS : Support for persisting a field serialised into a local file
  • RDBMS : Support for persisting a File type field streamed to/from datastore
  • RDBMS : Upgrade "datasource" plugin point to be "connectionpool", adding more capabilities
  • Neo4j : support for persistence of map fields (Map, Map)
  • Neo4j : support for using embedded database with user-provided configuration properties
  • Neo4j : support for access to underlying Cypher query for a JDOQL/JPQL query
  • MongoDB : support for query evaluation of several String methods in-datastore (Marcin Jurkowski)
  • MongoDB : support for query evaluation of Collection.contains in-datastore (Marcin Jurkowski)
  • MongoDB : fix to retrieval of class version field (Marcin Jurkowski)
  • MongoDB : support for query literals of type Character
  • Various other bug fixes and minor improvements

New in version 3.2.7 (October 26th, 2013)

  • JPA : fix to metamodel SimpleAttributeImpl.isVersion (Adrian Ber)
  • JPA : add support for multi-field join syntax in JPQL FROM clause
  • JPA : update to handling of JPQL range when just first result set
  • RDBMS : fix for SQLServer schema name problem (Shanyu Zhao)
  • RDBMS : add support for using FetchPlan when querying over "complete-table" candidate (previous just retrieved primary key)
  • RDBMS : improvement in process to determine class name when no subclasses known about, to avoid SQL
  • RDBMS : support for persisting Double type into SQLServer FLOAT datastore type (Shuaishai Nie)
  • JSON : fix to retrieval of objects in query so that application-identity cases have id assigned
  • MongoDB : add support for query ordering being processed in the datastore (Marcin Jurkowski))
  • Rename "google-collections" plugin to "guava"
  • JDO : distribute jdo-api 3.1-rc1
  • Some other bug fixes and minor improvements

New in version 3.3.3 (October 25th, 2013)

  • JPA : fix to metamodel SimpleAttributeImpl.isVersion (Adrian Ber)
  • JPA : add support for multi-field join syntax in JPQL FROM clause
  • JPA : update to handling of JPQL range when just first result set
  • JPA : support inherited TypeConverters (Adrian Ber)
  • JPA : pass properties from EMF to ClassTransformer when run in managed mode
  • RDBMS : fix for SQLServer schema name problem (Shanyu Zhao)
  • RDBMS : add support for using FetchPlan when querying over "complete-table" candidate (previous just retrieved primary key)
  • RDBMS : improvement in process to determine class name when no subclasses known about, to avoid SQL
  • RDBMS : support for persisting Double type into SQLServer FLOAT datastore type (Shuaishai Nie)
  • JSON : fix to retrieval of objects in query so that application-identity cases have id assigned
  • MongoDB : add support for query ordering being processed in the datastore (Marcin Jurkowski))
  • Rename "google-collections" plugin to "guava"
  • JDO : distribute jdo-api 3.1-rc1
  • Various other bug fixes and minor improvements

New in version 3.3.0 Milestone 1 (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

New in version 3.2.0 (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.