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

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

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

----------------------------------
Release: 3.1.3
Date: 11 July 2018
----------------------------------

Bug Fixes Since 3.1.2:

CAY-2389 DbEntity qualifier with DbPath expression translates into wrong SQL
CAY-2436 NPE in CayenneRuntimeException constructor

----------------------------------
Release: 3.1.2
Date: 20 November 2017
----------------------------------

Bug Fixes Since 3.1.1:

CAY-1969 Malformed EJBQL Yields NPE
CAY-2084 ObjectIdQuery - no cache access polymorphism
CAY-2101 DataContext.currentSnapshot() doesn't set snapshot entity name
CAY-2137 When generating SQL from EJBQL, use "AND" to separate multiple join conditions
CAY-2175 AliasName used in EJBQLQuery is not working if it contains mixed case
CAY-2226 PK generation for Frontbase: PK cache size must be ignored
CAY-2276 PrePersist listener registered as PostPersist in LifecycleCallbackRegistry.addListener(Class<?>, LifecycleListener)

----------------------------------
Release: 3.1.1
Date: 16 May 2016
----------------------------------
Changes/New Features Since 3.1

CAY-1862 MySQL - allow specifying a length for TIMESTAMP and TIME columns
CAY-2042 Remove an arbitrary limitation on 1000 runtime DbRelationships

Bug Fixes Since 3.1:

CAY-1863 Make determining whether a particular database type supports length adapter-specific not universal
CAY-1964 Fix convertAdditionalDataMaps() in CayenneGeneratorMojo.java
CAY-1973 error while generating classes
CAY-1978 ESCAPE clause should be included in LIKE parenthesis
CAY-1979 Prefetches on Many-to-Many Relationships with Longvarchar
CAY-2047 Relationship mapping with target inheritance
CAY-2049 Changing the Relationship name in ObjRelationship Inspector has no effect
CAY-2066 Memory leak in ExtendedTypeMap for inner classes

----------------------------------
Release: 3.1-final
Date: 29 September 2014
----------------------------------
Changes/New Features Since 3.1RC1:

CAY-1952 Undeprecate ObjectContext.deleteObject(..)

Bug Fixes Since 3.1RC1:

CAY-1905 Multi-step prefetching NPE : 1..N..1 with absent N and root with no qualifier
CAY-1928 Second INNER join generated for OUTER flattended relationships in disjoint prefetches

----------------------------------
Release: 3.1RC1
Date: 16 February 2014
----------------------------------
Changes/New Features Since 3.1B2:

CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns
CAY-1822 Make DataMap editor fields wider 

Bug Fixes Since 3.1B2:

CAY-1736 IllegalArgumentException when synchronizing entities in the Modeler
CAY-1794 Duplicate attributes in discriminator columns of PersistentDescriptor
CAY-1797 NPE importing DataMap
CAY-1799 ROP: Server can't deserialize LIKE expression with pattern already compiled
CAY-1804 Serialisation of long[] type was not working correctly. 
CAY-1806 Error importing eomodel 
CAY-1809 Remove 'final' modifier from Cayenne, HessianUtil, PropertyComparator, ConversionUtil, and LinkedDeque
CAY-1818 Fix copyright year in the Modeler "about" panel
CAY-1827 EhCache region corresponding to a cache group loses its settings after 'removeGroup'
CAY-1845 Upgrade javadoc plugin to 2.9.1 
CAY-1854 driver.xsd schema shouldn't be in 3.1 - it is no longer applicable 
CAY-1856 Expression.expWithParameters does not work when parameters are placed in the inline collection
CAY-1866 Change in General Modeler Preferences reverts old settings to default value
CAY-1868 Select contention with multiple contexts 
CAY-1874 DB2 Procedure action ignores the first result set
CAY-1880 objectStore snapshots never cleared from RefreshQuery when "use shared cache" unchecked
CAY-1881 CayenneModeler (Mac version) doesn't work with Java 7
CAY-1885 Null value in subclass's field.

----------------------------------
Release: 3.1B2
Date: 18 February 2013
----------------------------------
Changes/New Features Since 3.1B1:

CAY-1737 ObjectContexts listening to DataChannel events must be non-blocking
CAY-1753 remove light-superclass.vm class template
CAY-1754 Modeler suggested URL for SQLServer should start with 'jdbc:sqlserver:' instead of 'jdbc:microsoft:sqlserver:'

Bug Fixes Since 3.1B1:

CAY-957 Deadlock in nested contexts
CAY-1689 [PATCH] LOB*QueryBuilders do not check isQuotingSQLIdentifiers
CAY-1701 Modeler cannot undo pasting of obj (db) entity
CAY-1708 Modeler error when pasting datamap with EJBQL query
CAY-1713 Inconsistent property name: "cayenne.rop.service.timeout"
CAY-1714 ROP: Cayenne tries to build a query for non committed object when using more than 2 nested contexts 
CAY-1715 Passing parameters to mapped EJBQL queries
CAY-1721 Writing blobs fails (Oracle)
CAY-1725 NullPointerException from call to removeToManyTarget
CAY-1727 Modeler thinks entity is using inheritance when it doesn't
CAY-1729 PersistentDescriptor must have predictable property iteration order
CAY-1735 Serializable IncrementalFaultList
CAY-1738 Tutorial cayenne-rop-server should be packaged as a war
CAY-1739 Cayenne ROP server resets session on every request if BASIC auth is used
CAY-1741 Serializable DataObjectBaseProperty
CAY-1742 CAY-1742 ObjRelationship inspector says "ObjAttribute Inspector"
CAY-1744 Unexpected read-only relationships in vertical inheritance mapping
CAY-1749 NPE on simple nested context commit
CAY-1755 FaultFailureException resolving relationships to UNIQUE non-PK columns
CAY-1757 ROP: Faulting entity relationship resets uncommitted modifications made to its reverse relationship 
CAY-1774 EhCacheQueryCache.get(QueryMetadata, QueryCacheEntryFactory) returns null if EhCache instance for group is not present
CAY-1783 JdbcPkGenerator.longPkFromDatabase would throw an exception if the PK value exceeds a range of Java int

----------------------------------
Release: 3.1B1
Date: 10 June 2012
----------------------------------
Changes/New Features Since 3.1M3:

