blob: 88cabdd493c488a656279462a3e1ea89c7e780ae [file] [log] [blame]
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: 4.0.M4
Date:
----------------------------------
Changes/New Features:
CAY-2051 Applying new Reverse Engineering to the Modeler
CAY-2053 SQLExec fluent query API
CAY-2060 Replace Query objects in DataMap with query descriptors
CAY-2062 MappedSelect and MappedExec fluent query API
CAY-2063 ProcedureCall fluent query API
CAY-2065 Pluggable serialization and connectivity layers for ROP
CAY-2073 Ordering.orderedList methods
CAY-2074 Support for catalogs in stored procedures
CAY-2076 Implement Jetty HTTP/1.1 and HTTP/2 Client support for ROP Client
CAY-2083 Implement Protostuff as serialization service for Cayenne ROP
CAY-2090 Untangle HttpRemoteService from ServiceContext thread local setup
Bug Fixes:
CAY-2064 Issue with BeanAccessor for classes with complex inheritance
CAY-2066 Fixes for inner enums handling in ExtendedTypeMap
CAY-2067 Cayenne 4.0 connection pool is occasionally running out of connections
CAY-2078 Client code gen bug. Unnecessary DataMap class generation setting datamap gen to false.
CAY-2080 Cayenne doesn't pick up reverse engineering file changes
CAY-2084 ObjectIdQuery - no cache access polymorphism
CAY-2086 SelectById.selectFirst stack overflow
CAY-2087 PostCommitFilter is confused about changes made by Pre* listeners
CAY-2089 HTTP connections aren't always closed in new ROP implementation
----------------------------------
Release: 4.0.M3
Date:
----------------------------------
Changes/New Features:
CAY-1626 Add JodaTime DateTime support
CAY-1902 Implement resolving Db paths for DataObjects
CAY-1991 More control over generated String property names
CAY-1992 Allow to exclude DataMap java class from Modeler class generation
CAY-1995 Add support for iterators to Select
CAY-2001 Saving a display state of Project
CAY-2004 EJBQL: Support for ordering on aggregate expressions
CAY-2007 Refactoring SelectTranslator for better extensibility
CAY-2008 Connection pool refactoring and validation query support in Cayenne DataSource
CAY-2009 Non-blocking connection pool
CAY-2010 DataSourceBuilder to help users create pooling and non-pooling DataSources
CAY-2011 Support for Java 8 date and time types
CAY-2012 ObjectSelect, SelectById: eliminating methods that reset query state
CAY-2013 In-memory evaluation of DB expressions - non-id attributes
CAY-2023 Decouple the use of ResourceLocator
CAY-2025 Support for DBCP2
CAY-2026 Java 7
CAY-2027 Support for Expression outer join syntax in EJBQL
CAY-2028 Wrap DataChannelFilter calls in the main transaction
CAY-2029 Allow out-of-order insertion into DI lists
CAY-2030 Capturing a stream of commit changes
CAY-2035 Autobind items added to collections (Cayenne DI)
CAY-2042 Remove an arbitrary limitation on 1000 runtime DbRelationships
CAY-2043 ServerRuntimeBuilder: use DataDomain name for the default DataNode
CAY-2044 Collection setter for to-many relationships
CAY-2045 Add autosuggestion fields to choose attributes and relationships
Bug Fixes:
CAY-1977 Cleanup Modeler reverse engineering functionality
CAY-1987 Widen types before performing in-memory evaluation of qualifiers using j.l.Number subclasses
CAY-1990 Incorrect display of the raw SQL query in Modeler
CAY-1993 Reverse Engineering does not work with PostgreSQL database
CAY-1994 Modeler Migration Tool Shows No Changes
CAY-1997 Difference in NULL handling inside the path between PropertyUtils and DataObject.readNestedProperty
CAY-1998 Speeding up PropertyUtils
CAY-1999 Unneeded Property import for superclasses with no properties
CAY-2003 cdbimport doesn't work properly with several includeTable tags
CAY-2015 Joint prefetches combined with DisjointById prefetches return null incorrectly
CAY-2020 typo: correction to upper alpha range in Rot13PasswordEncoder
CAY-2041 "cayenne.jdbc.max_connections" and "cayenne.jdbc.min_connections" command line options are ignored
CAY-2047 Relationship mapping with target inheritance
CAY-2049 Changing the Relationship name in ObjRelationship Inspector has no effect
----------------------------------
Release: 4.0.M2
Date: March 18, 2015
----------------------------------
Changes/New Features:
CAY-1267 Some changes to LogDialog
CAY-1826 Merge Entity Attributes and Relationships tabs together with one toolbar.
CAY-1839 Allow to link DataMaps to DataNodes from DataNode editor.
CAY-1841 Filters for Left-hand project navigator
CAY-1842 Remove Listeners support from the Modeler
CAY-1843 DataMap v7: Stop saving listeners in DataMap, add upgrade handler
CAY-1845 Upgrade javadoc plugin to 2.9.1
CAY-1846 Reworking of callback mapping
CAY-1847 Make ConverterFactory extensible
CAY-1848 New method: ObjectContext.selectOne(Select query)
CAY-1851 Generate default serialVersionUID for generated java classes to avoid eclipse warnings
CAY-1852 Straighten thread model and synchronization in the Modeler
CAY-1855 Iterated and paginated queries must print result counts
CAY-1856 Expression.expWithParameters does not work when parameters are placed in the inline collection
CAY-1860 In-memory matching of DataObjects against ObjectId or int
CAY-1861 Remove runtime relationships
CAY-1870 cgen - smarter default for 'superPkg' and 'destDir'
CAY-1882 Porting to OSGi environment
CAY-1883 Clean up Cayenne maven structure
CAY-1886 cayenne-di module reorg, new exceptions
CAY-1890 Remove Cayenne-level buffering when retrieving LOBs
CAY-1894 Support native PK generation using sequences for H2 databases
CAY-1899 ServerRuntimeBuilder
CAY-1900 Allow DataNode name to be used as a root of SQLTemplate
CAY-1901 Config-free ServerRuntime
CAY-1904 Simple injection-friendly constructor for AuditableFilter
CAY-1907 RowReaderFactory
CAY-1908 Refactor all SQLActions to work with DataNode
CAY-1911 BatchQuery refactoring - make Iterable
CAY-1912 BatchQueryBuilder refactoring
CAY-1913 Refactor org.apache.cayenne.access.trans into query-specific packages
CAY-1914 Refactor EJBQL-related translators to a standalone 'org.apache.cayenne.access.translator.ejbql' package
CAY-1915 BatchTranslator instead of performing bindings should return binding object whose values can be altered
CAY-1916 cayenne-crypto module that enables data encryption for certain model attributes
CAY-1918 Replace Oracle LOB hacks with JDBC 4.0 API
CAY-1919 Split DataNode creation into a separate DataNodeFactory
CAY-1920 DI: add support for decorators
CAY-1921 Support for schema selection in 'Migrate Database Schema'
CAY-1923 Optimize BatchTranslator - use fixed size array of BatchParameterBinding
CAY-1925 cayenne-crypto: add optional compression to the encryption pipeline
CAY-1928 Second INNER join generated for OUTER flattended relationships in disjoint prefetches
CAY-1929 Property.outer method to build OUTER join properties
CAY-1932 Improved Handling for Scalar Parameters Converting Expressions to EJBQL
CAY-1933 Problems in Evaluating EJBQL Statements with Integral Literals > Integer.MAX_VALUE
CAY-1934 A problem exists where the escape character is not conveyed in the EJBQL when toEJBQL() is invoked on the expression.
CAY-1936 ServerRuntime.getDataSource() returning DataSource of a default DataNode
CAY-1937 Make Transaction an interface
CAY-1938 Create a DI factory for transactions, get rid of TransactionDelegate and modeler config for tx policies
CAY-1939 DataDomain must use injectable TransactionManager
CAY-1946 CDbimport improvements
CAY-1949 Search in configuration fields (Catalog, Schema) in DbEntity
CAY-1952 Undeprecate (actually restore) ObjectContext.deleteObject(..)
CAY-1953 Redo ResultIteratorCallback to handle single row callback instead of iterator
CAY-1954 Make Cayenne class constructor protected
CAY-1958 SelectById - a new full-featured select query to get objects by id
CAY-1959 ObjectSelect query - a fluent API alternative to SelectQuery
CAY-1960 ExpressionFactory.exp(..) , and(..), or(..)
CAY-1962 Implement CayenneTable column resize on double-click on the header separator
CAY-1965 Change version from 3.2 to 4.0
CAY-1966 SQLTemplate/SQLSelect positional parameter binding
CAY-1967 Deprecate SQLTemplate parameter batches
CAY-1968 SQLSelect cleanup and omissions
CAY-1971 Variants of Property.like(..) : contains(..), startsWith(..), endsWith(..)
CAY-1972 A property to override DataSources of multi-module projects
CAY-1981 Add support of JDBC 4.0 N-types (nchar, nvarchar, longnvarchar, nclob)
CAY-1984 cdbimport doesn't flatten many to many relationships
Bug Fixes:
CAy-1988 ServerRuntimeBuilder: synthetic DataNode does not have domain's DataMaps linked
CAY-1480 Implement cross-db functional expressions
CAY-1695 Unexpected null value in bidirectional one-to-one prefetch
CAY-1736 IllegalArgumentException when synchronizing entities in the Modeler
CAY-1795 "Invisible" ObjAttribute in subclass
CAY-1796 ROP: All entity's to-many relationships getting faulted from database when using it as a parameter in qualifier expression
CAY-1797 NPE importing DataMap
CAY-1798 ROP: Reverse relationships of prefetched entity objects are not filled during server to client objects conversion
CAY-1799 ROP: Server can't deserialize LIKE expression with pattern already compiled
CAY-1818 Fix copyright year in the Modeler "about" panel
CAY-1834 Exception: ToManyList cannot be cast to DataObject
CAY-1857 Problem with hotkeys
CAY-1859 NullPointerException when importing EOModel
CAY-1863 Make determining whether a particular database type supports length adapter-specific not universal
CAY-1866 Change in General Modeler Preferences reverts old settings to default value
CAY-1868 Select contention with multiple contexts
CAY-1869 ResultIterator from cayenne-client dependency is subclassed from org.apache.cayenne.access.ResultIterator which is present only in cayenne-server dependency
CAY-1874 DB2 Procedure action ignores the first result set
CAY-1877 In-memory evaluation of expression may fail with UnsupportedOpeartionException depending on order of nodes
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.
CAY-1905 Multi-step prefetching NPE : 1..N..1 with absent N and root with no qualifier
CAY-1943 XML file not deleted when a DataMap is deleted from the project
CAY-1961 Fix RemoveAction for DataMaps in ProjectTree
CAY-1964 Fix convertAdditionalDataMaps() in CayenneGeneratorMojo.java
CAY-1973 error while generating classes
CAY-1974 Copy/Paste DbEntiry throws exception
CAY-1978 ESCAPE clause should be included in LIKE parenthesis
CAY-1979 Prefetches on Many-to-Many Relationships with Longvarchar
CAY-1980 'mvn cayenne-modeler:run' seems to be broken in 4.0
----------------------------------
Release: 3.2M1
Date: July 19, 2013
----------------------------------
Changes/New Features:
CAY-1294 Generify query
CAY-1646 Synchronize tabs in Modeler between ObjEntity and DbEntity editor panes
CAY-1647 Easily switch to/from ObjEntity and DbEntity in Modeler
CAY-1717 [PATCH] Implement JDBC compatibility layer methods
CAY-1718 Remove everything deprecated in 3.1
CAY-1724 Add 'Property' class for easier and better Expression creation
CAY-1726 Expression parser support for bit operators, support for << and >>
CAY-1737 ObjectContexts listening to DataChannel events must be non-blocking
CAY-1748 IdCoder/EntityIdCoder improvements to work with ObjectIds, including temp ones
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:'
CAY-1758 cdbimport improvements
CAY-1759 cdbimport improvements: add 'catalog', rename 'schemaName' to 'schema'
CAY-1760 cdbimport improvements: Default adapter (if none specified) must be AutoAdapter, not JdbcAdapter
CAY-1761 cdbimport improvements: DbLoader must reverse engineer PK auto-increment state.
CAY-1762 cdbimport improvements: Support for "defaultPackage" parameter, as the new DataMaps ends up placing entities in the root package
CAY-1763 cdbimport improvements: specified "schema" should become the default schema of the generated DataMap
CAY-1764 cdbimport improvements: "overwrite" flag
CAY-1765 cdbimport improvements: add excludeTables/includeTables parameters
CAY-1766 Deprecating DataPort ant task
CAY-1768 cdbimport improvements: DataMap "project-version" attribute is skipped when DM is saved
CAY-1769 cdbimport improvements: meaningfulPk flag must be turned into a pattern
CAY-1771 cdbimport improvements: "usePrimitives" flag
CAY-1772 Real support for DbEntity catalogs
CAY-1778 TransactionManager to simplify user-managed transactions
CAY-1779 Flatten object entities for many to many relationships on reverse engineering
CAY-1781 Add StatelessContextRequestHandler as an alternative to the Session-based one
CAY-1785 SelectQuery<T> for DataRows
CAY-1789 Lock-free EntityResolver
CAY-1792 [PATCH] Supply additional factory methods for generic SelectQueries
CAY-1803 Optimize Expression conversion to String and EJBQL
CAY-1809 Remove 'final' modifier from Cayenne, HessianUtil, PropertyComparator, ConversionUtil, and LinkedDeque
CAY-1813 Missing ObjEntity Attribute Validation with Duplicate DbEntity Columns
CAY-1814 Support Property.nin
CAY-1819 When adding a filter, auto-register it as a listener
CAY-1820 DataDomain.addListener(Object) - a shortcut for adding annotated listeners
CAY-1821 AuditableFilter and friends should explicitly work with Persistent instead of Object
CAY-1822 Make DataMap editor fields wider
CAY-1823 remove ":sync w/DbEntity" button from ObjEntity - it is redundant and already present on the entity toolbar.
CAY-1825 Simplify API for setting up query caching
CAY-1828 SQLSelect - generics friendly fluent selecting sql query
CAY-1829 Make ResultIterator implement Iterable<T>, create ObjectContext.iterate method
CAY-1836 Firebird Adapter
CAY-1838 Deprecate EntityResolver.indexedByClassProperty
CAY-1840 Conditionally log slow / long-running queries
CAY-1844 Configuration for maximum time to wait for an available DB connection
CAY-1862 MySQL - allow specifying a length for TIMESTAMP and TIME columns
Bug Fixes:
CAY-957 Deadlock in nested contexts
CAY-1522 EJBQL query don't support quotes
CAY-1677 Modeler: text fields discard input unless you press enter
CAY-1701 Modeler cannot undo pasting of obj (db) entity
CAY-1708 Modeler error when pasting datamap with EJBQL query
CAY-1714 ROP: Cayenne tries to build a query for non committed object when using more than 2 nested contexts
CAY-1721 Writing blobs fails (Oracle)
CAY-1725 NullPointerException from call to removeToManyTarget
CAY-1719 Modeler - Obj Attribute Java Type editor won't focus sometimes
CAY-1727 Modeler thinks entity is using inheritance when it doesn't
CAY-1729 PersistentDescriptor must have predictable property iteration order
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-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-1780 cdbimport do not create xml file in resource folder
CAY-1782 Deadlock when performing many concurrent inserts
CAY-1783 JdbcPkGenerator.longPkFromDatabase would throw an exception if the PK value exceeds a range of Java int
CAY-1794 Duplicate attributes in discriminator columns of PersistentDescriptor
CAY-1804 Serialisation of long[] type was not working correctly.
CAY-1806 Error importing eomodel
CAY-1817 NPE during Validate Project
CAY-1827 EhCache region corresponding to a cache group loses its settings after 'removeGroup'
CAY-1832 Exception when modifying objects in postLoad callback