The 2.1 release of AccessPlatform is available under the Apache 2 license from our download page
Version 2.1 includes the following over 2.0
Support for persistence to OOXML files
Support for persistence to GoogleStorage
Support for persistence for fields of some javax.time types
Support for persistence for fields of some Google Collection 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
Many bug fixes, and minor feature additions.
No further releases
Dec 18th 2010 : Version 2.1.4 includes the following changes
Fix to bug in determination of inheritance level of application identity object
Fix couple of places where code not thread-safe
Fix to ConnectionFactory2 usage
JPA : Support for fetch groups (DataNucleus extension)
JPA : few minor corrections to JPA2 handling
Nov 13th 2010 : Version 2.1.3 includes the following changes
Drop "attachPolicy" and provide complete attachment in default scenario
Couple of fixes to result handling in in-memory query evaluator
RDBMS : Allow column reuse for multiple fields of a class
RDBMS : Fix to use of subclass-table with 1-1 bidirectional relations
RDBMS : Fix to use of lengths with BLOB/CLOB on MySQL
RDBMS : Fix to index/FK creation on Derby to avoid warning messages
JPA : Outline implementation of JPA2 lock methods
JPA : Support use of @PrimaryKeyJoinColumn for 1-1s
Oct 20th 2010 : Version 2.1.2 includes the following changes
Improved merge of metadata information when sequence or cascade info specified in annotations
Fix to PMF startup process so that persistence properties are registered before enablement of some services
RDBMS : fix to use of positional parameters
RDBMS : fix to validation of candidate keys, that prevented creation of some unique keys under some circumstances
RDBMS : fix to List.get() when used in result clause of JDOQL query
RDBMS : fix to creation of sequences with SchemaTool to take extension props
JPA : fix to case where sequence name not set
JPA : fix to EM.getReference to not validate the object
JPA : fix to use of @Enumerated with @Column
Enhancer : fix to runtime enhancement, class loading problem
Enhancer : fix to error message of override of invalid field
Cache : add option to allow retention of cached objects after close of PMF/EMF, for the case where used by other instances
Jun 26th 2010 : Version 2.1.1 includes the following changes
Changed method for instantiating objects using application identity when returned by queries, reducing the memory and CPU requirement
RDBMS : Ability to specify global default for sequence/increment value generator cache size
RDBMS : Fix to BLOB/CLOB handling with Derby 10.6+
RDBMS : Full support for HSQLDB 2.0
RDBMS : Fix to query String.startsWith/endsWith on H2
RDBMS : Fix to query String.substring(int, int) on Derby
RDBMS : Fix to BLOB/CLOB handling in queries with MSSQL
RDBMS : Support for batched INSERTs, so you re-run all of your benchmarks ;-)
RDBMS : SchemaTool now creates necessary auto-start table, sequence table, and sequences
JSON : Fix to HTTP Error 409 handling
Jul 11th 2010 : Version 2.1 RELEASE includes the following changes
Changed to use JDO3 jar
Support for persistence to GoogleStorage
Support for persistence of some Google Collections classes
Added initial version of a generic query optimiser, removing redundant variable clauses
Fix to JPA inheritance strategy "JOINED" when having subclasses with discriminator
Fix to persist of new object with collection that contains detached objects
Fix to persist of new object with related detached compound identity chain
Optimise out some SCO collection operations such as add+delete of same object in succession
Support persist of enums as arbitrary value
JPA2 : Support for orphan removal
JPA2 : Support for JPQL "INDEX" keyword
RDBMS : Fix to setting of BLOB/CLOB on bidirectional relations for Oracle
RDBMS : Fix to SQL table namer to allow for unioned statements when choosing table name
RDBMS : Support for use of BoneCP connection pools
May 21st 2010 : Version 2.1 Milestone 3 includes the following changes
Change some Maven dependencies to allow use with JDO3
Fix to generic compilation for "param.field" and use of subquery candidate
Extend in-memory query evaluation result clause handler to allow variable expression and more
Fix to in-memory query evaluation for String.matches when the string is null
RDBMS : Fix to cascade delete on 1-1 when there is a FK present (so leave to datastore)
RDBMS : Fix to Derby syntax for CROSS JOIN pre-10.6
RDBMS : Fix to Derby usage with JDOQL2 to restrict use of CLOB/BLOC with DISTINCT/UNION
RDBMS : Add ability to query in datastore when candidate collection being input
RDBMS : Fix to Map.containsKey/containsValue to allow for contained variable already having a table in the statement
RDBMS : Fix to use of subqueries with parameters linking back to the main query
RDBMS : Fix to use of input positional parameters when one is used multiple times in the statement
RDBMS : Fetching optimisation when fetching a field and taking the opportunity to load any other non-relation or 1-1/N-1 unloaded fields
RDBMS : Fix to SQL table namers to allow for multiple levels of subquery
RDBMS : Fix to Collection.contains(Enum)
RDBMS : Fix to use of parameter with null value in comparisons
RDBMS : Fix to use of explicit parameters in subquery
RDBMS : Fix to generation of "count" query to get size so it takes into account DISTINCT in the main query
Excel : Support for persistence of primitive wrapper types
Excel : Support for persistence of embedded PC fields (Guido)
Spatial : Added support for all Oracle/PostGIS/MySQL specific methods
Spatial : Fix to handling of user object in Jts objects when querying
Spatial : Addition of remaining methods for querying
Apr 26th 2010 : Version 2.1 Milestone 2 includes the following changes
Add ability to skip the check on unused input parameters to queries
Fix issue with detachment when finding an object already detached but not far enough
Add support for compilation of queries with parameters in subqueries linking back to the main query
Fix to L2 caching of StringBuffer fields to cache a copy
Fix to handle input query with special characters (tab, eol, etc)
Extend query compilation to store whether the query result is distinct
Support specification of interface fields where there isn’t currently an available implementation
Fix to use of dynamic fetch groups in multiple threads
Fix to support non-standard SQL statements (stored procs, statements not starting with SELECT/INSERT/UPDATE/MERGE/DELETE)
Fix to the query in-memory evaluator to support aggregate names in upper or lower case
Fix to a couple of situations where a versioned object can be returned to the user without the version set
Fix to reset the version of an object on rollback()
Fix to SCOListIterator
RDBMS : Fix to generation of indexes for reference fields when having a FK per implementation so that the index is created for the implementations FK only
RDBMS : Fix JDOQL2 to not select CLOB fields when using UNION or DISTINCT for Derby
RDBMS : Fix JDOQL2 to add parentheses around ORed clauses
RDBMS : Fix JDOQL2 to pick the correct statement when using methods in subqueries
RDBMS : Fix JDOQL2 "alpha-namer" to handle more than 26 table groups
RDBMS : Fix JDOQL2 to handle comparisons of interface field with an implementation
RDBMS : Support use of CHECK constraint when persisting boolean as numeric
RDBMS : Change HSQLDB use of LIMIT to append to the end of the statement
RDBMS : Support for use of SQLXML type with DB2 (contrib)
RDBMS : Fix to JDOQL2 for use of input parameters with multiple columns
JPA : Add support for JPQL "case" expressions
JPA : Add support for generation of JPA2 static metamodel classes
JPA : Change to handling of "columnDefinition" to expect the type to be included
Enhancer : when using Java6 and having the enhancer in the CLASSPATH default to not enabling the annotation processor to enhance the class(es) being compiled
Apr 2nd 2010 : Version 2.1 Milestone 1 includes the following changes
Addition of plugin for persistence of javax.time (JSR0310) types
Fix to a typo in the use of ConnectionFactory when defining the datastore as a DataSource
Cleanup to process of creation of L1/L2/Query caches
Change generic query compilation expression tree bidirectional for ease of navigation
Support generic query compilation of {param}.field
Enforce JDO2 spec rules for JDOQL result/grouping/ordering clauses validity
Fix to generic query compilation of {variable}.field
Fix to generic query compilation of cast expressions
Added checks on invalid use of keywords during generic query compialtion
Fix to generic query compilation of {array}.length
Fix to use of Extent to close all iterators correctly
FIx to in-memory evaluation of queries to better handle date equality
Fix to getParent() of class/package metadata of JDO Metadata API
Fix to use of set() on ListIterator obtained from list wrapper
Fix to persistence of object with reference to the same object
RDBMS : change to use "JDOQL2" implementation by default. Use "JDOQL-Legacy" if wanting the old JDOQL implementation.
RDBMS : having expression that are not boolean should throw XXXUserException for JDOQL2
RDBMS : fix to use of parameters for range and passed in as unnamed to API
RDBMS : fix to caching of queries when using String.matches with input parameter for JDOQL2
RDBMS : fix to not create indexes for serialised field (problem on MySQL)
RDBMS : support override of datastore mapping by user plugins
RDBMS : fix to only use CROSS JOIN with Derby from v10.6 onwards
RDBMS : fix to use of Boolean expression/literals for JDOQL2
RDBMS : fix to candidate query on persistent interface candidate for JDOQL2
RDBMS : add support for persistent object "identity" as input parameter for JDOQL2
RDBMS : fix to numeric type comparisons for JDOQL2
RDBMS : fix to use of parameter in result clause when null for JDOQL2
RDBMS : add support for Cast expression in result clause for JDOQL2
RDBMS : add support for array of expressions in JDOQL2
RDBMS : add support for joins to interface implementations in JDOQL2
RDBMS : add support for subquery.contains() in JDOQL2
RDBMS : fix handling of DISTINCT in JDOQL2
RDBMS : make use of Query imports when resolving classes in instanceof/cast for JDOQL2
RDBMS : fix use of navigation of N-1 relation via join table in JDOQL2
RDBMS : Delete "JPQL-Legacy" implementation
JodaTime : fix handling of null fields
JPA : upgrade to use JPA2 "final" jar API
Much internal refactoring has also been performed to remove unneeded components or to simplify the API’s for things needed in the 2.1 timeline. Any use of internal API’s by applications will likely need changes.