CAY-1459 Modeler: DbEntities from other DataMaps under same domain are not displayed
CAY-1603 Improve custom ExtendedType registration API
CAY-1607 [PATCH] add pluralize method to StringUtils for use in templates
CAY-1608 Implement constructor injection support for DefaultAdhocObjectFactory
CAY-1616 Remove internal dependencies on deprecated ObjectContext.localObject
CAY-1618 Create database adapters instances with proper injection
CAY-1629 [PATCH] Can't add custom Hessian serializers to the client
CAY-1630 [PATCH] On OptimisticLockException, add method to return the object that caused the failure
CAY-1637 [PATCH] DataContextFactory is cumbersome to customize
CAY-1638 [PATCH] Can't disable validation for CayenneContext
CAY-1639 cayenne-lifecycle: don't call String representation of ObjectId a UUID
CAY-1640 NullPointerException when saving
CAY-1642 [PATCH] add ability to customize connection "timeout" setting for ROP
CAY-1643 Updated Velocity templates to use static keys in setters/getters
CAY-1649 Use BOOLEAN data type on Derby. Require Derby version >= 10.7.1.1.
CAY-1650 [PATCH] Verify existence of tables if a default schema is specified
CAY-1651 ObjectContext.localObject - defer FaultFailureExceptions on temporary IDs
CAY-1653 Improving DefaultEventManager concurrency - non-bocking DispatchQueue
CAY-1654 Can't switch DataSource Factory on certain projects
CAY-1656 cayenne generate extra data in xml model when change DataNode factory
CAY-1657 Expression: in-memory comparison requires persistent to be in the same context as exp parameters to match
CAY-1659 PATCH: Ingres limit query support
CAY-1660 Ingres primary key generator doesn't work correctly with Ingres 10
CAY-1662 @Auditable and @AuditableChild annotations should support 'ignoredProperties' parameter and exclude changes to runtime relationships
CAY-1663 @CacheGroups annotation should allow an empty list of cache groups
CAY-1665 Consistent and concise property names aggregated in one place 
CAY-1666 Fix problem with tests on ingres db
CAY-1667 Expression parser performance optimization
CAY-1668 Memory Exhaustion Problem with Deserialization of ObjectContext
CAY-1669 RuntimeProperties use of System properties becomes a contention point when creating query translators 
CAY-1670 Non-blocking DataRowStore
CAY-1672 [PATCH] SQLException thrown by processSchemaUpdate in BaseSchemaUpdateStrategy is not thrown in sub classes
CAY-1674 Error generating classes with invalid path in the query qualifier
CAY-1675 [PATCH] add .first(List<T>) method to Expression to enhance in-memory filtering
CAY-1679 A notion of default node
CAY-1680 Get rid of shared locks in DataDomain metadata lookups
CAY-1681 Third prefetch kind - DISJOINT_BY_ID
CAY-1684 Upgrade commons-collections dependency to 3.2.1
CAY-1686 StringIdQuery - a query providing an optimized fetch for objects based on 1..N String IDs. 
CAY-1688 [PATCH] rename DataDomain.getNode to getDataNode
CAY-1693 Initial support for bitwise operators in Expression and SelectQuery - MySQL
CAY-1698 ObjectIdRelationship support for AuditableChild
CAY-1700 Split long DISJOINT_BY_ID prefetch query on several smaller queries
CAY-1705 Cayenne plugin compatibility with M2E
CAY-1706 Build support on JDK 1.7
CAY-1658 Add sort ordering enhancements to SelectQuery

Bug Fixes Since 3.1M3:

CAY-1477 Modeler: Better validation for erroneous horizontal inheritance mapping
CAY-1513 Deadlock in PoolManager
CAY-1623 [PATCH] PersistentObjectList.setValue does not work
CAY-1624 [PATCH] PersistentObjectHolder throws NPE is object is transient - not in an ObjectContext
CAY-1627 CayenneModeler: collection types for to-many relationships are not saved
CAY-1628 ClassCastException when using java.util.Set or java.util.Map as collection type for to-many relationship
CAY-1631 Oracle - passing blobs as stored procedure parameters
CAY-1632 CayenneModeler: flattened relationship paths are not fully displayed
CAY-1634 [PATCH] In ChildDiffLoader.nodePropertyChanged the oldValue is not passed to writeProperty
CAY-1648 [PATCH] ValidationException throws format exception if error message contains percent sign
CAY-1694 When importing an EOModel, the DataNode gets lost
CAY-1696 Undo/Redo stop working after deleting several project items at once
CAY-1697 Error on Save after importing database
CAY-1701 Modeler cannot undo pasting of obj (db) entity
CAY-1702 Excessive Selection action is generated when selecting datanode
CAY-1703 NPE on selecting default datasource value

----------------------------------
Release: 3.1 M3
Date: 26 September 2011
----------------------------------
Changes/New Features Since 3.1M2:

CAY-943 Support multiple cayenne.xml files in the project
CAY-1210 mysql does not use index for case insensitive searches
CAY-1266 Joint prefetches with fetch limit and offset do not work on Oracle
CAY-1461 CayenneModeler: remove ScopeMVC dependency - ObjRelationshipInfoDialog
CAY-1556 Add path construction feature to make constructing paths from constants easier for queries and orderings
CAY-1525 CharType: don't trim spaces on the left
CAY-1537 Implement ObjectContext local caches as NestedQueryCache over the shared cache
CAY-1544 Remove jdk1.6 module from Cayenne sources
CAY-1545 cayenne-lifecycle Referenceable handler refactoring
CAY-1547 cayenne-lifecycle: support for setting UuidRelationships
CAY-1549 Migrate BatchQueryBuilderFactory to DI
CAY-1553 cayenne-lifecycle: @SortWeight annotation 
CAY-1573 QueryLogger to DI JdbcEventLogger migration
CAY-1584 Improve Cayenne modeler re-ordering named query in the cayenne map xml
CAY-1586 New extension point: a strategy for retaining objects in the ObjectStore
CAY-1590 DDL generation without a live datasource
CAY-1594 DI extension point: turning on/off cross-ObjectContext synchronization
CAY-1595 EHCache implementation of Provider<QueryCache>
CAY-1598 Per DataMap listeners are called for all entities in DataDomain
CAY-1599 Annotation-based global listeners registration
CAY-1605 Switch Cayenne to use unified Maven repository
CAY-1606 Change CayenneModeler new object naming strategy
CAY-1610 ObjectContext API to use varargs
CAY-1611 ObjectContext API improvement - better 'localObect' method

Bug Fixes Since 3.1M2:

CAY-1469 Modeler: dbRelationships renaming problem
CAY-1526 Preferences: java.lang.IllegalArgumentException: Key too long
CAY-1539 Incorrect offset handling on some queries against database with supported LIMIT/OFFSET clauses
CAY-1546 cayenne-lifecycle: UuidBatchFault concurrency issues
CAY-1555 Unpublished dependencies of Maven plugins
CAY-1575 Error generating Embeddable classes in Cayenne Modeler
CAY-1577 SQL queries for LIKE expressions with escape character generated with syntax errors
CAY-1581 Not-Escaping <> during serialization to *.map.xml
CAY-1583 context.getObjectStore() returning null causing NullpointerException in DataMergeHandler
CAY-1585 SelectQuery automatic cache key needs FetchOffset
CAY-1591 CayenneModeler: keyboard shortcuts causing havoc in SQLTemplate SQL editor
CAY-1596 setFetchOffset & setFetchLimit issue under SQL Server 2008 R2 64Bit
CAY-1602 OSCache clustering should be shared per JVM - @CacheGroup annotation causes creation of too many cluster listeners

