Apache Cayenne Release Notes
============================

For the latest information visit project web site:
https://cayenne.apache.org/

To browse individual bug reports check out project issue tracker:
https://issues.apache.org/jira/browse/CAY

----------------------------------
Release: 5.0-M1
Date: Aug 28, 2024
----------------------------------
Changes/New Features:

CAY-2378 Switch usage of SelectQuery to ObjectSelect internally
CAY-2498 Rename packages to prevent crossing package names
CAY-2597 case-when implementation
CAY-2715 Support ANY and ALL expressions for subqueries
CAY-2737 Cayenne 5.0: cleanup deprecated code
CAY-2741 Cleanup TransactionDescriptor and deprecate DefaultTransactionDescriptor
CAY-2742 Switch minimum required Java version to 11
CAY-2744 Remove ROP support
CAY-2746 Cleanup root pom.xml
CAY-2747 Update project XML version to 11
CAY-2751 Simplify DataNode configuration
CAY-2752 Rename queryTemplate to dataMapTemplate in the cgen config
CAY-2753 Remove VPP support in the ant task
CAY-2754 Add SELF property to the cgen templates
CAY-2756 Modeler: simplify cgen UI
CAY-2757 Modeler: Create custom templates from defaults
CAY-2758 Refactoring code for a extended TemplateType class
CAY-2759 Add utility methods to the SELF property
CAY-2760 ObjectContext.userProperties need a way to clear properties
CAY-2761 Modeler: Editor for the cgen templates
CAY-2766 Modeler: Improving the work with velocity templates for class generation
CAY-2767 Modeler: upgrade deprecated code in custom components
CAY-2771 Switch to GitHub actions
CAY-2773 Switch master to "5.0"
CAY-2776 Upgrade Gradle to 7.6
CAY-2780 Modeler: Multiple configurations for classes generation
CAY-2781 Enable 'Create PK properties' by default in the cgen configuration
CAY-2784 Remove 'Use Java primitive types' option from dbimport
CAY-2785 Modeler: improve folder selection for cgen
CAY-2787 Modeler: Ability to sort DB Import rules
CAY-2788 DbImport: Add fallback option for the batch attribute loader
CAY-2795 Add unit tests for the Json type
CAY-2802 Upgrade Gradle to 7.6.1
CAY-2803 Test infrastructure: declarative custom DI modules in ServerCase
CAY-2805 Stop calling exp parser internally
CAY-2807 EntityProperty.inId(..) / ninId(..) - disambiguate method parameters
CAY-2814 Select query iterator() and batchIterator() methods return incorrect results
CAY-2816 (NOT) EXIST usability - provide simple expression syntax
CAY-2817 Pagination flow refactoring
CAY-2818 JDK 21 support
CAY-2819 DataContext.performIteratedQuery() method should be unified with iterator() method
CAY-2820 Remove `server` from the components naming
CAY-2821 Change development versioning schema
CAY-2822 Rename `cayenne-server` module to `cayenne`
CAY-2823 Merge `ServerRuntime` back to `CayenneRuntime` and deprecate it
CAY-2824 Rename CayenneServerModuleProvider to CayenneRuntimeModuleProvider
CAY-2825 Rename package `o.a.c.configuration.server` to `o.a.c.configuration.runtime`
CAY-2826 Rename `ServerModule` to `CoreModule`
CAY-2828 Rename values in `org.apache.cayenne.configuration.Constants`
CAY-2829 Merge `BaseContext` with `DataContext` and deprecate it
CAY-2830 Cleanup `DataContext` code
CAY-2831 Upgrade Gradle to 8.5
CAY-2833 Unify code related to the Cayenne model paths processing
CAY-2834 v11 upgrade handler should update XMLPoolingDataSourceFactory package
CAY-2835 Custom aggregate functions
CAY-2837 Deprecate TraversalHelper and move no-op implementations to TraversalHandler
CAY-2843 Use an IN clause for single field disjoint by ID prefetches
CAY-2845 Deprecate DataObject in favour of Persistent
CAY-2846 Modeler: Allow to disable some validation rules in the project
CAY-2849 Switch documentation to `hugo-asciidoctorj-extension`
CAY-2856 Upgrade Gradle to 8.8
CAY-2857 Java 22 support
CAY-2858 Redesign Collection and Map Property API
CAY-2862 Cleanup and upgrade Maven plugins dependencies
CAY-2865 Upgrade test dependencies
CAY-2867 Tweak GraphBasedDbRowOpSorter logic to allow related updates
CAY-2870 Modeler: Upgrade CayenneDataObject to GenericPersistentObject

