The 5.2 release of AccessPlatform is available under the Apache 2 license from our download page
Version 5.2 includes the following over 5.1
Upgrade to the bytecode enhancement contract to remove unneeded fields/methods (requires re-enhancement).
Upgrade to the bytecode enhancement contract to improve handling of cloning of persistable objects.
Implementation of more methods for JDOQLTyped query.
Upgrade to Apache POI v4.0 (Excel/OOXML datastores)
Upgrade to ASM v7.0 (Java 10/11 support), then ASM v8.0 (Java 12/13 support)
Support for Java 10, 11, 12, 13
5.2.12 2022?
05 March 2022 : Version 5.2.11 includes the following changes
datanucleus-rdbms-414 - Change List backing store code for indexed list to shift in bulk (single statement)
datanucleus-rdbms-415 - Provide mechanism for 1-1 owned / N-1 FK relation to be marked to fetch the "PK" only and not instantiate (when not in FetchPlan)
datanucleus-rdbms-405 - Updated the default for the DatastoreId.class definition; it should be a BigInt by default
15 August 2021 : Version 5.2.10 includes the following changes
datanucleus-api-jpa-129 - Support DISTINCT aggregates in CriteriaBuilder (javax.persistence 2.2.4+)
datanucleus-rdbms-395 - JoinMapStore internalPut and internalUpdate don’t use batching but should allow it
datanucleus-rdbms-380 - Bulk Delete with multiple joins fails with null pointer exception
datanucleus-rdbms-383 - Use of AVG(DISTINCT …) with e.g H2 can create invalid SQL
datanucleus-rdbms-384 - Result Class cannot subclass objects with same field names
datanucleus-rdbms-392 - wrong query generated on interface column
27 May 2021 : Version 5.2.9 includes the following changes
datanucleus-api-jdo-111 - Specifying @Convert doesn’t default to making a field persistent
datanucleus-rdbms-367 - Expand "fetch-fk-only" to allow check of whether just the PK fields of the related are selected
datanucleus-rdbms-368 - Add support for query functions WEEK(date), QUARTER(date)
datanucleus-rdbms-375 - Support getGeneratedKeys for IDENTITY with APPLICATION ID
datanucleus-core-379 - Prevent non-transactional recursive calls to ManagedConnection.close()
17 April 2021 : Version 5.2.8 includes the following changes
datanucleus-core-365 - Multitenancy read handler is not as complete as needed
datanucleus-core-366 - Allow ExecutionContext.newObjectId(Class, Object) to pass in key for datastore id
datanucleus-core-372 - Add validators for datanucleus.generateSchema.create.order, datanucleus.generateSchema.drop.order
datanucleus-rdbms-361 - Multitenancy calls could pass in ExecutionContext to allow for overrides
datanucleus-rdbms-362 - Add marker for when an SQLTypeInfo is DN added (artificial) or JDBC provided
javax.persistence-13 - jpa persistence xsd mixed version
datanucleus-api-jdo-108 - Update MultiTenant "disable" handling
datanucleus-api-jpa-119 - Update MultiTenant "disable" handling
datanucleus-api-jpa-120 - Remove validators for javax.persistence.schema-generation.create-source, javax.persistence.schema-generation.drop-source
datanucleus-rdbms-363 - Native Sequences with MS SQL Server throws Exception
datanucleus-rdbms-364 - Fixes support for Sequences for SqlServer
27 January 2021 : Version 5.2.7 includes the following changes
datanucleus-core-363 - GenerateSchema mode leaves autoCreate/validate turned on
datanucleus-api-jdo-106 - Memory leak when the ResultSet be closed
datanucleus-rdbms-360 - Synchronizing use of WeakHashMap in AbstractIdentifierFactory
5 November 2020 : Version 5.2.6 includes the following changes
datanucleus-core-357 - Support JDOQL / JPQL numeric query literals of type Float, Double, BigDecimal, Integer, Long, BigDecimal
datanucleus-core-358 - Complete multitenancy implementation
datanucleus-core-361 - Allow override of java-type using priority attribute
datanucleus-rdbms-355 - Rename DatastoreAdapter lock options to be consistently named to avoid confusion
datanucleus-rdbms-356 - Query of Array.contains is inflexible for comparable types
datanucleus-rdbms-357 - Support datanucleus-core issue 358, multitenancy read ids
datanucleus-rdbms-358 - Allow PostgreSQL (11+) to be used for store procs
datanucleus-rdbms-353 - Duplicated ID happen on MS SQL Server If run multiple JVM instance.
28th July 2020 : Version 5.2.5 includes the following changes
datanucleus-core-347 - Upgrade ASM to v8.0.1
datanucleus-core-348 - Make "datanucleus.sql.syntaxChecks" specifable via property, and rename to "datanucleus.query.sql.syntaxChecks" for consistency
datanucleus-core-349 - Make "datanucleus.jdoql.strict" specifable via property, and rename to "datanucleus.query.jdoql.strict" for consistency
datanucleus-core-350 - Make "datanucleus.jpql.strict" specifable via property, and rename to "datanucleus.query.jpql.strict" for consistency
datanucleus-core-352 - Support version field of type "short" or "java.lang.Short"
datanucleus-core-353 - Support version field of type "java.sql.Date", "java.sql.Time", "java.util.Date", "java.util.Calendar"
datanucleus-core-354 - Support version fields of type "java.time.Instant"
datanucleus-api-jpa-118 - JPA Column length/precision/scale : only use if not set to defaults
datanucleus-rdbms-349 - Upgrade repackaged DBCP2/Pool2 to v2.7.0/v2.8.0 respectively
datanucleus-rdbms-350 - Drop support for Proxool connection pooling
datanucleus-rdbms-351 - Support @CreateTimestamp/@UpdateTimestamp using field of type java.time.Instant
datanucleus-rdbms-352 - Set MySQLAdaptor DATETIME_STORES_MILLISECS based on version of JDBC
Jun 17th 2020 : Version 5.2.4 includes the following changes
datanucleus-core-325 - Fuller support for surrogate CreateUser, CreateTimestamp, UpdateUser, UpdateTimestamp
datanucleus-core-326 - Upgrade ASM to v7.3.1
datanucleus-core-339 - Use Java8 Base64 instead of built-in now that it is in a supported JDK
datanucleus-core-346 - Change "default" java.management type to "platform"
datanucleus-api-jdo-104 - Fuller support for surrogate CreateUser, CreateTimestamp, UpdateUser, UpdateTimestamp
datanucleus-api-jpa-114 - Fuller support for surrogate CreateUser, CreateTimestamp, UpdateUser, UpdateTimestamp
datanucleus-api-jpa-116 - Fallback to using column "length" when specified and not of String type
datanucleus-excel-21 - Use Java8 Base64 instead of built-in now that it is in a supported JDK
datanucleus-json-15 - Use Java8 Base64 instead of built-in now that it is in a supported JDK
datanucleus-odf-18 - Use Java8 Base64 instead of built-in now that it is in a supported JDK
datanucleus-rdbms-333 - Fuller support for surrogate CreateUser, CreateTimestamp, UpdateUser, UpdateTimestamp
datanucleus-rdbms-334 - Recent MariaDB JDBC drivers identify the datastore as "mariadb", so map adaptor likewise
datanucleus-rdbms-335 - OracleAdapter should not use NUMERIC SQL type, and should support XMLTYPE
datanucleus-rdbms-340 - Support specification of specific values in CHECK constraint on field (column) for integer/String fields
datanucleus-rdbms-341 - Oracle : support VARBINARY and RAW sql-type for byte[]/Serializable types
datanucleus-rdbms-342 - Allow query comparison with binary literal
datanucleus-rdbms-343 - Rework handling of UUIDMapping in queries so that doesn’t just map on to StringXXX
datanucleus-rdbms-346 - Oracle : cater for insert when using v12+ and just an IDENTITY column
datanucleus-rdbms-347 - Support alternate method of retrieving generated keys using column names
datanucleus-rdbms-348 - Use reflection and avoid compile requirement of Oracle JDBC driver⇐ v10 in classpath
datanucleus-core-342 - OffsetTimeLongConverter is broken because OffsetTime.from(LocalTime) always throws
datanucleus-api-jpa-115 - @SqlType is not assigned to its handler
datanucleus-rdbms-234 - PostgreSQL : Exception thrown while persisting null in bytea column
datanucleus-rdbms-336 - PostgreSQL: failure to getObjectById() etc when connected to hot standby due to transaction isolation set to "serializable"
datanucleus-rdbms-338 - PostgreSQL : CLOB being a TEXT not really being a CLOB
Jan 27th 2020 : Version 5.2.3 includes the following changes
javax-jdo-17 - Support JDO-778: Adding overloaded methods to JDOQLTypedQuery to create a correlated subquery
javax-jdo-18 - Support JDO-778: Remove two overloaded methods to JDOQLTypedQuery to create a correlated subquery
datanucleus-api-jdo-102 - Support JDO-778: Adding overloaded methods to JDOQLTypedQuery to create a correlated subquery
datanucleus-api-jdo-103 - Support JDO-778: Remove two overloaded methods to JDOQLTypedQuery to create a correlated subquery
datanucleus-rdbms-324 - Java byte-array is mapped to "varbinary(1)" in ms sqlserver
datanucleus-rdbms-330 - Allow DDL column precision to have optional length semantic
datanucleus-rdbms-331 - Support processing of REF_CURSOR parameters in stored procs
Oct 1st 2019 : Version 5.2.2 includes the following changes
datanucleus-core-322 - Support for Java 13 and Java 14 bytecode
datanucleus-api-jpa-112 - Some JPA Query supportedHints are missing currently
datanucleus-cassandra-36 - Support load balancing policy
datanucleus-core-321 - Multitenancy query cache problem
datanucleus-api-jdo-99 - Missing isConfigurable() when entering the synchronized block
datanucleus-api-jpa-113 - JPADataStoreCache : contains/evict don’t handle single field case
Apr 20th 2019 : Version 5.2.1 includes the following changes
datanucleus-core-319 - JDOQL : Change default compilation when result class and no result
datanucleus-rdbms-317 - MapEntrySetStore : store normal and locked iterator SQL rather than SelectStatement
datanucleus-rdbms-319 - Oracle 12 supports identity columns
datanucleus-rdbms-320 - Change "AutoIncrement" to "Identity" in DatastoreAdapter to better match generation strategies
datanucleus-api-jdo-97 - JDOQLTypedQuery executeResultList(Class) and executeResultUnique(Class) should allow result class but no result
datanucleus-api-jdo-98 - JDOQLTyped : when result class defined but no result, return "DISTINCT this"
datanucleus-rdbms-321 - NPE in UUIDMapping when using customValueStrategy
Mar 1st 2019 : Version 5.2 RELEASE includes the following changes
datanucleus-core-317 - Change ExecutionContextImpl to use LinkedHashSet instead of ArrayList
datanucleus-api-jdo-95 - Update generics of JDOQLTypedQueryImpl method to be "? extends Number" instead of "?"
datanucleus-api-jdo-96 - Support further JDOQLTyped query parameter methods in javax.jdo
datanucleus-rdbms-311 - Update to match core #317 change to FlushProcess API
datanucleus-rdbms-315 - Make handling of column default consistent
datanucleus-maven-plugin-12 - Java 9/10 compatibility to avoid using add-modules
datanucleus-core-318 - Process dynamic fetch groups using correct field name
datanucleus-rdbms-313 - SQLServer LOCK options for join should be after table name and before ON
datanucleus-rdbms-314 - Pass FetchPlan through query mechanism so that it is used for complete process
Jan 2nd 2019 : Version 5.2 Milestone 3 includes the following changes
datanucleus-core-314 - Support for Java 11 bytecode
datanucleus-core-315 - When loading fields from datastore, add on version field if not yet set
datanucleus-api-jdo-94 - JDOQLTypedQuery : cast to persistable subtypes needs to create QXXX expression but currently just creates PersistableExpressionImpl
datanucleus-rdbms-308 - Change query extensions "include-soft-deletes" and "dont-restrict-discriminator" to DataNucleus namespace
datanucleus-mongodb-52 - Support nested embedded collection
datanucleus-mongodb-53 - Support for specifying the MongoDB replica set
None
Nov 6th 2018 : Version 5.2 Milestone 2 includes the following changes
datanucleus-core-308 - Navigation to find VersionMetaData doesnt allow for multiple superclasses stored in same table
datanucleus-core-311 - Upgrade ASM to v6.2.1
datanucleus-core-312 - CachedPC should implement Comparable<CachedPC> so we can cache SortedMap/SortedSet fields
datanucleus-core-313 - DataFederation : detect the candidate class of a query and route to the appropriate StoreManager
datanucleus-api-jdo-84 - JDOQLTypedQuery : support StringExpression.startsWith(String, int)
datanucleus-api-jdo-85 - JDOQLTypedQuery : support OrderExpression.nullsFirst()/nullsLast()
datanucleus-api-jdo-86 - JDOQLTypedQuery : Support IfElseExpression
datanucleus-api-jdo-87 - JDOQLTypedQuery : Add vendor extension support for geospatial types
datanucleus-api-jdo-88 - JDOQLTypedQuery : Add vendor extension support for geospatial helper
datanucleus-api-jdo-89 - JDOQLTypedQuery : Support NumericExpression avgDistinct/sumDistinct
datanucleus-api-jdo-92 - JDOQLTypedQuery : Add Expression.as() to specify alias for result clauses
datanucleus-rdbms-305 - StringTrim2Method omits some checks
datanucleus-jdo-query-13 - Add support for primary geospatial expressions (vendor extension)
datanucleus-geospatial-9 - Support {Geometry}.toBinary()
datanucleus-geospatial-10 - Support all JDOQL object-based methods for Postgis types
datanucleus-geospatial-13 - Support invocation of method bboxTest on Geometry objects
datanucleus-api-jdo-90 - JDOQLTypedQuery : Creation of PrimaryExpression can omit the left expression
datanucleus-api-jdo-91 - JDOQLTypedQuery : distinct result setting should be passed to the generic compilation
datanucleus-api-jpa-110 - Population of Tuple.toArray is incorrect. Missing an "i++"
Sep 1st 2018 : Version 5.2 Milestone 1 includes the following changes
datanucleus-core-261 - Enhancement contract : clean up "dnFieldTypes", "dnFieldFlags", and EnhancementHelper usage
datanucleus-core-264 - Enhancement contract : consider dropping checkAuthorizedStateManager, registerAuthorizedStateManagerClass
datanucleus-core-294 - Cache of array with a null element isn’t handled
datanucleus-core-295 - XML validation sometimes comes up with "Attribute 'version' has a fixed value of '1.0'"
datanucleus-core-296 - Load up TypeConverters when enhancing, since a converter can make a type persistable
datanucleus-core-297 - Throw exception if user selects a value generation strategy that is not supported by the datastore
datanucleus-core-298 - Enhancement contract : clone() method should be enhanced to null dnStateManager/dnFlags
datanucleus-core-303 - L1/L2 cache has strings in code, should be parametrised
datanucleus-api-jdo-72 - XML validation sometimes comes up with "Attribute 'version' has a fixed value of '1.0'" for package.jdo, package.orm
datanucleus-api-jdo-73 - JDOQLTyped query doesn’t use parent query, but should
datanucleus-api-jdo-75 - JDOQLTyped : Handle situation of result being candidate
datanucleus-api-jdo-76 - JDOQLTyped : Implement StringExpression.add(String)
datanucleus-api-jdo-77 - JDOQLTyped : Support Expression.cast
datanucleus-api-jdo-81 - JDOQLTyped : Implement OptionalExpression.add(Expression)
datanucleus-api-jdo-82 - JDOQLTyped : Support MapExpression.get() methods
datanucleus-api-jdo-83 - JDOQLTyped : Support Expression.instanceof()
datanucleus-api-jpa-106 - XML validation sometimes comes up with "Attribute 'version' has a fixed value of '1.0'" for orm.xml
datanucleus-api-jpa-109 - Support cos/sin/tan/acos/asin/atan/ceil/floor/log/exp/round via CriteriaBuilder
datanucleus-rdbms-259 - Rename org.datanucleus.store.rdbms.mapping.datastore.DatastoreMapping to ColumnMapping
datanucleus-rdbms-286 - Rename extension "datastore_mapping" to "column_mapping"
datanucleus-rdbms-287 - Refactor "org.datanucleus.store.rdbms.mapping.datastore" to "org.datanucleus.store.rdbms.mapping.column"
datanucleus-rdbms-290 - PostgreSQL adapter : remove block restricting the available (SQL) types
datanucleus-rdbms-291 - Provide a mechanism for a DatastoreAdapter to set the default SQL type for a JDBC type
datanucleus-rdbms-292 - Support sequences on MariaDB 10.3+
datanucleus-rdbms-293 - When fetching an object with a version, set the version before the other fields
datanucleus-rdbms-295 - Allow query to override "maxFetchDepth" via query extension
datanucleus-rdbms-296 - Some queries with implicit 1-1 joins can result in joining again for the same thing in the SELECT
datanucleus-rdbms-297 - Support ROUND function
datanucleus-rdbms-299 - "include-soft-deletes" extension for JPQL is not implemented
datanucleus-rdbms-300 - Allow omission of WHERE clause restriction on possible discriminator values
datanucleus-rdbms-301 - Remove getNucleusConnection override since does the same as the superclass
datanucleus-rdbms-302 - HikariCP : allow setting of idleTimeout, and prohibit setting of connectionTestQuery
datanucleus-rdbms-303 - DBCP2 : add ability to set validationTimeout
datanucleus-mongodb-50 - Build against Mongo Java Driver v3.8.0
datanucleus-jodatime-3 - Support rdbms-259
datanucleus-geospatial-8 - Support rdbms-259
datanucleus-scala-6 - Support rdbms-259
datanucleus-core-304 - When updating L2 cached object, make sure that any versioned field is also updated
datanucleus-api-jpa-105 - Support fix for jpa_spec issue 108 (DN javax.persistence 2.2.1)
datanucleus-api-jpa-107 - MetaModel SingularAttribute.isOptional can give misleading info
datanucleus-rdbms-285 - Modifications to bulk exists logic in 5.1.10 cause it to try when using Optional
datanucleus-rdbms-288 - Concurrency issue in JoinMapStore
datanucleus-rdbms-298 - Too long select item alias is shortened only for select item even when used in order by