----------------------------------
Release: 3.1 M2
Date: 8 March 2011
----------------------------------
Changes/New Features Since 3.1M1:

CAY-1445 Initialize QueryCache via dependency injection
CAY-1508 Support for DataChannel filters
CAY-1509 Lifecycle event annotations support
CAY-1532 Import cayenne-lifecycle from sandbox
CAY-1533 Deprecate org.apache.cayenne.xml
CAY-1534 cayenne-lifecycle: implement AuditableFilter
CAY-1536 Expand deserialization context to provide Injector object instead of just a DataChannel.

Bug Fixes Since 3.1M1:

CAY-1511 Problem in db2: comparison operators are not supported on Clob object values.
CAY-1515 runtime relationships are not initialized
CAY-1516 CayenneModeler - DataMap deletion doesn't delete DataMap XML
CAY-1517 CayenneModeler - recent projects ordering is random
CAY-1519 Application deadlock trying to guess static constant fields
CAY-1528 Undo CAY-1213
CAY-1529 Cayenne should support enum types in qualifier statements/expression handling
CAY-1542 DI container is not shutting down Cayenne-managed connection pool

----------------------------------
Release: 3.1 M1
Date: 
----------------------------------
Changes/New Features Since 3.0:

CAY-952 Generate OUTER joins for flattened attributes in a SelectQuery
CAY-1213 Cayenne should support enum types in qualifier statements/expression handling
CAY-1251 Memorize user-selected column widths in preferences
CAY-1310 Remove everything deprecated in 3.0
CAY-1314 Migrate Modeler Preferences to Java Preferences API: migrate org.apache.cayenne.modeler.ModelerPreferences
CAY-1315 Formattable exceptions
CAY-1316 Deprecate DataObjectUtils and move its methods to new utility class org.apache.cayenne.Cayenne
CAY-1318 Cayenne configuration to support a single DataDomain
CAY-1319 Minimal DI container-based configuration to run Cayenne
CAY-1323 oracle.sql.TIMESTAMP in Result of query
CAY-1327 Migrate HSQLDB modeler preferences to Java preferences API
CAY-1329 DI-based cayenne-project module
CAY-1331 hessian upgrade stops rop
CAY-1336 Oracle specific type support (oracle.sql.*), add handlers.
CAY-1338 Move CayenneUserDir to the Modeler
CAY-1339 Remove org.apache.cayenne.project package from runtime
CAY-1340 Implement ConfigurationNode / ConfigurationNodeVisitor for the Cayenne project tree, including DataMap objects.
CAY-1342 Remove wocompat package from Cayenne core
CAY-1350 Implement memorized sorting of modeler columns
CAY-1374 Add parent dataMap property to Query interface
CAY-1393 Update velocity to 1.6.3
CAY-1394 DI-based replacement for JNDI hack
CAY-1414 Remove org.apache.cayenne.conf package
CAY-1415 Replace WebApplicationContextFilter with a DI-enabled filter
CAY-1419 File-based ResourceLocator to replace legacy FileConfiguration
CAY-1420 Migrate ROP server-side components to DI-based stack
CAY-1421 CayenneRuntime shutdown functionality
CAY-1422 Convert EventManager to an interface, make it injectable
CAY-1424 DI: support for named service injection and flexible map/list binding
CAY-1425 Remove Configuration sharedConfiguration singleton affecting DataContext deserialization, CayenneDataObject XML deserialization, DataContext static factory method. 
CAY-1433 Change #chunk behaviour to skipe only null arguments (don't skip 0 or false)
CAY-1438 refactoring EntityInheritanceTree lookups
CAY-1439 ClassDescriptor refactoring - replacing returned iterators with collections
CAY-1446 Remove DataContextFactory, replace it with DI-enabled ObjectContextFactory
CAY-1447 Switch ROP client to dependency injection
CAY-1474 Straightening CayenneModeler platform-specific builds
CAY-1475 Move cayenne-modeler module out of framework/ and out of the assembly binary
CAY-1476 Preferences exception on domain renaming
CAY-1479 EntitySorter refactoring: make it DI-based, internalize Ashowood lib
CAY-1486 Switch QueryLogger to a DI-managed object
CAY-1491 Add AUTO_INCREMENT primary key support for H2.
CAY-1497 Cayenne tools integration tests
CAY-1499 Deprecate DataContext.objectFromDataRow methods with unused "refresh" parameters.

Bug Fixes Since 3.0:

CAY-1304 Fix some failures in tests on SQLite
CAY-1328 SQLTemplate for DataMap is not working
CAY-1363 Postgress don't support notations float(a, b)
CAY-1364 SQL server don't support notations float(a, b)
CAY-1430 Problems with TINYINT type mapping

----------------------------------
Release: 3.0.3
Date: 
----------------------------------
Changes/New Features Since 3.0.2:

CAY-1584 Improve Cayenne modeler re-ordering named query in the cayenne map xml
CAY-1590 DDL generation without a live datasource
CAY-1605 Switch Cayenne to use unified Maven repository

Bug Fixes Since 3.0.2:

CAY-1469 Modeler: dbRelationships renaming problem
CAY-1513 Deadlock in PoolManager
CAY-1514 ClassCastException when EJQLQuery parameters is null.
CAY-1577 SQL queries for LIKE expressions with escape character generated with syntax errors
CAY-1581 Not-Escaping <> during serialization to *.map.xml
CAY-1583 context.getObjectStore() returning null causing NullpointerException in DataMergeHandler
CAY-1585 SelectQuery automatic cache key needs FetchOffset
CAY-1596 setFetchOffset & setFetchLimit issue under SQL Server 2008 R2 64Bit
CAY-1696 Undo/Redo stop working after deleting several project items at once
CAY-1721 Writing blobs fails (Oracle)

----------------------------------
Release: 3.0.2
Date: 21 June 2011
----------------------------------

Improvements Since 3.0.1

CAY-1500 MySQL JDBC Batching

Bug Fixes Since 3.0.1:

