| 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 |
| |