Bug Fixes:

CAY-2552 ColumnQuery with flattened attributes bug
CAY-2621 Modeler: project is dirty after a no-change db import
CAY-2667 Fix Issues with Generic Vertical Inheritance
CAY-2732 Exception when creating ObjEntity from a DbEntity
CAY-2748 Mutating the list returned from the local query cache changes the cache
CAY-2755 Modeler: Entities are not sorted by name in the class generation view
CAY-2762 Modeler: Difference in toolbars colors on OSX
CAY-2763 Split expressions do not work with flattened relationships
CAY-2764 Split expressions do not work with DB relationships
CAY-2765 dbimport: check excluded catalogs and schemas for the SQLServer
CAY-2769 Modeler: 'rootPath' attribute is missing
CAY-2772 Bootique-style module "extenders" for smoother configuration
CAY-2774 Overriding service ordering in DI List causes DIRuntimeException
CAY-2777 Reverse relationship is not set with single table inheritance
CAY-2782 Modeler: save button becomes active on DataMap comment field focus
CAY-2783 DbEntity to ObjEntity synchronization should check mandatory flag for primitive java types
CAY-2786 Modeler: field outputDir work incorrect
CAY-2789 MalformedJsonException thrown when reading manually edited JSON data in Postgres
CAY-2790 EOModel import: NPE importing EOFetchSpecification
CAY-2792 Fix Insertion Order For Reflexive DataObjects
CAY-2794 Fix Incorrect JavaType for Vertical-Inheritance Attributes
CAY-2796 Cayenne custom json formatter produces invalid json
CAY-2800 Modeler saves map.xml files with schema ordering error
CAY-2801 Incorrect equals() implementation in IdGenerationMarker could cause data missing in the commit
CAY-2804 LocalTimeValueType potential loss of precision
CAY-2806 Incorrect processing of unicode escape syntax in JSON
CAY-2809 Cayenne Expression grammar doesn't allow custom function as an argument for string functions
CAY-2810 Can't use custom operator expression with aggregate functions
CAY-2811 Incorrect SQL building using ColumnQuery with ASTScalar
CAY-2813 Regression: Constants.CI_PROPERTY flag is no longer working for MySQL
CAY-2815 Incorrect translation of aliased expression
CAY-2827 Saved data-source XML data doesn't correspond to the XSD schema
CAY-2838 Vertical Inheritance: Problem setting db attribute to null via flattened path
CAY-2840 Vertical Inheritance: Missing subclass attributes with joint prefetch
CAY-2841 Multi column ColumnSelect with SHARED_CACHE fails after 1st select
CAY-2844 Joint prefetch doesn't use ObjEntity qualifier
CAY-2842 Prevent duplicate select columns when using distinct with order by
CAY-2847 Improve duplicate select column detection when using order by
CAY-2848 Vertical Inheritance: Updating one-to-many with inverse nullifies other columns
CAY-2850 Query using Clob comparison with empty String fails
CAY-2851 Replace Existing OneToOne From New Object
CAY-2853 Incorrect deletion of entities from flattened attributes
CAY-2854 Improve delete prevention detection of flattened attribute row
CAY-2866 DefaultDataDomainFlushAction breaks on circular relationship update
CAY-2868 Regression: DefaultDbRowOpSorter shouldn't sort update operations
CAY-2869 Upgrade handler v11 removes db import configuration