CAY-1403 Method "readNestedProperty" Should Resolve Through Iterative Invocations onto DataObject and Not Complete Within Cayenne.readNestedProperty
CAY-1432 java.io.NotSerializableException when using OSCache for query cache with prefetches and persitent cache. 
CAY-1444 NPE when persisting a newly instatiated object
CAY-1456 Investigate auto-increment columns on DB2 and switch the adapter policy to support them
CAY-1484 Flattened attribute queries are incorrectly generated
CAY-1485 Memory information for about dialog
CAY-1488 OutOfMemory when selecting "Remove Foreign Keys Mapped as Object Attributes"
CAY-1489 NPE using DataContext.objectFromDataRow for a nested context
CAY-1490 Maven cgen: all and datamap modes can not be activated
CAY-1496 Problem in derby: comparison operators are not supported on Clob object values.
CAY-1503 POST_LOAD is not called on prefetched objects
CAY-1505 Callbacks: POST_UPDATE is called on updated removed object, instead of POST_REMOVE
CAY-1506 Reserverd words mapping in WHERE clause
CAY-1518 cgen: duplicate callback methods
CAY-1557 Vertical inheritance is broken for subclasses with more than one flattened attribute
CAY-1561 Modeler trivial bug NullPointerException on remove
CAY-1567 BaseQueryMetadata.setPrefetches() causes a shared lock
CAY-1578 unicode character types on MS SQL 2008 server aren't recognized.

----------------------------------
Release: 3.0.1
Date: 
----------------------------------

Bug Fixes Since 3.0-final:

CAY-1354 Wrong Types mapping for selected values in Row Queries
CAY-1380 Support for Escaped LIKE Clauses in Expressions
CAY-1402 Ability to use Terminating "@size" in Nested Properties Against Collections
CAY-1416 ExpressionFactory.noMatchExp.toEJBQL() produces incorrect output
CAY-1417 EJBQL doesn't support null numeric parameters 
CAY-1426 EJBQL: ESCAPE fails after positional parameter
CAY-1452 EJBQL query scalar result is not supported on ROP client
CAY-1455 "NULL" JDBC type is shown for DbAttribute data types in the Modeler
CAY-1458 Document Vertical Inheritance
CAY-1467 Shut down EventManager in WebApplicationContextFilter.destroy()
CAY-1468 Commit performance degradation
CAY-1471 Create a source cayenne assembly
CAY-1473 Ensure DataRow version increment is atomic

----------------------------------
Release: 3.0 (final) 
Date: 
----------------------------------

(no changes since 3.0RC3)

----------------------------------
Release: 3.0 RC 3
Date: 5 April 2010
----------------------------------

Bug Fixes Since 3.0RC2:

CAY-1111 Expression.toEJBQL() support for single-column PK Persistent objects
CAY-1378 Error unsetting to-many DataObject property
	(this also reverts CAY-1009)
CAY-1379 Error resolving fault, no matching row exists in the database
CAY-1382 org.apache.cayenne.reflect.EnumConverter not handling null values for ExtendedEnumerations
CAY-1383 unneeded target in modeler attributes inspection 
CAY-1385 Modeler: error dialog doesn't show the correct version
CAY-1390 DataRowStore.processRemoteEvent processInvalidatedIDs typo
CAY-1396 merge: unneeded cast to SQLServerAdapter
CAY-1397 ROP: Missing the COMMIT state when deleting HOLLOW object
CAY-1400 lazyInitParentDomainName will become null when using Child Context
CAY-1401 Cache group removed from modeler query
CAY-1404 ClassCastException during ObjectDetachOperation
CAY-1405 Exception when attempting to "Infer Relationships"
CAY-1409 Pkgenerator is accessed needlessly for join tables with own database generated PK

----------------------------------
Release: 3.0 RC 2
Date: 5 February 2010
----------------------------------

Changes/New Features Since 3.0RC1:

CAY-1069 EJBQL: support paths across flattened relationships
CAY-1216 Improve the Remote-Object-Persistence-Tutorial for 3.0
CAY-1326 Document Cayenne Embeddables Feature
CAY-1352 in "code generation" dialog add generation embeddables
CAY-1366 EJBQL: Support for fetch joins

Bug Fixes Since 3.0RC1:
CAY-1298 String no longer works in query when column type is Integer
CAY-1313 EJBQL: Implement support for relationship-ending paths in WHERE clause
CAY-1349 SelectQuery 'fetchSize' setting is not propagated to disjoint prefetches
CAY-1351 EntityResolver.getEmbeddable(...) always returns null
CAY-1353 warning "attribute.name" contains invalid character: . in Code generation dialog
CAY-1355 Warning if rename Embeddable.
CAY-1361 SelectQuery.aliasPathSplits does nothing
CAY-1365 "= NULL" being used instead of "IS NULL" on an EJBQL expression..
CAY-1367 EJBQL: Implement support for relationship-ending paths in GROUP BY clause
CAY-1368 Left Join and Prefetches do not work together
CAY-1369 EJBQL: Fix likeIgnoreCase issues
CAY-1371 EJBQL query doesn't preserve grouping by brackets
CAY-1376 Certain EJBQL queries have mismatched table aliases
CAY-1377 EJBQLQuery: when using relationships in the SELECT clause, must generate INNER, not OUTER JOINS

----------------------------------
Release: 3.0 RC 1
Date: 5 January 2010
----------------------------------

Changes/New Features Since beta1
CAY-1191 Undo/Redo support in modeler

Bug Fixes Since beta1:

CAY-1345 Enum construction requires string name of enum
CAY-1247 Query SQL syntax with join and OR on Oracle8 (and maybe OpenBase)
CAY-1305 EJBQL doesn't support null parameters
CAY-1307 Error committing CLOB on Oracle8
CAY-1309 many validation errors when we remove dbEntity 
CAY-1325 Stop bundling cayenne-agent.jar with the distro
CAY-1332 Embeddable validation error in CM on custom Java types
CAY-1333 Entering a custom Java Type in CM for an ObjEntity blanks out DB fields
CAY-1334 Modeler is trying to load data object classes when selecting a query
CAY-1335 Modeler cannot unset inheritance
CAY-1341 EJBQL: joins on joined table not added to generated SQL
CAY-1343 Exclude asm jars from compile maven dependencies
CAY-1344 CreateIfNoSchemaStrategy runs too late - pk generation happens before
CAY-1346 Fail to create new listener for the DataMap

----------------------------------
Release: 3.0 beta 1
Date: 3 November 2009
----------------------------------

Changes/New Features Since M6:

CAY-132 Intelligent lazy fault detection
CAY-419 Collections aren't supported with in-memory filtering
CAY-1116 Add generated PK support to SQLite
CAY-1145 EJBQL: Implement support for relationship-ending paths in SELECT clause
CAY-1220 A function to auto-map the DB relationships
CAY-1225 Controlling JDBC Driver setting "fetchSize" in a SelectQuery
CAY-1227 Modeler support for flattened attributes
CAY-1235 Implement qualifiers for DBEntities
CAY-1236 Allow providing custom INSERT, UPDATE, DELETE query builders
CAY-1241 Add method to ExpressionFactory to match against the primary key of an object or list of objects
CAY-1254 filtering an inExp(a, b) does not work when the path (a) refers to a collection of objects
CAY-1260 (Experimental) Modeler support for embeddables and embedded attributes
CAY-1261 Auto-inject values in NEW objects with declared qualifiers
CAY-1263 Cayenne Oracle adapter should automatically strip IN clauses with more than 1000 elements
CAY-1268 Implement 'setStatementFetchSize' for RelationshipQuery
CAY-1270 Merge primary key changes
CAY-1273 Replace DefaultType with dedicated types
CAY-1276 CreateIfNoSchemaStrategy create no PK support
CAY-1281 Lifecycle callbacks reorganization
CAY-1282 Use #result as optional directive for only few columns (not all)
CAY-1283 Update Ordering to take enums instead of boolean flags.
CAY-1288 Add deleteObjects() to ObjectContext

Bug Fixes Since M6:

CAY-1009 Bogus runtime relationships can mess up commit
CAY-1067 likeIgnoreCase is not supported for CLOBs in MS SQL adapter
CAY-1169 Weird behavior when adding entity via merging
CAY-1177 Outer join syntax causes exception with Expression.filterObjects()
CAY-1224 reverse engineering partially changed schema shows empty error messge window
CAY-1229 Fixing DB2 Tests
CAY-1232 Unit tests failing on Sybase
CAY-1240 Schema generation dialog has "uncheck all tables" checkbox incorrectly checked by default
CAY-1245 Merging to-model fails
CAY-1246 Naming strategy getting stuck in (incorrect) preferences location
CAY-1248 ClassCastException with OracleLOBBatchAction
CAY-1250 Prefetching doesn't work with prefetched subentity
CAY-1252 Bad XML generated when saving DBEntity qualifiers
CAY-1257 NullPointerException in Class Qualifier when using "field = null"
CAY-1259 Wrong Mapping for NUMERIC Type
CAY-1265 error while search inheritance relationship
CAY-1274 CreateTableToDb should not create existing AUTO_PK_SUPPORT
CAY-1275 Merge set-not-null to Oracle through modeler fails if auto adapter is set
CAY-1277 Prefetching may cause a root object to got from COMMITTED to MODIFIED state
CAY-1278 Project with cross-datamap flattenned relationships fails to load
CAY-1279 Passing null values in query parameters
CAY-1285 Update Cayenne Modeler's code generation panel to resize correctly.
CAY-1286 Update Cayenne Modeler's validation errors panel to resize correctly.
CAY-1292 Modeler does not allow to unset/change entity inheritance
CAY-1293 Beta 1 Test Failures

----------------------------------
Release: 3.0M6
Date: 25 May 2009
----------------------------------

Changes/New Features Since M5:

CAY-289 Implement Quoting of identifiers
CAY-816 Improve readNestedProperty() to handle to-many relationships in the path.
CAY-1021 adding a callback method should result in focus on method name
CAY-1025 Do something about to-many prefetch limitations
CAY-1029 maven2 plugin to reverse engineer database
CAY-1047 Aligning query capabilities
CAY-1119 Nested contexts on ROP
CAY-1140 Store ObjEntity name in the DataRow
CAY-1142 (Single table) Inheritance and Paginated lists 
CAY-1146 Move User properties API to ObjectContext & BaseContext
CAY-1147 Remove id reading functionality from ResultIterator
CAY-1150 Generated DataMap classes should contain public constants for all query names
CAY-1151 Update web app tutorial - JettyLauncher plugin does not work with Eclipse Ganymede release or newer
CAY-1153 MySQL : Enable views during reverse engineering
CAY-1154 Rename .access.reveng package to .map.naming
CAY-1156 Modeler search improvement
CAY-1158 cayenne-modeler:run plugin should open a (configured) project file, with suitable defaults
CAY-1161 Deprecate SelectQuery custom columns feature
CAY-1164 Implement EJBQL query support in the Modeler
CAY-1167 Create model schema XSD
CAY-1174 Modeler: support optional meaningful PK mapping during reverse engineering
CAY-1175 Replace String column name capitalization property with an enum
CAY-1184 Callback methods should default to usable names
CAY-1185 Expression API: boolean support in string representation
CAY-1193 Auto load schema on startup
CAY-1197 ANT task for reverse engineering
CAY-1211 Modeler: blown out warning dialogs
CAY-1214 Class generation should create abstract callback methods in the superclass and stub methods in the subclass
CAY-1215 Move tool-like items into new cayenne-tools module
CAY-1218 Query caching loose ends
CAY-1221 Exclude JPA from releases
CAY-1250 Prefetching doesn't work with prefetched subentity
CAY-1269 Remove SelectQuery custom columns feature

Bug Fixes Since M5:

CAY-940 CayenneModeler fails on load of existing project file or upon creation of new project on IBM's Java 1.6.0 SDK on 32-bit ppc
CAY-947 Database Schema Migration should sort tokens
CAY-979 ROP client serialization mechanism dependencies
CAY-1139 EJBQL condition translation - must track the type of condition
CAY-1143 CayenneModeler 'Import DataMap' function error
CAY-1144 EJBQL mixed GROUP BY clause is generated incorrectly
CAY-1155 Modeler template for SQLServer driver has a typo in the driver name
CAY-1157 Modeler: Concurrent mod exception on removing DbRelationship
CAY-1160 Default delete rule is not used when migrating schema (to model)
CAY-1166 Type checking in the modeler
CAY-1170 cdbgen task fails due to NPE when instantiating TypesHandler
CAY-1176 missing classes in ROP cayenne-client render nested contexts unusable
CAY-1180 Model marked as dirty when leaving DataMap name field
CAY-1181 Default class generation folder is wrong
CAY-1183 commitToParent() makes object persistence state committed, produces exception when using object in parent context (ROP)
CAY-1194 problems with relationships when using nested contexts and ROP
CAY-1196 CayenneRuntimeException in modeler due to ClassNotFoundException when java type is invalid and db attribute is null
CAY-1204 Incorrect relationship syncing in nested CayenneContext's
CAY-1205 Renaming DbRelationships breaks different ObjRelationships
CAY-1207 Oracle8 does not like new join syntax
CAY-1217 Project tree loses focus when traversing a list of entities with the keyboard
CAY-1219 Modeler - clicking on query "select properties" fields changes project status to "dirty"
CAY-1222 Row index out of range exception when selecting a relationship

----------------------------------
Release: 3.0M5
Date: 15 Dec 2008
----------------------------------

Changes/New Features Since M4:

CAY-366 Add progress/log view
CAY-402 Entity/Attribute/Relationship naming improvements on reverse-engineering
CAY-436 In modeler, change default object relationship delete rule
CAY-671 custom exception class for ROP missing session
CAY-794 Abstract object entities
CAY-888 CM Usability: Object Select Query Improvements
CAY-890 CM Cosmetics: Use the Cayenne Icon.
CAY-892 CM Usability: JEdit Syntax to all TextAreas
CAY-894 CM Usability: Welcome screen
CAY-911 CM Usability: JComboBox Autocompletion
CAY-1055 Right-click contextual menu for entities/attributes/relationships that would include common operations, like "delete".
CAY-1056 Detection of the project file changes on disk.
CAY-1058 Add a maven plugin for starting up the modeler.
CAY-1060 CM: Allow multiple item selections
CAY-1061 ResourceFinder: abstract API for looking up resources, including multiple resources for a given name
CAY-1067 likeIgnoreCase is not supported for CLOBs in MS SQL adapter
CAY-1068 Add support for start index/offset of queries
CAY-1070 Generating SelectQuery Access Code
CAY-1077 ObjRelationship Mapping Dialog Improvements
CAY-1080 Support for copy/paste of entities/attributes/relationships
CAY-1085 Use standard JDBC API for writing Oracle LOBs
CAY-1091 Upgrade to Hessian 3.1.6
CAY-1094 CM DataNode panel reorg - pull the password encoding options into a tab
CAY-1096 CayenneContext should support ThreadLocal operations
CAY-1100 merge: public access to columnOriginal and so on
CAY-1113 Primitives in ROP support
CAY-1127 Stop using query NAME as a cache key
CAY-1128 Switch JOINT prefetches to generate OUTER Joins.
CAY-1131 Add LIMIT / OFFSET clause generation method to SelectTranslator lifecycle
CAY-1132 DataMap class generator mechanism for the ROP client
CAY-1133  Split Maven cayenne:modeler goal into a separate plugin from cgen and others
CAY-1137 Deprecate and start ignoring QueryMetadata.isResolvingInherited()
CAY-1138 Stop using Query.isRefreshingObjects()

Bug fixes since M4:

CAY-1062 Code Generation line ending consistency: ImportUtils
CAY-1063 Derby adapter is not able to remove NOT NULL relationship
CAY-1072 EJBQLQuery non-serializable exception when run via ROP
CAY-1073 Bug in Expression.toEJBQL with inExp/notInExp
CAY-1074 Derby: Wrong SQL Generated for select items -- DESC follows column name
CAY-1081 DataObjectUtils.objectForPk broken in ROP
CAY-1082 ROP: RefreshQuery fails to refresh to-many relationships
CAY-1083 General Preferences Panel - items misaligned
CAY-1095 Cayenne attempts to append precision information to DOUBLE types when creating tables in hsqldb which results in a sql exception.
CAY-1097 Attribute types are not generated for primitive ints
CAY-1098 EJBQLQuery can't process java.util.Date parameters
CAY-1103 rollbackChanges is broken in ROP CayenneContext
CAY-1108 MySQL/DbMerger compatibility
CAY-1110 fetchLimit + DistinctResultIterator = fewer rows in the result
CAY-1114 EJBQLQuery fails on joins outside of public schema
CAY-1118 ROP: setToXXX(null) does not update reverse rel
CAY-1121 EJBQL collection binding
CAY-1122 columnNamesCapitalization property is ignored for the queries mapped via Modeler
CAY-1126 Opening non-existing projects gives an error
CAY-1129 ROP: CayenneContext does not unregister deleted nodes

----------------------------------
Release: 3.0M4
Date: 29 May 2008
----------------------------------

Changes/New Features Since M3:

CAY-514 implement a "MATCH ALL VALUES" expression
CAY-560 Add support for outer joins
CAY-789 return object diff to client in ROP after commit
CAY-802 Split Expressions
CAY-809 Support for explicit mapping of SQL results with SQLResultSetMapping
CAY-839 Support combination of Persistent objects and scalars in query results
CAY-868 Deprecate EventManager.getDefaultManager() and stop using it
CAY-893 CM Usability: Reopen Last Project on Startup
CAY-929 SelectTranslator support for standard SQL join syntax, including outer joins
CAY-970 Allow application to add DbAdapterFactory to AutoAdapter
CAY-971 ROP GraphDiff "compressor"
CAY-980 Upgrade Derby to 10.3 to support alter table drop column
CAY-994 Add extended enumeration support
CAY-999 Scaling paginated list
CAY-1006 Upgrade Hessian to 3.1.5
CAY-1010 Entity Tab switching on new entity creation
CAY-1011 Add confirmation dialog for delete actions
CAY-1019 Streamlining LOCAL_CACHE handling
CAY-1024 Add .zip generation to Windows profile.
CAY-1026 Drop commons-lang dependency
CAY-1027 Orderly EventManager shutdown
CAY-1033 remove completed merge tokens from view in cayenne modeler
CAY-1035 Replace QueryMetadata String cache policies with an enum
CAY-1038 Upgrade to Ashwood 2.0
CAY-1046 Make PK metadata available via Obj* API.
CAY-1048 Deprecate but preserve functionality of QueryMetadata.isRefreshingObjects() 
CAY-1049 Refactor QueryAssembler/SelectTranslator
CAY-1050 MySQLSniffer should configure created adapter to use MySQL default engine for tables
CAY-1051 Oracle 11 driver support - Drop OracleAdapter "optimizations"

Bug fixes since M3:

CAY-574 DataObjectUtils 'objectForPK' should work on the client
CAY-732 Incorrect query with self joins
CAY-785 Cayenne Modeler Fails to Open Project 
CAY-982 Client class and superclass names not auto-populated for new ObjEntity.
CAY-983 POST_LOAD called twice
CAY-984 Runtime relationships leak into CayenneModeler
CAY-986 LOCAL_CACHE policy fails when query is paged
CAY-989 Garbage SQL generated for EJBQL subqueries
CAY-992 Modeler does not escape entity names
CAY-998 ROP paginated lists must recover from server LRU query cache overflow
CAY-1003 the paged queries in ROP can fail to fetch the subsequent pages if the client and server are in different timezones
CAY-1005 CM Qualifier (or Declared Qualifier) is not honoured in 100% cases
CAY-1014 Enums as meaningful PK
CAY-1018 Enums fetched via SQLTemplate
CAY-1020 Problem accessing toMany Set relationships on client.
CAY-1028 NPE's in the Modeler for incomplete relationships
CAY-1043 NPE in ConnectionWrapper on rollback
CAY-1044 NPE on commit when the new object was deleted before commit
CAY-1053 MapQueryCache.CacheEntry not serializable
CAY-1054 Error removing object from a paginated list after the object was deleted and the context committed

----------------------------------
Release: 3.0M3
Date: 04 Feb 2008
----------------------------------

Changes/New Features Since M2:

CAY-263 cdbgen (DbGeneratorTask) must support classpath and classpathref
CAY-329 Long vs. Integer PK
CAY-716 DataContext.rollbackChangesLocally() is not implemented for nested DataContexts
CAY-735 Embeddable class support in the org.apache.cayenne.map package
CAY-736 Embeddable class support by Cayenne runtime
CAY-879 Storing lifecycle listeners and callbacks in the *.map.xml and loading them back
CAY-884 Add support for H2 Database
CAY-885 merge changes between model and db
CAY-900 Create CayenneModeler Swing UI for managing callbacks and lifecycle listeners
CAY-903 Support primitive types in DataObjects
CAY-904 Switch cayenne to Java 5: merge cayenne-jdk1.4-unpublished to cayenne-jdk1.5-unpublished
CAY-916 Ordering should be able to ignore paths with null elements
CAY-918 An exception during in-memory sorting of IncrementalFaultList
CAY-921 Remove DerviedDbEntity support from Cayenne
CAY-927 Switch to version 1.2 as default generation mechanism , deprecate 1.1 generator
CAY-931 Enable revert action even for projects that are not modified
CAY-933 Embeddable classes - support class generation
CAY-936 Update Velocity templates for generics.
CAY-939 Add a means of updating custom superclass for all client classes.
CAY-945 PropertyUtils support for "compiled" property access
CAY-946 JPA: property-based access to persistent objects
CAY-948 Implement flattened attributes in Cayenne
CAY-949 Factory for lifecycle listeners
CAY-950 Look up callback methods on listener superclasses
CAY-953 JPA: Single Table inheritance
CAY-954 EJBQL Query: Support for single table inheritance
CAY-956 Converter between Expression and EJBQL Expression

Bug fixes since M2:

CAY-882 Configuration shutdown hook thread may lead to memory leaks
CAY-887 CM Usability:Recent Files list shold be longer
CAY-899 Default POST_LOAD callbacks break aggregate queries
CAY-913 ToMany Map relationships cause ClassCastExceptions on commit when the source is Fault
CAY-914 cdataport classloader trouble
CAY-920 ClassCastException when processing delete rules for Map relationships
CAY-924 Update CayenneModeler for OS X Leopard
CAY-926 Refactoring class generator classes
CAY-932 Cancel doesn't cancel when quitting CM with a modified model
CAY-967 Caching doesn't work for paginated queries
CAY-974 Subquery EJBQL returns wrong entity in the result
CAY-976 EntityResolver Fault dependency leads to ClassNotFound on the ROP client

----------------------------------
Release: 3.0M2
Date: 11 Nov 2007
----------------------------------

Changes/New Features Since M1:

CAY-610 A way to shutdown EventManager
CAY-757 JPA should handle managed classes not listed in persistence.xml
CAY-819 Support for per-adapter customization of EJBQL translator
CAY-824 Extract all DataView related code in a separate module
CAY-826 Modeler support for the extra simple property types that Cayenne now supports
CAY-828 Remove DataContextTransactionEventListener, DataObjectTransactionEventListener, DataContextEvent
CAY-833 Remove API for flipping callbacks state in the ClientServerChannel - this is a non-feature
CAY-834 DataContext and DataDomain must support lifecycle callbacks out of the box without wrapping
CAY-836 EJBQL Delete Statement Support
CAY-837 EJBQL Update Statement Support
CAY-838 EJBQL GROUP BY and HAVING support
CAY-840 EJBQL Subquery Support
CAY-841 EJBQL Support for LIKE/ESCAPE and IN conditions
CAY-842 EJBQL Collections condition support
CAY-843 Remove arbitrary reverse relationship mapping limitations
CAY-844 _Auto classes should be "abstract"
CAY-846 EJBQL Support for Functional Expressions
CAY-848 Support for mapping to-many as Maps and Sets and Collections
CAY-855 Add DataContext.objectFromDataRow variety for generic classes
CAY-856 Deprecate CayenneMap and replace all references to it with standard java.util package Maps
CAY-857 Deprecate derived DbEntity and all associated API's - schedule for removal in 3.0M3
CAY-859 Cayenne agent misses JPA entity classes that were loaded before their PersistenceUnits
CAY-867 Special exception for accessing previously shutdown domain
CAY-869 CayenneModeler free-text search
CAY-875 DbAdapter for SQLite

Bug Fixes Since M1:

CAY-770 bug / memory leak in DispatchQueue and EventManager
CAY-796 Deserialization of DataContext fails when useSharedCache is false
CAY-797 Lifecycle callbacks *CallbackInterceptor concept introduces problems for testing equality of contexts
CAY-832 enum-mapped columns improperly handled in in expressions
CAY-835 setting meaningful pk to zero turn on autogenerated keys
CAY-845 DataContext.localObject() object update race condition
CAY-847 Expression NULL handling
CAY-852 NPE in Util.delete for read-protected directories
CAY-853 JPA EntityTransaction must allow multiple begin/commit cycles
CAY-854 the relationships to entities which are "not for client use" are being returned by ${objEntity.DeclaredRelationships} tag in superclass template
CAY-860 JPA no joins created for to-many relationship
CAY-861 ObjRelationship 'addDbRelationship()' and 'removeDbRelationship' leave object in an inconsistent state
CAY-863 Object property unexpectedly set to null through forceMergeWithSnapshot
CAY-870 Race condition in ClassDescriptorMap
CAY-872 Potential bug deleting uncommited objects from a nested DataContext
CAY-873 maven-cayenne-plugin requires transitive deps declared
CAY-901 Cannot set more than one to-one relationship to null.

----------------------------------
Release: 3.0M1
Date: 17 Jul 2007
----------------------------------

Changes/New Features:
----------------------------------
- Removed all API deprecated as of 1.2 and 2.0.
CAY-460 javax.persistence.spi.ClassTransformer to turn POJO into DataObject
CAY-540 extended type and subclasses
CAY-576 Support for cached lists invalidation
CAY-586 Implement commit validation hooks in CayenneContext
CAY-598 JPA patches
CAY-600 Add support for ordering property list serialization in a consistent way
CAY-613 Pluggable Query Cache
CAY-623 Removing broken FireBird adapter
CAY-625 Implement correct "scale" and "precision" for DbAttribute
CAY-632 RefreshQuery - a common mechanism for object and object list invalidation
CAY-636 Switch Cayenne HEAD to hessian 3.0.20
CAY-642 Add support for encrypted JDBC passwords
CAY-645 Support for persisting java.util.Calendar
CAY-647 Support for persisting java.math.BigInteger
CAY-648 Support for persisting java.io.Serializable
CAY-650 Support for char[], java.lang.Character, java.lang.Character[], java.lang.Byte[] as "simple" persistence types
CAY-651 Add convenience method to create missing DB_PATH expressions where there is a corresponding OBJ_PATH expression
CAY-657 Removing/Deprecating ExtendedType.validateProperty()
CAY-660 JPA-like callbacks support in the main Cayenne stack
CAY-666 Support for entity lifecycle callbacks in ClientServerChannel
CAY-667 Support default entity lifecycle callbacks
CAY-668 Link Cayenne callback API with JPA provider
CAY-669 Support superclass entity callbacks
CAY-672 Change the logic to get the Java class from ResultSetMetadata
CAY-673 Removed DVModeler from the release. For backwards compatibility DVModeler from 2.0.x release can be used.
CAY-674 ROP client side validation
CAY-679 Add a new method to ObjectContext: registerNewObject(Object)
CAY-680 Deprecate DataObject.[get|set]DataContext in favor of [get|set]ObjectContext
CAY-681 Deprecate DataObject.fetchFinished() in favor of the callbacks
CAY-683 Deprecate DataContext.createAndRegisterNewObject()
CAY-685 OSQueryCache concurrency improvements
CAY-686 Weed out DataObject references from the access stack classes, replacing them with Persistent and ClassDescriptor
CAY-687 New method: QueryMetadata.getClassDescriptor()
CAY-688 Change signatures of ObjectContext.deleteObject/registerNewObject/localObject to take Object instead of Persistent as an argument
CAY-689 DataObjectUtils must return "Object" instead of "DataObject" from all pk lookup methods
CAY-692 Extra argument needed in ObjectContext.prepareForAccess - whether the property is a fault or not.
CAY-693 DataContext should not return HOLLOW objects in response to ObjectIdQuery()
CAY-694 Support for serialization of enhanced serializable POJO's that do not declare 'serialVersionUID'
CAY-696 true/false in expression
CAY-700 where in () with empty collection
CAY-701 "property" package refactoring
CAY-702 Improve DBCPDataSourceFactory to use it for a JettyPlus DataSource
CAY-703 Cache EntityResolver in the ClientChannel
CAY-713 Improved Meaningful PK support
CAY-717 Modeler doesn't manage FK constraints with MYSQL
CAY-722 Investigate reducing the shared cache lock scope on commit
CAY-737 Deprecate DataContextTransactionEventListener, DataObjectTransactionEventListener, DataContextEvent
CAY-740 MapLoader algorithm improvement
CAY-741 Indexing entities with inheritance across datamaps
CAY-750 Stored procedures without parameters fail on Postgres 8
CAY-763 XML Deserialization fails on relationships when using a mapping file
CAY-773 MySQL stored procedure support
CAY-781 Bug in CayenneDataObject.readNestedProperty
CAY-800 SQLTemplate improvement - API to control the capitalization of the data row labels
CAY-803 EJBQL Parameters support
CAY-805 SQLTemplate improvement: new #bindObjectEqual #bindObjectNotEqual directives
CAY-810 IncrementalFaultList performance improvements
CAY-812 Add ability to drag cayenne.xml to the Modeler from the filesystem


Bug Fixes since 1.2/2.0 final:
(note that many of these fixes are also available from the later stable releases of 1.2/2.0 branches)

CAY-565 LRUMap NPE
CAY-583 Enable batching on Derby
CAY-597 XML Encoder with Mapping outputs incorrect XML
CAY-601 Problem resolving relationships in nested DataContext
CAY-603 QueryChain.isFetchingDataRows() incorrectly returns "false" - must be "true" all the time
CAY-607 Long query name or qualifier expand query text field off screen
CAY-618 Support optional remote events in the ClientChannel
CAY-639 JDBC datatype of MySQL INT UNSIGNED is mapped as java.lang.Integer should be java.lang.Long
CAY-617 ROP: shared session functionality over XMPP is broken
CAY-614 ToManyList contains references to transient objects
CAY-609 Modeler prevents intermediate prefetch creation
CAY-608 Prefetch validation incorrectly reports error on multi-step prefetches
CAY-641 Stack trace instead of error message when relationship and attribute have the same name
CAY-646 Class generator - incorrect java types for classes like java.lang.whatever.XYZ
CAY-649 ExtenedTypeMap.getRegisteredType(Class) incorrectly handles array types
CAY-652 Exception with Tomcat's session restore capability
CAY-653 overriding setPersistentState() in unreliable in three tier environment with CayenneContext
CAY-663 localObject and new objects
CAY-664 Simplify EntityResolver serialization
CAY-671 custom exception class for ROP missing session
CAY-675 compound primary key change
CAY-690 Exception in the Modeler when changing schema on derived entities
CAY-707 SelectQuery automatic cache key build mechanism produces wrong results when DO's are used in qualifier
CAY-710 XMLDecoder decodes Dates wrong
CAY-711 SQLTemplate data row query of PostgreSQL Blob
CAY-712 Allow modifying objects in validate* methods
CAY-718 ROP: handle non-serializable server side exceptions
CAY-721 DataContext shouldn't attempt to fix objects on FaultFailureExceptions
CAY-723 Enable batching on MS SQL Server
CAY-724 Bogus FaultFailureExceptions
CAY-726 SQLTemplate parsing bug when macros appear at the end of line
CAY-743 Reordering mappings from domain in xml resulting in StackOverflowException
CAY-746 Change ConnectionProperties.ADAPTER_KEY value from "cayenne.adapter" to "adapter"
CAY-751 AS400 datafields containing # in field names do not get mapped correctly
CAY-752 Importing EOModel gives Cast Exception
CAY-754 Local jNDI hack breaks when running with Jetty6-Maven
CAY-764 Exception when importing an EOModel with single table inheritance
CAY-765 Programmatically overriding "use share cache" fails
CAY-775 AutoAdapter fails to detect Sybase when running with jTDS driver
CAY-776 1.2 -> 2.0/3.0 Migration - modeler preferences still store org.objectstyle adapter names
CAY-779 Improve usability of non-pooling DriverDataSource for uses outside Cayenne
CAY-783 jgroups config file not removed from cayenne.xml
CAY-784 Deleting an object with a read-only flattened relationship fails
CAY-786 Race condition in DataContext.localObject()
CAY-788 prefetch can set state to modified
CAY-792 Date has issues with different locales when using XMLEncoder/XMLDecoder
CAY-817 HSQLDB schema generation may not correctly flush the changes
CAY-818 Frontbase NUMBERIC type mapping typo
CAY-823 Db-generated PK type mismatch
CAY-830 DataChannelCallbackInterceptor.onQuery NPE

API Changes
----------------------------------

* Due to the caching mechanism changes, the following methods were removed (there is no sensible deprecation path)
  - DataRowStore.cacheSnapshots(String, List)
  - DataRowStore.getCachedSnapshots(String)
