Cayenne is an object-relational mapping framework written in Java. This Cayenne project at SourceForge is dedicated to hosting a legacy 1.2 release. For up to date releases please visit the new home at Apache. http://cayenne.apache.org
Be the first to post a text review of Cayenne. Rate and review a project by clicking thumbs up or thumbs down in the right column.
This Cayenne project at SourceForge is dedicated to hosting a legacy 1.2 release. For up to date releases please visit http://cayenne.apache.org.
Cayenne Release Notes 1.2.4 Date: October 10, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-689 "Null ObjectId" exception from DataContext.localObject() CAY-770 bug / memory leak in DispatchQueue and EventManager CAY-796 Deserialization of DataContext fails when useSharedCache is false CAY-818 Frontbase NUMBERIC type mapping typo CAY-832 enum-mapped columns improperly handled in in expressions CAY-863 Object property unexpectedly set to null through forceMergeWithSnapshot CAY-872 Potential bug deleting uncommited objects from a nested DataContext Cayenne Release Notes 1.2.3 Date: May 16, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-597 XML Encoder with Mapping outputs incorrect XML CAY-741 Indexing entities with inheritance across datamaps CAY-743 Reordering mappings from domain in xml resulting in StackOverflowException CAY-750 Stored procedures without parameters fail on Postgres 8 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-763 XML Deserialization fails on relationships when using a mapping file 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-778 Cayenne jar manifest lists project.version as "cayenne" CAY-781 Bug in CayenneDataObject.readNestedProperty 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() Cayenne Release Notes 1.2.2 Date: January 18, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-565 LRUMap NPE CAY-652 Exception with Tomcat's session restore capability CAY-653 overriding setPersistentState() in unreliable in three tier environment with CayenneContext Cayenne Release Notes 1.2.1 Date: August 30, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-639JDBC datatype of MySQL INT UNSIGNED is mapped as java.lang.Integer should be java.lang.Long CAY-617ROP: shared session functionality over XMPP is broken CAY-614ToManyList contains references to transient objects CAY-609Modeler prevents intermediate prefetch creation CAY-608Prefetch validation incorrectly reports error on multi-step prefetches CAY-607Long query name or qualifier expand query text field off screen CAY-603QueryChain.isFetchingDataRows() incorrectly returns "false" - must be "true" all the time CAY-601Problem resolving relationships in nested DataContext Cayenne Release Notes 1.2 final Date: July 16, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes since RC2: * New Remote Object Persistence Tutorial Bug Fixes since RC2: CAY-592Modifying an object that has a to one relationship to an object that uses inheritance, breaks the relationship. CAY-551Unregistering objects is not cleaning up the context correctly CAY-585Cayenne uses incorrect ObjectID in some situations, resulting in inability to resolve hollow object CAY-588Sybase PK generation problem CAY-595Cayenne can fail (optimistic locking exception) when deleting a record that was just inserted/commited to the DB CAY-582org.objectstyle.cayenne.property.FieldAccessor accesses private class fields with same name as relationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-579Incorrect permissions on modeler.sh on Mac CAY-587Plist serialization of empty strings is incorrect Cayenne Release Notes 1.2 RC2 (release candidate) Date: June 23, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes: * New completely rewritten Quick Start tutorial. Bug Fixes: CAY-556Add {excerpt} sections to all doc chapters with children CAY-570Broken incremental list local cache (cayenne-rop) CAY-575Peer CayenneContexts on the remote client do not synchronize changes with each other - bug in ClientChannel CAY-562Modeler Class Generation Inconsistencies CAY-563NPE when syncing ObjEntity w/out DbEntity CAY-564dataport exclude/include filters ignored CAY-555Chapter ordering problem CAY-566"To Dep PK" checkbox is incorrectly checked when mapping DbRelationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-571DataRow Hessian serialization doesn't work CAY-572SQLTemplate.queryWithParameters() loses cache key CAY-573Deadlock involving connection pool, IncrementalFaultList, and DataRowStore Cayenne Release Notes 1.2 RC1 (release candidate) Date: 05/31/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes: CAY-524Stress Testing Cayenne CAY-5251.2 Release Profiling and Optimization CAY-336EO FetchSpecs don't import correctly CAY-415CayenneModeler ClassCastException on save CAY-326Modeler not descriptive in many-to-many issues CAY-557Rollback not processed correctly on optimistic locking exceptions CAY-469An issue with EOFetchSpecification import CAY-363Global optimistic locking update does not update attributes/relationships CAY-559JDBC Boolean mapping to DB2 problem Cayenne Release Notes 1.2 B3 (beta) Date: 05/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Modeler Improvements: * More options added to the "Advanced" mode panel of the class generator * Fixed early project closing when a new project is opened - now if the new project selection is canceled, currently opened project stays opened. * Fixed refreshing of the "Recent Files" menu. Bug Fixes: CAY-515XMLDecoder doesn't work with collections of leaf objects when mapping descriptor is used CAY-516XMLDecoder + Mapping Descriptor - ignores property 'attribute' settings CAY-519XMLDecoder + Mapping File: exception on decoding a collection of non-entities CAY-518"attribute.type" contains invalid character: [ CAY-521Instantiation of wrong Classes if more the 1 class has the same name (within different packages) CAY-531ObjectDetachOperation not resolving faults, resulting in invalid client-side objects. CAY-532Modeler Client Class Generator fails to open with an exception CAY-544validateForSave is called on phantoms with to-one relationships CAY-207ExtendedTypes don't work properly with entity subclasses CAY-542Re-registered objects lose their relationships CAY-545Paginated list - connection is committed before the result set is read CAY-546derby and blob/clob larger than 1MB CAY-548remove uncomitted flattened many-to-many CAY-517Omission in PropertyUtils - no support for converting String to JDK 1.5 Enum CAY-502Select/deselect all tables on Generate Schema panel CAY-191Datatypes of 'Source' and 'Target' of joins should match CAY-513Code Generation - UI table header not displaying property CAY-235support for Ingres database CAY-547Deleting new objects leaves null object in context. CAY-533"Create Derived DbEntity"-button has wrong tooltip CAY-537TypesMapping.getSqlTypeByJava ignores primitives CAY-528NullPointer Execption by deleting a Class Cayenne Release Notes 1.2 B2 (beta) Date: 04/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes CAY-500To-one relationships are broken on the client CAY-501committing dependent relationships result in "Some parts of FK are missing in snapshot, join:" error CAY-503Uniquing broken CAY-497RemoteIncrementalFaultList used in paginated client queries throws IllegalArgumentException when page size exceeds list size CAY-496RemoteIncrementalFaultList used in paginated client queries throws CayenneRuntimeException when list size is equal to page isze CAY-495RemoteIncrementalFaultList used in paginated client queries throws an indexoutofbound exception when list size is divisable by page size CAY-498ObjectId is TEMP after commit to database CAY-499NPE on prefetching with shared cache CAY-201Modeler generate db schema doesn't properly handle post-Oracle 8 TIMESTAMP fields CAY-494When "Create ObjEntity" button is clicked for the same DbEntity three times in a row, CayenneModeler hangs CAY-487DataPort bugs and improvements CAY-488Cayenne Modeler Support for Client Class Generation Cayenne Release Notes 1.2 B1 (beta) Date: 04/06/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * DataObjectUtils.objectForQuery(..) now returns Object instead of DataObject to accomodate DataRows, Persistent objects, etc. If you are using this method, you may need to use a cast. * "opp" package and all classes whose names started with OPP* were renamed. Check a 'web.xml' descriptor and change the following configuration parameters to reflect the new names: - cayenne.OPPRemoteService.EventBridge.factory to cayenne.RemoteService.EventBridge.factory - org.objectstyle.cayenne.opp.hessian.HessianServlet to org.objectstyle.cayenne.remote.hessian.service.HessianServlet * WebApplicationListener and WebApplicationContextProvider are deprecated. Now the official choice for webapp configuration is WebApplicationContextFilter. Still users are free to use custom listeners if they choose to do so, i.e. the deprecation is done to reduce confusion regarding the choices, not because the listener approach doesn't work. * CAY-471Nested DataContexts - change notifications * CAY-474Delete Rules in remote CayenneContext * CAY-485Modeler gives cryptic method in alert box when user tries to create classes * CAY-473Better caching in remote CayenneContext * CAY-472Remoting Layer: Hessian sessions and session timeouts * CAY-491Support Schemas for HSQLDB 1.8 during schema generation * CAY-479Reverse engineer does not load target FKs on partial import (in fact this was already fixed in M12) * CAY-490On client class generation, cgen should automatically filter out entities that are explicitly not supported on the client * CAY-391Exposing Primary Key to objEntity from dbEntity and then synching * CAY-346Selection moves to next entity on sync * CAY-484Add missing toolbar to the DbEntity panel Cayenne Release Notes 1.2 M12 milestone Date: 3/23/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Nested DataContext commits. * Modeler features platform-native keyboard shortcuts. I.e. Mac users will no longer have to figure out where the "Ctrl" key is located. Command-S will save the project. * Added FK constraints support to MySQLAdapter. It is enabled automatically if the AutoAdapter detects that InnoDB table type is default. I.e. if you want it to operate in a DB-independent fashion, do not expicitly set MySQLAdapter in the Modeler and let Cayenne guess it. * Support for custom cgen templates located in jar files. Prior to M12 custom templates were only accessible if as files in the local filesystem. * SingleObjectQuery is renamed to ObjectIdQuery to reflect the fact that it supports data rows as well. For documentation see http://objectstyle.org/confluence/display/CAY/ObjectIdQuery * First cut of the new IngresAdapter. Bugs Fixed: CAY-470Algorithm for flushing changes from child nested DataContext to parent CAY-482there can be only 254 ids created *within the same millisecond CAY-446Commit operation should respect existing thread-bound transactions CAY-448NPE when shutting down DataDomain CAY-465DataDomain deletion results in menus in inconsistent state CAY-461Package name not prepended on import CAY-347Entity Tabs and Delete button inconsistencies CAY-464Hanging/infinite-loop problem when issuing a non-selecting SQL command against Oracle 8.1.6 CAY-449SingleObjectQuery glitches CAY-170Class Generation Bug CAY-450Oracle fetch limit syntax conflicts with ordering CAY-407JOINT_PREFETCH_SEMANTICS + in-memory DISTINCT = incorrect results CAY-284Allow for mix of null and non null attributes for compound FK relationships CAY-462Incorrect tool tip on "Create Derived DbEntity" CAY-463Improved DbEntity icons Cayenne Release Notes 1.2 M11 milestone Date: 2/13/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-439 Ensure the same connection is (re)used within a thread transaction for a given DataNode. Among other things this improvement makes it possible to execute arbitrary queries/updates inside TransactionDelegate, with a guarantee that they are a part of the the same transaction as the one used by Cayenne to commit objects. * CAY-442 Supporting list parameters in SQLTemplate #bind directive * CAY-380 DataContext.localObjects() is deprecated and replaced with a new method DataContext.localObject(ObjectId, Persistent) that supports objects in MODIFIED and DELETED state. * An initial PARTIAL implementation of the nested DataContexts feature - nested DataContext can be created and objects can be selected through a chain of contexts. However commit is still not implemented. * GenericSelectQuery is deprecated. All constants it declares are moved to a new interface QueryMetadata. * To force refresh of cached query results, one of the two new cache policies should be used instead of "setRefreshingObjects(..)" ("setRefreshingObjects" should only be used for its original purpose - refreshing individual objects, not list contents). Also check out the new caching page in documentation: http://objectstyle.org/confluence/display/CAYDOC/Caching+Query+Results * Addressing concurrency issues in Derby PK generator. * Speeding up very slow Modeler attribute and relationship operations. * "org.objectstyle.cayenne.opp.OPPChannel" is replaced by a different interface - "org.objectstyle.cayenne.DataChannel". Previous OPPChannel messaging-based API made little sense in the local application context. Note that this does NOT affect 99.99% of the users. * DataContextDelegate changes: "willPerformSelect" method is deprecated, instead two methods added: "willPerformQuery" (for selecting queries) and "willPerformGenericQuery" (for all other queries). * Implementation of QueryEngine by DataContext is deprecated. But now DataContext implements DataChannel and ObjectContext interfaces instead. * Removed 'performNonSelectingQuery' method from ObjectContext and CayenneContext. It is redundant. Use 'performGenericQuery(query).getFirstUpdateCounts(query)' instead. * CAY-440 Partial support for one-to-many relationship with a source column that is not a PK. * A number of changes to Cayenne stack that should not affect 99% of the users: - QueryMetadata interface that decouples query object from its runtime execution parameters - wider use of ClassDescriptors, not only in remote contexts, but in the DataContext as well - cleaner decoupled access stack chain, with fewer cross-layer dependencies. Communication between layers is done using specialized Queries. Bugs Fixed: CAY-433 support for JDK 1.5 enums that are inner classes. CAY-418CayenneDataObject.readNestedProperty stumbles on POJO paths CAY-430Cayenne expression evaluation stumbles on java.util.Maps. CAY-422Deferred propagated key error on M10 CAY-417Prefetching one-to-one throws an exception CAY-420TypesMapping.getSqlTypeByJava(byte[]) doesn't work CAY-416batch updated -1 rows CAY-427DataDomainView.java--label truncation (Container-Managed Transactions) CAY-428AdapterView -- label truncation; requires changing FormLayout setting CAY-426Label truncation in DBEntityTab; change FormLayout column values CAY-409XMLEncoder drops synthetic root for singleton collections CAY-425ObjEntityTab.java--add tooltip to "Sync" button; correct button size in layout CAY-424Tooltips for all toolbar buttons in Modeler CAY-423ShortDescription misspelled in cayennemodeler-string.properties Cayenne Release Notes 1.2 M10 milestone Date: 01/05/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Fixed cross-platform CayenneModeler startup issue. * MacOSX CayenneModeler will now use Aqua look and feel by default. If you already used Cayenne on Mac, you may need to delete the old preferences. Go to "/Users/username/.cayenne/modeler.preferences" and remve the following lines: Editor.lookAndFeel=... Editor.theme=... * New method: DataObjectUtils.objectForQuery(DataContext, Query) * Remote Object Persistence: - added 'localObjects' to ObjectContext interface. * SQLTemplate no longer requires users to specify whether it is selecting or not. This information is really redundant and can be determined from JDBC in runtime. FrontBase note: you will need FrontBase JDBC driver newer than version 2.5.2. Older driver will not work due to this change. Other Bugs Fixed: * CayenneModeler doesn't react to change in adapter name. * CAY-410Endless loop on remote notifications * CAY-374Generate explicit error message instead of silently ignoring lack of support for Generated columns * CAY-413DataMaps and DataNodes must be alphabetically sorted in the Modeler and cayenne.xml * CAY-408cayenne.xml not found in servlet context path though it is there * CAY-403Incorrect FK statement during schema generation for cross-DB relationships Cayenne Release Notes 1.2 M9 milestone Date: 12/14/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Generated/Identity Columns - http://objectstyle.org/confluence/display/CAY/Generated+Columns - Derby support for generated columns - CAY-361 Modeler now allows to specify generated columns for PK only. Non-pk column can't be generated. - CAY-291Implement support for auto-pks propagation to dependent entities * Custom queries. - Query lifecycle API is simplified. - It is now possible to run any kind of query (including custom and one that is not a GenericSelectQuery) via a DataContext and obtain the results via 'performQuery'. - QueryChain, SingleObjectQuery, RelationshipQuery, NamedQuery can now be used with DataContext. * Native versions of the Modeler for Windows and Mac OS X (CayenneModeler.exe, CayenneModeler.app). * CAY-405 Generic Persistent Object * DataDomain now implements OPPChannel. * "DataContextFactory.createDataContext" method signature change. Previously introduced "DataContextFactory.createDataContext(QueryEngine, ObjectStore)" is replaced with "DataContextFactory.createDataContext(OPPChannel, ObjectStore)". The change of the custom factories should be trivial, as DataContext now has a corresponding constructor and DataDomain implements OPPChannel. * Oracle DATE type is now reverse engineered by default as JDBC TIMESTAMP, as it can store both date and time info. * DbRelationship.srcFkSnapshotWithTargetSnapshot(..) and DbRelationship.srcPkSnapshotWithTargetSnapshot no longer throw an exception when null values are found in primary key snapshot, recognizing that key generation may be deferred (case of DB-generated keys). * Portable ObjectId: ObjectId is now used instead of recently introduced GlobalID within ObjectContext space (i.e. removal of GlobalID only affects remote tier). Still there are substantial changes in the ObjectId itself. To make it portable across the network, we no longer use Java Class as the main key within the id. Instead ObjEntity name string is used for this purpose. UPGRADE NOTE: it wasn't possible to phase out some of the old ObjectId API via deprecation, so methods "getObjClass" and "getObjectClass" are removed completely. Constructors that take Class as the first argument are deprecated and will only work if entity naming follows CayenneModeler default conventions of using unqualified class name as the entity name. * Thread-bound Transactions: QueryEngine.performQueries(Collection,OperationObserver resultConsumer,Transaction) is deprecated and no longer used internally to further decouple layers in the access stack. Instead transaction initiator (either DataContext or a user) must bind an appropriate transaction before executing an operation (or use Transaction.performQueries(..) that does it internally). UPGRADE NOTE: This change only affects users who implemented custom transactions. * Bundled HSQLDB is upgraded from 1.7.3 to 1.8.0.2. Other Bugs Fixed: CAY-358MySQL InnoDB table issues with generated columns CAY-406HSQLDB stored procedure support (as much as HSQLDB itself supports them). CAY-355"validateForX" is called inconsistently Cayenne Release Notes 1.2 M8 milestone Date: 11/24/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Prefetching... CAY-285, CAY-296. For details see this article - http://objectstyle.org/confluence/display/CAY/Prefetching - Selecting queries store prefetches using PrefetchTreeNode. - joint prefetch API (addJointPrefetch, etc.) is removed from SelectQuery, SQLTemplate, ProcedureQuery. Instead Cayenne will try to guess prefetch strategy in runtime. Alternatively users can provide a hint about a desired strategy by changing the semantics of desired PrefetchTreeNode. * New FrontBaseAdapter, with support for BLOB/CLOB, batch updates, etc. * Support for batch updates on PostgreSQL. I am seeing almost 2x increase in speed for large inserts. * CAY-190Now calling "setFetchLimit" on a query is not just a hint to Cayenne on how to process a ResultSet in memory. It includes an appropriate LIMIT clause in generated SELECT SQL for Oracle, Postgres, FrontBase, Openbase, MySQL and HSQLDB databases, resulting in measurable performance increase. Cayenne Release Notes 1.2 M7 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * ObjectContext API: - ObjectContext graph events. - OPPChannel graph events (including remote) - commit/rollback renamed to look like DataContext ones - commitChanges/rollbackChanges - new revertChanges and flushChanges methods. - Runtime-customizable ClassDescriptors. - Auto-sorted relationship list - org.objectstyle.cayenne.util.IndexPropertyList. Currently supported in ObjectContext only, but should be easy to extend to DataContext. * Multi Tier API: - support for shared sessions (peer ObjectContexts controlled by different users share the same parent) - OPPConnector was renamed to OPPConnection (all implementors were renamed accordingly). - web.xml configuration is simplified (see HessianService Javadocs for details). WARINING: You must update your web.xml if you used HessianService with M6, check UPGRADE-NOTES for details. * CAY-395 - The meaning of SnapshotEvent "source" and "postedBy" attributes is reversed per CAY-395 for better efficiency. If you implemented custom listeners of SnapshotEvents, you may need to doublecheck their logic. From now on events use DataRowStore as source, and EventBridge or ObjectStore as postedBy, depending on whether this was a local or a remote event. I.e. the new structure is the opposite to what we used in 1.1. * Built in support for mapping int or character DB columns as JDK 1.5 Enums. No need to register special ExtendedTypes for your custom enums. * JDOM is no longer needed for XML (de)serialization - everything is done using JAXP classes bundled with JDK. * AutoAdapter is introduced. If you are using one of the standard DbAdapters shipped with Cayenne, it is no longer needed to enter it in the Modeler. Cayenne will automatically guess the right adapter from the database metadata in runtime. In CayenneModeler adapter field is moved to a separate tab, as now it doesn't have to be configured in most cases. * No longer storing or relying on ClassLoader stored in Configuration. Thread.currentThread().getContextClassLoader() is what Cayenne now uses internally. * Cayenne stack events are no longer sent via a shared "default" EventManager. Instead an EventManager instance is assigned to Configuration. * EventBridge supports multiple local EventSubjects. * Listener methods registered with EventManager no longer have to be public. Any non-public methods and non-public classes will work. This is nice for implementing listener methods without exposing them in the API (or using inner classes that didn't work before). * Support for ExtendedTypeFactory that among other things enables mapping of interface properties. Bugs Fixed: * Cayenne no longer includes Oracle "recycle bin" tables in reverse-engineering results (those are the tables with names like "BIN$04LhcpndanfgMAAAAAANPw==$0" that are "recycled" dropped tables. * CAY-392ConfigurationException on context reload in Tomcat * CAY-3961.2M6, nodeps & log4j trouble * CAY-397Update Java Package causes error dialog * CAY-372MySQL should drop tables "if exists" * CAY-353Keyboard navigation * CAY-393Change cgen Velocity singleton to VelocityEngine instances * CAY-398Compiler warnings in generated auto classes when using inheritance Cayenne Release Notes 1.2 M6 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Cayenne HEAD branch (i.e. 1.2) will no longer maintain JDK 1.3 comptibility. If JDK upgrade is not an option for you (e.g. you are on WebSphere 5.0), consider sticking with Cayenne 1.1 for the time being. * Cayenne no longer requires Jakarta BeanUtils. * Added support for ObjectIds in qualifier expressions * Changed AUTO_PK_TABLE default definition to include primary key constraint (somewhat related to CAY-245) * org.objectstyle.cayenne.map.MapObject is deprecated and removed from map package classes inheritance hierarchy. If you cast Cayenne mapping objects to MapObject, change the cast to CayenneMapEntry * A contract between Expression and Transformer in Expression.transform(..) is altered. Now Transformer must return Expression.PRUNED_NODE to indicate that a node subtree has to be removed. * Fixed UI bugs in query ordering and prefetch panels. * Deprecated explicit log levels in Query, OperantionHints and DataContext. * CAY-376 DataContext can be subclassed via DataContextFactory. * TempObjectId is deprecated. Superclass is used instead. See TempObjectId javadocs for migration hints. * PostgreSQLAdapter's default "BLOB" mapping is changed from "bytea" to "oid". See UPGRADE notes for details. * CAY-352Pruning during expression transforms is done incorrectly when expression contains nulls. * CAY-360Non-refreshed Named Queries in Modeler throw exception * CAY-386ExtendType doesn't workd with null Blobs (Postgresql) * CAY-382PropertyListSerialization string quoting - fix once and for all * CAY-385[PATCH] Use entrysets when key and value are desired * CAY-381Typos and grammar errors in the user guide * CAY-346Selection moves to next entity on sync * CAY-364Clicking on a non-selected cell takes two clicks * CAY-216Need to exclude System Classpath on Modeler startup * CAY-384Infinite Loop in equals method * CAY-373add importUtils.reserveType() method to reserve this.class type * CAY-371XML encoding / decoding API quirks * CAY-370XML encoding throws NPE if property is null * Multi Tier Progress: - relationships are done - commit/rollback work - added support for HTTP basic authentication to HessianConnector - arbitrary queries are available on the client (watch out - security becomes essential !!). - the following queries should work on the client: NamedQuery, RelationshipQuery, QueryChain, SelectQuery, SQLTemplate. Cayenne Release Notes 1.2 M5 milestone Date: July 22, 2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-79Improvements to Ant cgen task; new ClassGenerator functions * CAY-264 An early preview of distributed data contexts. * CAY-261 XML Encoder/Decoder - this feature is usable now, though still should be considered unstable. * DataPort Ant task is moved from examples to the main tree and is included with Antlib. * SQLTemplateExecutionPlan and SQLTemplateSelectExecutionPlan classes are removed from Cayenne. Keeping it in deprecated state is no longer possible due to SQLAction method signature changes. * A change in the order of loading resources via ResourceLocator (this includes cayenne.xml loading). Now custom classpath locations take precedence over the default one. * Changing default MySQL mapping of JDBC TIMESTAMP to be "DATETIME". This is a more sensible default as TIMESTAMP is autoinitialized by MySQL on insert. * SelectQuery resolves its prefetches during the routing phase. Users who did prefetch query filtering via DataContextDelegate must be aware of this change. Bugs Fixed: * Doing extra checks to prevent double regsitration of new objects - http://objectstyle.org/cayenne/lists/cayenne-devel/2005/07/0006.html * CAY-322cgen task cannot generate classes for cross-DataMap relationships * CAY-339PropertyListSerialization doesn't handle a plus (+) sign in a string and escape it. * CAY-320Boolean properties do not return Boolean.FALSE & Boolean.TRUE * CAY-325Clicking Project Validation errors no longer brings up the offending object * CAY-335HSQLDB Upgrade Breaks Preferences Handling in 1.2M4 * CAY-341Failing to insert into two different tables with identity primary keys on mssql within a single transaction * CAY-148Procedure Queries need result set descriptors * CAY-141ProcedureQuery must support all GenericSelectQuery features. * CAY-343ObjectStore.unregisterNewObjects() should not throw null pointer exception * CAY-303"Query has No Root" warning is shown incorrectly * CAY-345Modeler recreates deleted directories * CAY-327Cgen2 makepair=false doesn't properly set superclass/pkg * CAY-62Validation error dialog stays in front all the time * CAY-315classloader problem in dataport * CAY-334Compile error with JDK1.5 Cayenne Release Notes 1.2 M4 milestone Date: May 7, 2005 ============================================ Changes/New Features: CAY-301A number of Modeler visual improvements and bug fixes (also see CAY-211), including navigation history, entity toolbars, db entity synching with ObjEntities, etc. NOTE: relationships mapping is now done using an info button ("i") on the entity toolbar. CAY-183Adapter for Clouscape/Derby DB (Experimental. Only tested in embedded mode). CAY-312Antlib addition - now Cayenne Ant tasks can be imported as Antlibs Bugs Fixed: CAY-306/CAY-313Fixing API and build process to be more friendly when running under JDK 1.5 CAY-297deadlock between commit and external event CAY-308ObjectStore.processUpdatedSnapshots race condition with ObjectStore.resolveHollow CAY-299PostgreSQL selecting procedure results are processed incorrectly CAY-305hsqldb needs to ignore "db schema" namespace element on CREATE/DROP TABLE syntax CAY-310Calling <DataObject>.addTo<DataObject>List() with a null parameter crashes later in commitChanges() CAY-277ExpressionFactory.noMatchDbExp does not exist Cayenne Release Notes 1.2 Milesone (M3) Date: March 20, 2005 ============================================ Changes: * Support for "joint" prefetches in SelectQuery and SQLTemplate * SQLTemplate support for explicit DataRow columns naming that is different from SQL (via forth parameter in the #result directive) * support for DataContext "userProperties" map CAY-258 Support for specifying generated Java files encoding in the Modeler and cgen task CAY-276Optimistic locking support for delete CAY-15Support for prefetching of flattened relationships (via joint prefetches) CAY-287Postgres default PK generator is changed to use sequences Bugs Fixed: CAY-293Fetch Specs import from EOF. CAY-215resolveFault() needs to throw subclass of CayenneRuntimeException CAY-280Relaxed expression for BigDecimal CAY-290DataRow.createObjectId accepts nulls CAY-256InvalidateObject (also refetch) snapshot sync transient-izes object in other contexts CAY-295Certain preferences required a Modeler restart to be updated CAY-269DB2 throws when there are line breaks in SQLTemplate CAY-99modeler.bat file doesn't handle file paths with spaces CAY-281Cayenne Modeller Not Escaping Strings CAY-260Add javadoc for DataContext.deleteObject() stating NullPointerException thrown Cayenne Release Notes 1.2 Milesone (M2) Date: February 07 2005 ============================================ For the latest information go to the project web site at http://objectstyle.org/cayenne/ To browse individual bug reports, see http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes: - Removed almost all classes and methods deprecated in 1.1. - Changed ObjectId.replacementId API. If your code relies on replacementId (e.g. if you create custom ObjectIds), it is strongly advised that you switch to the new API (which It is actually simpler....) - Upgraded JDOM library to v. 1.0 - [CAY-82] Ant frontend for DbGenerator - Removed system CLASSPATH from Modeler startup scripts. - Thread-local static ClassLoader in Configuration. - Persistence by reachability (CAY-249, part 1) - Updated Expression BNF, replacing "scalarCharExpression" with "scalarExpression" - Unconditionally applying entity sorting on commit, even if DB does not support constraints. - BasicServletConfiguration is deprecated as it is redundant. Superclass has all the functionality needed. All its static methods are extracted into ServetUtil - Expanded deployment chapter of the user guide with extrav options (some existed before but were not documented). - Other documentation updates - [CAY-261 - Experimental] XML encoder/decoder (still very raw and virtually untested) - Full support for jTDS adapter. Bugs Fixed: CAY-246 ClassCastException on EOModel import with numeric password CAY-251 NPE on calling stored proc for SQL Server. CAY-259Error with national characters in DVModeler CAY-255ORA-01000: maximum open cursors exceeded CAY-33Add factory for Commons DBCP to be used as connection pool CAY-266deleteObject should be changed to deleteObjects CAY-252validateForSave NPE when data object has no DataNode maped CAY-206Thread Bound DataContext Retrieval in Servlet Spec 2.3 CAY-195Add method to CayenneDataObject to return it's ObjEntity CAY-268 EOModel import problem for entities with abstract superclasses and flattened relationships Cayenne Release Notes 1.2 Milesone (M1) Date: November 22, 2004 ============================================ Bugs Fixed: CAY-236gui application generates malformed xml. CAY-243Allow Cayenne PK generator to work over SQLServer identity columns. CAY-222Change CREATE statement for HSQLDB when Generating SQL.
Cayenne Release Notes 1.2.4 Date: October 10, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-689 "Null ObjectId" exception from DataContext.localObject() CAY-770 bug / memory leak in DispatchQueue and EventManager CAY-796 Deserialization of DataContext fails when useSharedCache is false CAY-818 Frontbase NUMBERIC type mapping typo CAY-832 enum-mapped columns improperly handled in in expressions CAY-863 Object property unexpectedly set to null through forceMergeWithSnapshot CAY-872 Potential bug deleting uncommited objects from a nested DataContext Cayenne Release Notes 1.2.3 Date: May 16, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-597 XML Encoder with Mapping outputs incorrect XML CAY-741 Indexing entities with inheritance across datamaps CAY-743 Reordering mappings from domain in xml resulting in StackOverflowException CAY-750 Stored procedures without parameters fail on Postgres 8 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-763 XML Deserialization fails on relationships when using a mapping file 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-778 Cayenne jar manifest lists project.version as "cayenne" CAY-781 Bug in CayenneDataObject.readNestedProperty 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() Cayenne Release Notes 1.2.2 Date: January 18, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-565 LRUMap NPE CAY-652 Exception with Tomcat's session restore capability CAY-653 overriding setPersistentState() in unreliable in three tier environment with CayenneContext Cayenne Release Notes 1.2.1 Date: August 30, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-639JDBC datatype of MySQL INT UNSIGNED is mapped as java.lang.Integer should be java.lang.Long CAY-617ROP: shared session functionality over XMPP is broken CAY-614ToManyList contains references to transient objects CAY-609Modeler prevents intermediate prefetch creation CAY-608Prefetch validation incorrectly reports error on multi-step prefetches CAY-607Long query name or qualifier expand query text field off screen CAY-603QueryChain.isFetchingDataRows() incorrectly returns "false" - must be "true" all the time CAY-601Problem resolving relationships in nested DataContext Cayenne Release Notes 1.2 final Date: July 16, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes since RC2: * New Remote Object Persistence Tutorial Bug Fixes since RC2: CAY-592Modifying an object that has a to one relationship to an object that uses inheritance, breaks the relationship. CAY-551Unregistering objects is not cleaning up the context correctly CAY-585Cayenne uses incorrect ObjectID in some situations, resulting in inability to resolve hollow object CAY-588Sybase PK generation problem CAY-595Cayenne can fail (optimistic locking exception) when deleting a record that was just inserted/commited to the DB CAY-582org.objectstyle.cayenne.property.FieldAccessor accesses private class fields with same name as relationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-579Incorrect permissions on modeler.sh on Mac CAY-587Plist serialization of empty strings is incorrect Cayenne Release Notes 1.2 RC2 (release candidate) Date: June 23, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes: * New completely rewritten Quick Start tutorial. Bug Fixes: CAY-556Add {excerpt} sections to all doc chapters with children CAY-570Broken incremental list local cache (cayenne-rop) CAY-575Peer CayenneContexts on the remote client do not synchronize changes with each other - bug in ClientChannel CAY-562Modeler Class Generation Inconsistencies CAY-563NPE when syncing ObjEntity w/out DbEntity CAY-564dataport exclude/include filters ignored CAY-555Chapter ordering problem CAY-566"To Dep PK" checkbox is incorrectly checked when mapping DbRelationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-571DataRow Hessian serialization doesn't work CAY-572SQLTemplate.queryWithParameters() loses cache key CAY-573Deadlock involving connection pool, IncrementalFaultList, and DataRowStore Cayenne Release Notes 1.2 RC1 (release candidate) Date: 05/31/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes: CAY-524Stress Testing Cayenne CAY-5251.2 Release Profiling and Optimization CAY-336EO FetchSpecs don't import correctly CAY-415CayenneModeler ClassCastException on save CAY-326Modeler not descriptive in many-to-many issues CAY-557Rollback not processed correctly on optimistic locking exceptions CAY-469An issue with EOFetchSpecification import CAY-363Global optimistic locking update does not update attributes/relationships CAY-559JDBC Boolean mapping to DB2 problem Cayenne Release Notes 1.2 B3 (beta) Date: 05/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Modeler Improvements: * More options added to the "Advanced" mode panel of the class generator * Fixed early project closing when a new project is opened - now if the new project selection is canceled, currently opened project stays opened. * Fixed refreshing of the "Recent Files" menu. Bug Fixes: CAY-515XMLDecoder doesn't work with collections of leaf objects when mapping descriptor is used CAY-516XMLDecoder + Mapping Descriptor - ignores property 'attribute' settings CAY-519XMLDecoder + Mapping File: exception on decoding a collection of non-entities CAY-518"attribute.type" contains invalid character: [ CAY-521Instantiation of wrong Classes if more the 1 class has the same name (within different packages) CAY-531ObjectDetachOperation not resolving faults, resulting in invalid client-side objects. CAY-532Modeler Client Class Generator fails to open with an exception CAY-544validateForSave is called on phantoms with to-one relationships CAY-207ExtendedTypes don't work properly with entity subclasses CAY-542Re-registered objects lose their relationships CAY-545Paginated list - connection is committed before the result set is read CAY-546derby and blob/clob larger than 1MB CAY-548remove uncomitted flattened many-to-many CAY-517Omission in PropertyUtils - no support for converting String to JDK 1.5 Enum CAY-502Select/deselect all tables on Generate Schema panel CAY-191Datatypes of 'Source' and 'Target' of joins should match CAY-513Code Generation - UI table header not displaying property CAY-235support for Ingres database CAY-547Deleting new objects leaves null object in context. CAY-533"Create Derived DbEntity"-button has wrong tooltip CAY-537TypesMapping.getSqlTypeByJava ignores primitives CAY-528NullPointer Execption by deleting a Class Cayenne Release Notes 1.2 B2 (beta) Date: 04/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes CAY-500To-one relationships are broken on the client CAY-501committing dependent relationships result in "Some parts of FK are missing in snapshot, join:" error CAY-503Uniquing broken CAY-497RemoteIncrementalFaultList used in paginated client queries throws IllegalArgumentException when page size exceeds list size CAY-496RemoteIncrementalFaultList used in paginated client queries throws CayenneRuntimeException when list size is equal to page isze CAY-495RemoteIncrementalFaultList used in paginated client queries throws an indexoutofbound exception when list size is divisable by page size CAY-498ObjectId is TEMP after commit to database CAY-499NPE on prefetching with shared cache CAY-201Modeler generate db schema doesn't properly handle post-Oracle 8 TIMESTAMP fields CAY-494When "Create ObjEntity" button is clicked for the same DbEntity three times in a row, CayenneModeler hangs CAY-487DataPort bugs and improvements CAY-488Cayenne Modeler Support for Client Class Generation Cayenne Release Notes 1.2 B1 (beta) Date: 04/06/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * DataObjectUtils.objectForQuery(..) now returns Object instead of DataObject to accomodate DataRows, Persistent objects, etc. If you are using this method, you may need to use a cast. * "opp" package and all classes whose names started with OPP* were renamed. Check a 'web.xml' descriptor and change the following configuration parameters to reflect the new names: - cayenne.OPPRemoteService.EventBridge.factory to cayenne.RemoteService.EventBridge.factory - org.objectstyle.cayenne.opp.hessian.HessianServlet to org.objectstyle.cayenne.remote.hessian.service.HessianServlet * WebApplicationListener and WebApplicationContextProvider are deprecated. Now the official choice for webapp configuration is WebApplicationContextFilter. Still users are free to use custom listeners if they choose to do so, i.e. the deprecation is done to reduce confusion regarding the choices, not because the listener approach doesn't work. * CAY-471Nested DataContexts - change notifications * CAY-474Delete Rules in remote CayenneContext * CAY-485Modeler gives cryptic method in alert box when user tries to create classes * CAY-473Better caching in remote CayenneContext * CAY-472Remoting Layer: Hessian sessions and session timeouts * CAY-491Support Schemas for HSQLDB 1.8 during schema generation * CAY-479Reverse engineer does not load target FKs on partial import (in fact this was already fixed in M12) * CAY-490On client class generation, cgen should automatically filter out entities that are explicitly not supported on the client * CAY-391Exposing Primary Key to objEntity from dbEntity and then synching * CAY-346Selection moves to next entity on sync * CAY-484Add missing toolbar to the DbEntity panel Cayenne Release Notes 1.2 M12 milestone Date: 3/23/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Nested DataContext commits. * Modeler features platform-native keyboard shortcuts. I.e. Mac users will no longer have to figure out where the "Ctrl" key is located. Command-S will save the project. * Added FK constraints support to MySQLAdapter. It is enabled automatically if the AutoAdapter detects that InnoDB table type is default. I.e. if you want it to operate in a DB-independent fashion, do not expicitly set MySQLAdapter in the Modeler and let Cayenne guess it. * Support for custom cgen templates located in jar files. Prior to M12 custom templates were only accessible if as files in the local filesystem. * SingleObjectQuery is renamed to ObjectIdQuery to reflect the fact that it supports data rows as well. For documentation see http://objectstyle.org/confluence/display/CAY/ObjectIdQuery * First cut of the new IngresAdapter. Bugs Fixed: CAY-470Algorithm for flushing changes from child nested DataContext to parent CAY-482there can be only 254 ids created *within the same millisecond CAY-446Commit operation should respect existing thread-bound transactions CAY-448NPE when shutting down DataDomain CAY-465DataDomain deletion results in menus in inconsistent state CAY-461Package name not prepended on import CAY-347Entity Tabs and Delete button inconsistencies CAY-464Hanging/infinite-loop problem when issuing a non-selecting SQL command against Oracle 8.1.6 CAY-449SingleObjectQuery glitches CAY-170Class Generation Bug CAY-450Oracle fetch limit syntax conflicts with ordering CAY-407JOINT_PREFETCH_SEMANTICS + in-memory DISTINCT = incorrect results CAY-284Allow for mix of null and non null attributes for compound FK relationships CAY-462Incorrect tool tip on "Create Derived DbEntity" CAY-463Improved DbEntity icons Cayenne Release Notes 1.2 M11 milestone Date: 2/13/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-439 Ensure the same connection is (re)used within a thread transaction for a given DataNode. Among other things this improvement makes it possible to execute arbitrary queries/updates inside TransactionDelegate, with a guarantee that they are a part of the the same transaction as the one used by Cayenne to commit objects. * CAY-442 Supporting list parameters in SQLTemplate #bind directive * CAY-380 DataContext.localObjects() is deprecated and replaced with a new method DataContext.localObject(ObjectId, Persistent) that supports objects in MODIFIED and DELETED state. * An initial PARTIAL implementation of the nested DataContexts feature - nested DataContext can be created and objects can be selected through a chain of contexts. However commit is still not implemented. * GenericSelectQuery is deprecated. All constants it declares are moved to a new interface QueryMetadata. * To force refresh of cached query results, one of the two new cache policies should be used instead of "setRefreshingObjects(..)" ("setRefreshingObjects" should only be used for its original purpose - refreshing individual objects, not list contents). Also check out the new caching page in documentation: http://objectstyle.org/confluence/display/CAYDOC/Caching+Query+Results * Addressing concurrency issues in Derby PK generator. * Speeding up very slow Modeler attribute and relationship operations. * "org.objectstyle.cayenne.opp.OPPChannel" is replaced by a different interface - "org.objectstyle.cayenne.DataChannel". Previous OPPChannel messaging-based API made little sense in the local application context. Note that this does NOT affect 99.99% of the users. * DataContextDelegate changes: "willPerformSelect" method is deprecated, instead two methods added: "willPerformQuery" (for selecting queries) and "willPerformGenericQuery" (for all other queries). * Implementation of QueryEngine by DataContext is deprecated. But now DataContext implements DataChannel and ObjectContext interfaces instead. * Removed 'performNonSelectingQuery' method from ObjectContext and CayenneContext. It is redundant. Use 'performGenericQuery(query).getFirstUpdateCounts(query)' instead. * CAY-440 Partial support for one-to-many relationship with a source column that is not a PK. * A number of changes to Cayenne stack that should not affect 99% of the users: - QueryMetadata interface that decouples query object from its runtime execution parameters - wider use of ClassDescriptors, not only in remote contexts, but in the DataContext as well - cleaner decoupled access stack chain, with fewer cross-layer dependencies. Communication between layers is done using specialized Queries. Bugs Fixed: CAY-433 support for JDK 1.5 enums that are inner classes. CAY-418CayenneDataObject.readNestedProperty stumbles on POJO paths CAY-430Cayenne expression evaluation stumbles on java.util.Maps. CAY-422Deferred propagated key error on M10 CAY-417Prefetching one-to-one throws an exception CAY-420TypesMapping.getSqlTypeByJava(byte[]) doesn't work CAY-416batch updated -1 rows CAY-427DataDomainView.java--label truncation (Container-Managed Transactions) CAY-428AdapterView -- label truncation; requires changing FormLayout setting CAY-426Label truncation in DBEntityTab; change FormLayout column values CAY-409XMLEncoder drops synthetic root for singleton collections CAY-425ObjEntityTab.java--add tooltip to "Sync" button; correct button size in layout CAY-424Tooltips for all toolbar buttons in Modeler CAY-423ShortDescription misspelled in cayennemodeler-string.properties Cayenne Release Notes 1.2 M10 milestone Date: 01/05/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Fixed cross-platform CayenneModeler startup issue. * MacOSX CayenneModeler will now use Aqua look and feel by default. If you already used Cayenne on Mac, you may need to delete the old preferences. Go to "/Users/username/.cayenne/modeler.preferences" and remve the following lines: Editor.lookAndFeel=... Editor.theme=... * New method: DataObjectUtils.objectForQuery(DataContext, Query) * Remote Object Persistence: - added 'localObjects' to ObjectContext interface. * SQLTemplate no longer requires users to specify whether it is selecting or not. This information is really redundant and can be determined from JDBC in runtime. FrontBase note: you will need FrontBase JDBC driver newer than version 2.5.2. Older driver will not work due to this change. Other Bugs Fixed: * CayenneModeler doesn't react to change in adapter name. * CAY-410Endless loop on remote notifications * CAY-374Generate explicit error message instead of silently ignoring lack of support for Generated columns * CAY-413DataMaps and DataNodes must be alphabetically sorted in the Modeler and cayenne.xml * CAY-408cayenne.xml not found in servlet context path though it is there * CAY-403Incorrect FK statement during schema generation for cross-DB relationships Cayenne Release Notes 1.2 M9 milestone Date: 12/14/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Generated/Identity Columns - http://objectstyle.org/confluence/display/CAY/Generated+Columns - Derby support for generated columns - CAY-361 Modeler now allows to specify generated columns for PK only. Non-pk column can't be generated. - CAY-291Implement support for auto-pks propagation to dependent entities * Custom queries. - Query lifecycle API is simplified. - It is now possible to run any kind of query (including custom and one that is not a GenericSelectQuery) via a DataContext and obtain the results via 'performQuery'. - QueryChain, SingleObjectQuery, RelationshipQuery, NamedQuery can now be used with DataContext. * Native versions of the Modeler for Windows and Mac OS X (CayenneModeler.exe, CayenneModeler.app). * CAY-405 Generic Persistent Object * DataDomain now implements OPPChannel. * "DataContextFactory.createDataContext" method signature change. Previously introduced "DataContextFactory.createDataContext(QueryEngine, ObjectStore)" is replaced with "DataContextFactory.createDataContext(OPPChannel, ObjectStore)". The change of the custom factories should be trivial, as DataContext now has a corresponding constructor and DataDomain implements OPPChannel. * Oracle DATE type is now reverse engineered by default as JDBC TIMESTAMP, as it can store both date and time info. * DbRelationship.srcFkSnapshotWithTargetSnapshot(..) and DbRelationship.srcPkSnapshotWithTargetSnapshot no longer throw an exception when null values are found in primary key snapshot, recognizing that key generation may be deferred (case of DB-generated keys). * Portable ObjectId: ObjectId is now used instead of recently introduced GlobalID within ObjectContext space (i.e. removal of GlobalID only affects remote tier). Still there are substantial changes in the ObjectId itself. To make it portable across the network, we no longer use Java Class as the main key within the id. Instead ObjEntity name string is used for this purpose. UPGRADE NOTE: it wasn't possible to phase out some of the old ObjectId API via deprecation, so methods "getObjClass" and "getObjectClass" are removed completely. Constructors that take Class as the first argument are deprecated and will only work if entity naming follows CayenneModeler default conventions of using unqualified class name as the entity name. * Thread-bound Transactions: QueryEngine.performQueries(Collection,OperationObserver resultConsumer,Transaction) is deprecated and no longer used internally to further decouple layers in the access stack. Instead transaction initiator (either DataContext or a user) must bind an appropriate transaction before executing an operation (or use Transaction.performQueries(..) that does it internally). UPGRADE NOTE: This change only affects users who implemented custom transactions. * Bundled HSQLDB is upgraded from 1.7.3 to 1.8.0.2. Other Bugs Fixed: CAY-358MySQL InnoDB table issues with generated columns CAY-406HSQLDB stored procedure support (as much as HSQLDB itself supports them). CAY-355"validateForX" is called inconsistently Cayenne Release Notes 1.2 M8 milestone Date: 11/24/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Prefetching... CAY-285, CAY-296. For details see this article - http://objectstyle.org/confluence/display/CAY/Prefetching - Selecting queries store prefetches using PrefetchTreeNode. - joint prefetch API (addJointPrefetch, etc.) is removed from SelectQuery, SQLTemplate, ProcedureQuery. Instead Cayenne will try to guess prefetch strategy in runtime. Alternatively users can provide a hint about a desired strategy by changing the semantics of desired PrefetchTreeNode. * New FrontBaseAdapter, with support for BLOB/CLOB, batch updates, etc. * Support for batch updates on PostgreSQL. I am seeing almost 2x increase in speed for large inserts. * CAY-190Now calling "setFetchLimit" on a query is not just a hint to Cayenne on how to process a ResultSet in memory. It includes an appropriate LIMIT clause in generated SELECT SQL for Oracle, Postgres, FrontBase, Openbase, MySQL and HSQLDB databases, resulting in measurable performance increase. Cayenne Release Notes 1.2 M7 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * ObjectContext API: - ObjectContext graph events. - OPPChannel graph events (including remote) - commit/rollback renamed to look like DataContext ones - commitChanges/rollbackChanges - new revertChanges and flushChanges methods. - Runtime-customizable ClassDescriptors. - Auto-sorted relationship list - org.objectstyle.cayenne.util.IndexPropertyList. Currently supported in ObjectContext only, but should be easy to extend to DataContext. * Multi Tier API: - support for shared sessions (peer ObjectContexts controlled by different users share the same parent) - OPPConnector was renamed to OPPConnection (all implementors were renamed accordingly). - web.xml configuration is simplified (see HessianService Javadocs for details). WARINING: You must update your web.xml if you used HessianService with M6, check UPGRADE-NOTES for details. * CAY-395 - The meaning of SnapshotEvent "source" and "postedBy" attributes is reversed per CAY-395 for better efficiency. If you implemented custom listeners of SnapshotEvents, you may need to doublecheck their logic. From now on events use DataRowStore as source, and EventBridge or ObjectStore as postedBy, depending on whether this was a local or a remote event. I.e. the new structure is the opposite to what we used in 1.1. * Built in support for mapping int or character DB columns as JDK 1.5 Enums. No need to register special ExtendedTypes for your custom enums. * JDOM is no longer needed for XML (de)serialization - everything is done using JAXP classes bundled with JDK. * AutoAdapter is introduced. If you are using one of the standard DbAdapters shipped with Cayenne, it is no longer needed to enter it in the Modeler. Cayenne will automatically guess the right adapter from the database metadata in runtime. In CayenneModeler adapter field is moved to a separate tab, as now it doesn't have to be configured in most cases. * No longer storing or relying on ClassLoader stored in Configuration. Thread.currentThread().getContextClassLoader() is what Cayenne now uses internally. * Cayenne stack events are no longer sent via a shared "default" EventManager. Instead an EventManager instance is assigned to Configuration. * EventBridge supports multiple local EventSubjects. * Listener methods registered with EventManager no longer have to be public. Any non-public methods and non-public classes will work. This is nice for implementing listener methods without exposing them in the API (or using inner classes that didn't work before). * Support for ExtendedTypeFactory that among other things enables mapping of interface properties. Bugs Fixed: * Cayenne no longer includes Oracle "recycle bin" tables in reverse-engineering results (those are the tables with names like "BIN$04LhcpndanfgMAAAAAANPw==$0" that are "recycled" dropped tables. * CAY-392ConfigurationException on context reload in Tomcat * CAY-3961.2M6, nodeps & log4j trouble * CAY-397Update Java Package causes error dialog * CAY-372MySQL should drop tables "if exists" * CAY-353Keyboard navigation * CAY-393Change cgen Velocity singleton to VelocityEngine instances * CAY-398Compiler warnings in generated auto classes when using inheritance Cayenne Release Notes 1.2 M6 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Cayenne HEAD branch (i.e. 1.2) will no longer maintain JDK 1.3 comptibility. If JDK upgrade is not an option for you (e.g. you are on WebSphere 5.0), consider sticking with Cayenne 1.1 for the time being. * Cayenne no longer requires Jakarta BeanUtils. * Added support for ObjectIds in qualifier expressions * Changed AUTO_PK_TABLE default definition to include primary key constraint (somewhat related to CAY-245) * org.objectstyle.cayenne.map.MapObject is deprecated and removed from map package classes inheritance hierarchy. If you cast Cayenne mapping objects to MapObject, change the cast to CayenneMapEntry * A contract between Expression and Transformer in Expression.transform(..) is altered. Now Transformer must return Expression.PRUNED_NODE to indicate that a node subtree has to be removed. * Fixed UI bugs in query ordering and prefetch panels. * Deprecated explicit log levels in Query, OperantionHints and DataContext. * CAY-376 DataContext can be subclassed via DataContextFactory. * TempObjectId is deprecated. Superclass is used instead. See TempObjectId javadocs for migration hints. * PostgreSQLAdapter's default "BLOB" mapping is changed from "bytea" to "oid". See UPGRADE notes for details. * CAY-352Pruning during expression transforms is done incorrectly when expression contains nulls. * CAY-360Non-refreshed Named Queries in Modeler throw exception * CAY-386ExtendType doesn't workd with null Blobs (Postgresql) * CAY-382PropertyListSerialization string quoting - fix once and for all * CAY-385[PATCH] Use entrysets when key and value are desired * CAY-381Typos and grammar errors in the user guide * CAY-346Selection moves to next entity on sync * CAY-364Clicking on a non-selected cell takes two clicks * CAY-216Need to exclude System Classpath on Modeler startup * CAY-384Infinite Loop in equals method * CAY-373add importUtils.reserveType() method to reserve this.class type * CAY-371XML encoding / decoding API quirks * CAY-370XML encoding throws NPE if property is null * Multi Tier Progress: - relationships are done - commit/rollback work - added support for HTTP basic authentication to HessianConnector - arbitrary queries are available on the client (watch out - security becomes essential !!). - the following queries should work on the client: NamedQuery, RelationshipQuery, QueryChain, SelectQuery, SQLTemplate. Cayenne Release Notes 1.2 M5 milestone Date: July 22, 2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-79Improvements to Ant cgen task; new ClassGenerator functions * CAY-264 An early preview of distributed data contexts. * CAY-261 XML Encoder/Decoder - this feature is usable now, though still should be considered unstable. * DataPort Ant task is moved from examples to the main tree and is included with Antlib. * SQLTemplateExecutionPlan and SQLTemplateSelectExecutionPlan classes are removed from Cayenne. Keeping it in deprecated state is no longer possible due to SQLAction method signature changes. * A change in the order of loading resources via ResourceLocator (this includes cayenne.xml loading). Now custom classpath locations take precedence over the default one. * Changing default MySQL mapping of JDBC TIMESTAMP to be "DATETIME". This is a more sensible default as TIMESTAMP is autoinitialized by MySQL on insert. * SelectQuery resolves its prefetches during the routing phase. Users who did prefetch query filtering via DataContextDelegate must be aware of this change. Bugs Fixed: * Doing extra checks to prevent double regsitration of new objects - http://objectstyle.org/cayenne/lists/cayenne-devel/2005/07/0006.html * CAY-322cgen task cannot generate classes for cross-DataMap relationships * CAY-339PropertyListSerialization doesn't handle a plus (+) sign in a string and escape it. * CAY-320Boolean properties do not return Boolean.FALSE & Boolean.TRUE * CAY-325Clicking Project Validation errors no longer brings up the offending object * CAY-335HSQLDB Upgrade Breaks Preferences Handling in 1.2M4 * CAY-341Failing to insert into two different tables with identity primary keys on mssql within a single transaction * CAY-148Procedure Queries need result set descriptors * CAY-141ProcedureQuery must support all GenericSelectQuery features. * CAY-343ObjectStore.unregisterNewObjects() should not throw null pointer exception * CAY-303"Query has No Root" warning is shown incorrectly * CAY-345Modeler recreates deleted directories * CAY-327Cgen2 makepair=false doesn't properly set superclass/pkg * CAY-62Validation error dialog stays in front all the time * CAY-315classloader problem in dataport * CAY-334Compile error with JDK1.5 Cayenne Release Notes 1.2 M4 milestone Date: May 7, 2005 ============================================ Changes/New Features: CAY-301A number of Modeler visual improvements and bug fixes (also see CAY-211), including navigation history, entity toolbars, db entity synching with ObjEntities, etc. NOTE: relationships mapping is now done using an info button ("i") on the entity toolbar. CAY-183Adapter for Clouscape/Derby DB (Experimental. Only tested in embedded mode). CAY-312Antlib addition - now Cayenne Ant tasks can be imported as Antlibs Bugs Fixed: CAY-306/CAY-313Fixing API and build process to be more friendly when running under JDK 1.5 CAY-297deadlock between commit and external event CAY-308ObjectStore.processUpdatedSnapshots race condition with ObjectStore.resolveHollow CAY-299PostgreSQL selecting procedure results are processed incorrectly CAY-305hsqldb needs to ignore "db schema" namespace element on CREATE/DROP TABLE syntax CAY-310Calling <DataObject>.addTo<DataObject>List() with a null parameter crashes later in commitChanges() CAY-277ExpressionFactory.noMatchDbExp does not exist Cayenne Release Notes 1.2 Milesone (M3) Date: March 20, 2005 ============================================ Changes: * Support for "joint" prefetches in SelectQuery and SQLTemplate * SQLTemplate support for explicit DataRow columns naming that is different from SQL (via forth parameter in the #result directive) * support for DataContext "userProperties" map CAY-258 Support for specifying generated Java files encoding in the Modeler and cgen task CAY-276Optimistic locking support for delete CAY-15Support for prefetching of flattened relationships (via joint prefetches) CAY-287Postgres default PK generator is changed to use sequences Bugs Fixed: CAY-293Fetch Specs import from EOF. CAY-215resolveFault() needs to throw subclass of CayenneRuntimeException CAY-280Relaxed expression for BigDecimal CAY-290DataRow.createObjectId accepts nulls CAY-256InvalidateObject (also refetch) snapshot sync transient-izes object in other contexts CAY-295Certain preferences required a Modeler restart to be updated CAY-269DB2 throws when there are line breaks in SQLTemplate CAY-99modeler.bat file doesn't handle file paths with spaces CAY-281Cayenne Modeller Not Escaping Strings CAY-260Add javadoc for DataContext.deleteObject() stating NullPointerException thrown Cayenne Release Notes 1.2 Milesone (M2) Date: February 07 2005 ============================================ For the latest information go to the project web site at http://objectstyle.org/cayenne/ To browse individual bug reports, see http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes: - Removed almost all classes and methods deprecated in 1.1. - Changed ObjectId.replacementId API. If your code relies on replacementId (e.g. if you create custom ObjectIds), it is strongly advised that you switch to the new API (which It is actually simpler....) - Upgraded JDOM library to v. 1.0 - [CAY-82] Ant frontend for DbGenerator - Removed system CLASSPATH from Modeler startup scripts. - Thread-local static ClassLoader in Configuration. - Persistence by reachability (CAY-249, part 1) - Updated Expression BNF, replacing "scalarCharExpression" with "scalarExpression" - Unconditionally applying entity sorting on commit, even if DB does not support constraints. - BasicServletConfiguration is deprecated as it is redundant. Superclass has all the functionality needed. All its static methods are extracted into ServetUtil - Expanded deployment chapter of the user guide with extrav options (some existed before but were not documented). - Other documentation updates - [CAY-261 - Experimental] XML encoder/decoder (still very raw and virtually untested) - Full support for jTDS adapter. Bugs Fixed: CAY-246 ClassCastException on EOModel import with numeric password CAY-251 NPE on calling stored proc for SQL Server. CAY-259Error with national characters in DVModeler CAY-255ORA-01000: maximum open cursors exceeded CAY-33Add factory for Commons DBCP to be used as connection pool CAY-266deleteObject should be changed to deleteObjects CAY-252validateForSave NPE when data object has no DataNode maped CAY-206Thread Bound DataContext Retrieval in Servlet Spec 2.3 CAY-195Add method to CayenneDataObject to return it's ObjEntity CAY-268 EOModel import problem for entities with abstract superclasses and flattened relationships Cayenne Release Notes 1.2 Milesone (M1) Date: November 22, 2004 ============================================ Bugs Fixed: CAY-236gui application generates malformed xml. CAY-243Allow Cayenne PK generator to work over SQLServer identity columns. CAY-222Change CREATE statement for HSQLDB when Generating SQL.
Cayenne Release Notes 1.2.4 Date: October 10, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-689 "Null ObjectId" exception from DataContext.localObject() CAY-770 bug / memory leak in DispatchQueue and EventManager CAY-796 Deserialization of DataContext fails when useSharedCache is false CAY-818 Frontbase NUMBERIC type mapping typo CAY-832 enum-mapped columns improperly handled in in expressions CAY-863 Object property unexpectedly set to null through forceMergeWithSnapshot CAY-872 Potential bug deleting uncommited objects from a nested DataContext Cayenne Release Notes 1.2.3 Date: May 16, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-597 XML Encoder with Mapping outputs incorrect XML CAY-741 Indexing entities with inheritance across datamaps CAY-743 Reordering mappings from domain in xml resulting in StackOverflowException CAY-750 Stored procedures without parameters fail on Postgres 8 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-763 XML Deserialization fails on relationships when using a mapping file 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-778 Cayenne jar manifest lists project.version as "cayenne" CAY-781 Bug in CayenneDataObject.readNestedProperty 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() Cayenne Release Notes 1.2.2 Date: January 18, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-565 LRUMap NPE CAY-652 Exception with Tomcat's session restore capability CAY-653 overriding setPersistentState() in unreliable in three tier environment with CayenneContext Cayenne Release Notes 1.2.1 Date: August 30, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-639JDBC datatype of MySQL INT UNSIGNED is mapped as java.lang.Integer should be java.lang.Long CAY-617ROP: shared session functionality over XMPP is broken CAY-614ToManyList contains references to transient objects CAY-609Modeler prevents intermediate prefetch creation CAY-608Prefetch validation incorrectly reports error on multi-step prefetches CAY-607Long query name or qualifier expand query text field off screen CAY-603QueryChain.isFetchingDataRows() incorrectly returns "false" - must be "true" all the time CAY-601Problem resolving relationships in nested DataContext Cayenne Release Notes 1.2 final Date: July 16, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes since RC2: * New Remote Object Persistence Tutorial Bug Fixes since RC2: CAY-592Modifying an object that has a to one relationship to an object that uses inheritance, breaks the relationship. CAY-551Unregistering objects is not cleaning up the context correctly CAY-585Cayenne uses incorrect ObjectID in some situations, resulting in inability to resolve hollow object CAY-588Sybase PK generation problem CAY-595Cayenne can fail (optimistic locking exception) when deleting a record that was just inserted/commited to the DB CAY-582org.objectstyle.cayenne.property.FieldAccessor accesses private class fields with same name as relationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-579Incorrect permissions on modeler.sh on Mac CAY-587Plist serialization of empty strings is incorrect Cayenne Release Notes 1.2 RC2 (release candidate) Date: June 23, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes: * New completely rewritten Quick Start tutorial. Bug Fixes: CAY-556Add {excerpt} sections to all doc chapters with children CAY-570Broken incremental list local cache (cayenne-rop) CAY-575Peer CayenneContexts on the remote client do not synchronize changes with each other - bug in ClientChannel CAY-562Modeler Class Generation Inconsistencies CAY-563NPE when syncing ObjEntity w/out DbEntity CAY-564dataport exclude/include filters ignored CAY-555Chapter ordering problem CAY-566"To Dep PK" checkbox is incorrectly checked when mapping DbRelationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-571DataRow Hessian serialization doesn't work CAY-572SQLTemplate.queryWithParameters() loses cache key CAY-573Deadlock involving connection pool, IncrementalFaultList, and DataRowStore Cayenne Release Notes 1.2 RC1 (release candidate) Date: 05/31/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes: CAY-524Stress Testing Cayenne CAY-5251.2 Release Profiling and Optimization CAY-336EO FetchSpecs don't import correctly CAY-415CayenneModeler ClassCastException on save CAY-326Modeler not descriptive in many-to-many issues CAY-557Rollback not processed correctly on optimistic locking exceptions CAY-469An issue with EOFetchSpecification import CAY-363Global optimistic locking update does not update attributes/relationships CAY-559JDBC Boolean mapping to DB2 problem Cayenne Release Notes 1.2 B3 (beta) Date: 05/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Modeler Improvements: * More options added to the "Advanced" mode panel of the class generator * Fixed early project closing when a new project is opened - now if the new project selection is canceled, currently opened project stays opened. * Fixed refreshing of the "Recent Files" menu. Bug Fixes: CAY-515XMLDecoder doesn't work with collections of leaf objects when mapping descriptor is used CAY-516XMLDecoder + Mapping Descriptor - ignores property 'attribute' settings CAY-519XMLDecoder + Mapping File: exception on decoding a collection of non-entities CAY-518"attribute.type" contains invalid character: [ CAY-521Instantiation of wrong Classes if more the 1 class has the same name (within different packages) CAY-531ObjectDetachOperation not resolving faults, resulting in invalid client-side objects. CAY-532Modeler Client Class Generator fails to open with an exception CAY-544validateForSave is called on phantoms with to-one relationships CAY-207ExtendedTypes don't work properly with entity subclasses CAY-542Re-registered objects lose their relationships CAY-545Paginated list - connection is committed before the result set is read CAY-546derby and blob/clob larger than 1MB CAY-548remove uncomitted flattened many-to-many CAY-517Omission in PropertyUtils - no support for converting String to JDK 1.5 Enum CAY-502Select/deselect all tables on Generate Schema panel CAY-191Datatypes of 'Source' and 'Target' of joins should match CAY-513Code Generation - UI table header not displaying property CAY-235support for Ingres database CAY-547Deleting new objects leaves null object in context. CAY-533"Create Derived DbEntity"-button has wrong tooltip CAY-537TypesMapping.getSqlTypeByJava ignores primitives CAY-528NullPointer Execption by deleting a Class Cayenne Release Notes 1.2 B2 (beta) Date: 04/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes CAY-500To-one relationships are broken on the client CAY-501committing dependent relationships result in "Some parts of FK are missing in snapshot, join:" error CAY-503Uniquing broken CAY-497RemoteIncrementalFaultList used in paginated client queries throws IllegalArgumentException when page size exceeds list size CAY-496RemoteIncrementalFaultList used in paginated client queries throws CayenneRuntimeException when list size is equal to page isze CAY-495RemoteIncrementalFaultList used in paginated client queries throws an indexoutofbound exception when list size is divisable by page size CAY-498ObjectId is TEMP after commit to database CAY-499NPE on prefetching with shared cache CAY-201Modeler generate db schema doesn't properly handle post-Oracle 8 TIMESTAMP fields CAY-494When "Create ObjEntity" button is clicked for the same DbEntity three times in a row, CayenneModeler hangs CAY-487DataPort bugs and improvements CAY-488Cayenne Modeler Support for Client Class Generation Cayenne Release Notes 1.2 B1 (beta) Date: 04/06/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * DataObjectUtils.objectForQuery(..) now returns Object instead of DataObject to accomodate DataRows, Persistent objects, etc. If you are using this method, you may need to use a cast. * "opp" package and all classes whose names started with OPP* were renamed. Check a 'web.xml' descriptor and change the following configuration parameters to reflect the new names: - cayenne.OPPRemoteService.EventBridge.factory to cayenne.RemoteService.EventBridge.factory - org.objectstyle.cayenne.opp.hessian.HessianServlet to org.objectstyle.cayenne.remote.hessian.service.HessianServlet * WebApplicationListener and WebApplicationContextProvider are deprecated. Now the official choice for webapp configuration is WebApplicationContextFilter. Still users are free to use custom listeners if they choose to do so, i.e. the deprecation is done to reduce confusion regarding the choices, not because the listener approach doesn't work. * CAY-471Nested DataContexts - change notifications * CAY-474Delete Rules in remote CayenneContext * CAY-485Modeler gives cryptic method in alert box when user tries to create classes * CAY-473Better caching in remote CayenneContext * CAY-472Remoting Layer: Hessian sessions and session timeouts * CAY-491Support Schemas for HSQLDB 1.8 during schema generation * CAY-479Reverse engineer does not load target FKs on partial import (in fact this was already fixed in M12) * CAY-490On client class generation, cgen should automatically filter out entities that are explicitly not supported on the client * CAY-391Exposing Primary Key to objEntity from dbEntity and then synching * CAY-346Selection moves to next entity on sync * CAY-484Add missing toolbar to the DbEntity panel Cayenne Release Notes 1.2 M12 milestone Date: 3/23/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Nested DataContext commits. * Modeler features platform-native keyboard shortcuts. I.e. Mac users will no longer have to figure out where the "Ctrl" key is located. Command-S will save the project. * Added FK constraints support to MySQLAdapter. It is enabled automatically if the AutoAdapter detects that InnoDB table type is default. I.e. if you want it to operate in a DB-independent fashion, do not expicitly set MySQLAdapter in the Modeler and let Cayenne guess it. * Support for custom cgen templates located in jar files. Prior to M12 custom templates were only accessible if as files in the local filesystem. * SingleObjectQuery is renamed to ObjectIdQuery to reflect the fact that it supports data rows as well. For documentation see http://objectstyle.org/confluence/display/CAY/ObjectIdQuery * First cut of the new IngresAdapter. Bugs Fixed: CAY-470Algorithm for flushing changes from child nested DataContext to parent CAY-482there can be only 254 ids created *within the same millisecond CAY-446Commit operation should respect existing thread-bound transactions CAY-448NPE when shutting down DataDomain CAY-465DataDomain deletion results in menus in inconsistent state CAY-461Package name not prepended on import CAY-347Entity Tabs and Delete button inconsistencies CAY-464Hanging/infinite-loop problem when issuing a non-selecting SQL command against Oracle 8.1.6 CAY-449SingleObjectQuery glitches CAY-170Class Generation Bug CAY-450Oracle fetch limit syntax conflicts with ordering CAY-407JOINT_PREFETCH_SEMANTICS + in-memory DISTINCT = incorrect results CAY-284Allow for mix of null and non null attributes for compound FK relationships CAY-462Incorrect tool tip on "Create Derived DbEntity" CAY-463Improved DbEntity icons Cayenne Release Notes 1.2 M11 milestone Date: 2/13/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-439 Ensure the same connection is (re)used within a thread transaction for a given DataNode. Among other things this improvement makes it possible to execute arbitrary queries/updates inside TransactionDelegate, with a guarantee that they are a part of the the same transaction as the one used by Cayenne to commit objects. * CAY-442 Supporting list parameters in SQLTemplate #bind directive * CAY-380 DataContext.localObjects() is deprecated and replaced with a new method DataContext.localObject(ObjectId, Persistent) that supports objects in MODIFIED and DELETED state. * An initial PARTIAL implementation of the nested DataContexts feature - nested DataContext can be created and objects can be selected through a chain of contexts. However commit is still not implemented. * GenericSelectQuery is deprecated. All constants it declares are moved to a new interface QueryMetadata. * To force refresh of cached query results, one of the two new cache policies should be used instead of "setRefreshingObjects(..)" ("setRefreshingObjects" should only be used for its original purpose - refreshing individual objects, not list contents). Also check out the new caching page in documentation: http://objectstyle.org/confluence/display/CAYDOC/Caching+Query+Results * Addressing concurrency issues in Derby PK generator. * Speeding up very slow Modeler attribute and relationship operations. * "org.objectstyle.cayenne.opp.OPPChannel" is replaced by a different interface - "org.objectstyle.cayenne.DataChannel". Previous OPPChannel messaging-based API made little sense in the local application context. Note that this does NOT affect 99.99% of the users. * DataContextDelegate changes: "willPerformSelect" method is deprecated, instead two methods added: "willPerformQuery" (for selecting queries) and "willPerformGenericQuery" (for all other queries). * Implementation of QueryEngine by DataContext is deprecated. But now DataContext implements DataChannel and ObjectContext interfaces instead. * Removed 'performNonSelectingQuery' method from ObjectContext and CayenneContext. It is redundant. Use 'performGenericQuery(query).getFirstUpdateCounts(query)' instead. * CAY-440 Partial support for one-to-many relationship with a source column that is not a PK. * A number of changes to Cayenne stack that should not affect 99% of the users: - QueryMetadata interface that decouples query object from its runtime execution parameters - wider use of ClassDescriptors, not only in remote contexts, but in the DataContext as well - cleaner decoupled access stack chain, with fewer cross-layer dependencies. Communication between layers is done using specialized Queries. Bugs Fixed: CAY-433 support for JDK 1.5 enums that are inner classes. CAY-418CayenneDataObject.readNestedProperty stumbles on POJO paths CAY-430Cayenne expression evaluation stumbles on java.util.Maps. CAY-422Deferred propagated key error on M10 CAY-417Prefetching one-to-one throws an exception CAY-420TypesMapping.getSqlTypeByJava(byte[]) doesn't work CAY-416batch updated -1 rows CAY-427DataDomainView.java--label truncation (Container-Managed Transactions) CAY-428AdapterView -- label truncation; requires changing FormLayout setting CAY-426Label truncation in DBEntityTab; change FormLayout column values CAY-409XMLEncoder drops synthetic root for singleton collections CAY-425ObjEntityTab.java--add tooltip to "Sync" button; correct button size in layout CAY-424Tooltips for all toolbar buttons in Modeler CAY-423ShortDescription misspelled in cayennemodeler-string.properties Cayenne Release Notes 1.2 M10 milestone Date: 01/05/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Fixed cross-platform CayenneModeler startup issue. * MacOSX CayenneModeler will now use Aqua look and feel by default. If you already used Cayenne on Mac, you may need to delete the old preferences. Go to "/Users/username/.cayenne/modeler.preferences" and remve the following lines: Editor.lookAndFeel=... Editor.theme=... * New method: DataObjectUtils.objectForQuery(DataContext, Query) * Remote Object Persistence: - added 'localObjects' to ObjectContext interface. * SQLTemplate no longer requires users to specify whether it is selecting or not. This information is really redundant and can be determined from JDBC in runtime. FrontBase note: you will need FrontBase JDBC driver newer than version 2.5.2. Older driver will not work due to this change. Other Bugs Fixed: * CayenneModeler doesn't react to change in adapter name. * CAY-410Endless loop on remote notifications * CAY-374Generate explicit error message instead of silently ignoring lack of support for Generated columns * CAY-413DataMaps and DataNodes must be alphabetically sorted in the Modeler and cayenne.xml * CAY-408cayenne.xml not found in servlet context path though it is there * CAY-403Incorrect FK statement during schema generation for cross-DB relationships Cayenne Release Notes 1.2 M9 milestone Date: 12/14/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Generated/Identity Columns - http://objectstyle.org/confluence/display/CAY/Generated+Columns - Derby support for generated columns - CAY-361 Modeler now allows to specify generated columns for PK only. Non-pk column can't be generated. - CAY-291Implement support for auto-pks propagation to dependent entities * Custom queries. - Query lifecycle API is simplified. - It is now possible to run any kind of query (including custom and one that is not a GenericSelectQuery) via a DataContext and obtain the results via 'performQuery'. - QueryChain, SingleObjectQuery, RelationshipQuery, NamedQuery can now be used with DataContext. * Native versions of the Modeler for Windows and Mac OS X (CayenneModeler.exe, CayenneModeler.app). * CAY-405 Generic Persistent Object * DataDomain now implements OPPChannel. * "DataContextFactory.createDataContext" method signature change. Previously introduced "DataContextFactory.createDataContext(QueryEngine, ObjectStore)" is replaced with "DataContextFactory.createDataContext(OPPChannel, ObjectStore)". The change of the custom factories should be trivial, as DataContext now has a corresponding constructor and DataDomain implements OPPChannel. * Oracle DATE type is now reverse engineered by default as JDBC TIMESTAMP, as it can store both date and time info. * DbRelationship.srcFkSnapshotWithTargetSnapshot(..) and DbRelationship.srcPkSnapshotWithTargetSnapshot no longer throw an exception when null values are found in primary key snapshot, recognizing that key generation may be deferred (case of DB-generated keys). * Portable ObjectId: ObjectId is now used instead of recently introduced GlobalID within ObjectContext space (i.e. removal of GlobalID only affects remote tier). Still there are substantial changes in the ObjectId itself. To make it portable across the network, we no longer use Java Class as the main key within the id. Instead ObjEntity name string is used for this purpose. UPGRADE NOTE: it wasn't possible to phase out some of the old ObjectId API via deprecation, so methods "getObjClass" and "getObjectClass" are removed completely. Constructors that take Class as the first argument are deprecated and will only work if entity naming follows CayenneModeler default conventions of using unqualified class name as the entity name. * Thread-bound Transactions: QueryEngine.performQueries(Collection,OperationObserver resultConsumer,Transaction) is deprecated and no longer used internally to further decouple layers in the access stack. Instead transaction initiator (either DataContext or a user) must bind an appropriate transaction before executing an operation (or use Transaction.performQueries(..) that does it internally). UPGRADE NOTE: This change only affects users who implemented custom transactions. * Bundled HSQLDB is upgraded from 1.7.3 to 1.8.0.2. Other Bugs Fixed: CAY-358MySQL InnoDB table issues with generated columns CAY-406HSQLDB stored procedure support (as much as HSQLDB itself supports them). CAY-355"validateForX" is called inconsistently Cayenne Release Notes 1.2 M8 milestone Date: 11/24/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Prefetching... CAY-285, CAY-296. For details see this article - http://objectstyle.org/confluence/display/CAY/Prefetching - Selecting queries store prefetches using PrefetchTreeNode. - joint prefetch API (addJointPrefetch, etc.) is removed from SelectQuery, SQLTemplate, ProcedureQuery. Instead Cayenne will try to guess prefetch strategy in runtime. Alternatively users can provide a hint about a desired strategy by changing the semantics of desired PrefetchTreeNode. * New FrontBaseAdapter, with support for BLOB/CLOB, batch updates, etc. * Support for batch updates on PostgreSQL. I am seeing almost 2x increase in speed for large inserts. * CAY-190Now calling "setFetchLimit" on a query is not just a hint to Cayenne on how to process a ResultSet in memory. It includes an appropriate LIMIT clause in generated SELECT SQL for Oracle, Postgres, FrontBase, Openbase, MySQL and HSQLDB databases, resulting in measurable performance increase. Cayenne Release Notes 1.2 M7 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * ObjectContext API: - ObjectContext graph events. - OPPChannel graph events (including remote) - commit/rollback renamed to look like DataContext ones - commitChanges/rollbackChanges - new revertChanges and flushChanges methods. - Runtime-customizable ClassDescriptors. - Auto-sorted relationship list - org.objectstyle.cayenne.util.IndexPropertyList. Currently supported in ObjectContext only, but should be easy to extend to DataContext. * Multi Tier API: - support for shared sessions (peer ObjectContexts controlled by different users share the same parent) - OPPConnector was renamed to OPPConnection (all implementors were renamed accordingly). - web.xml configuration is simplified (see HessianService Javadocs for details). WARINING: You must update your web.xml if you used HessianService with M6, check UPGRADE-NOTES for details. * CAY-395 - The meaning of SnapshotEvent "source" and "postedBy" attributes is reversed per CAY-395 for better efficiency. If you implemented custom listeners of SnapshotEvents, you may need to doublecheck their logic. From now on events use DataRowStore as source, and EventBridge or ObjectStore as postedBy, depending on whether this was a local or a remote event. I.e. the new structure is the opposite to what we used in 1.1. * Built in support for mapping int or character DB columns as JDK 1.5 Enums. No need to register special ExtendedTypes for your custom enums. * JDOM is no longer needed for XML (de)serialization - everything is done using JAXP classes bundled with JDK. * AutoAdapter is introduced. If you are using one of the standard DbAdapters shipped with Cayenne, it is no longer needed to enter it in the Modeler. Cayenne will automatically guess the right adapter from the database metadata in runtime. In CayenneModeler adapter field is moved to a separate tab, as now it doesn't have to be configured in most cases. * No longer storing or relying on ClassLoader stored in Configuration. Thread.currentThread().getContextClassLoader() is what Cayenne now uses internally. * Cayenne stack events are no longer sent via a shared "default" EventManager. Instead an EventManager instance is assigned to Configuration. * EventBridge supports multiple local EventSubjects. * Listener methods registered with EventManager no longer have to be public. Any non-public methods and non-public classes will work. This is nice for implementing listener methods without exposing them in the API (or using inner classes that didn't work before). * Support for ExtendedTypeFactory that among other things enables mapping of interface properties. Bugs Fixed: * Cayenne no longer includes Oracle "recycle bin" tables in reverse-engineering results (those are the tables with names like "BIN$04LhcpndanfgMAAAAAANPw==$0" that are "recycled" dropped tables. * CAY-392ConfigurationException on context reload in Tomcat * CAY-3961.2M6, nodeps & log4j trouble * CAY-397Update Java Package causes error dialog * CAY-372MySQL should drop tables "if exists" * CAY-353Keyboard navigation * CAY-393Change cgen Velocity singleton to VelocityEngine instances * CAY-398Compiler warnings in generated auto classes when using inheritance Cayenne Release Notes 1.2 M6 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Cayenne HEAD branch (i.e. 1.2) will no longer maintain JDK 1.3 comptibility. If JDK upgrade is not an option for you (e.g. you are on WebSphere 5.0), consider sticking with Cayenne 1.1 for the time being. * Cayenne no longer requires Jakarta BeanUtils. * Added support for ObjectIds in qualifier expressions * Changed AUTO_PK_TABLE default definition to include primary key constraint (somewhat related to CAY-245) * org.objectstyle.cayenne.map.MapObject is deprecated and removed from map package classes inheritance hierarchy. If you cast Cayenne mapping objects to MapObject, change the cast to CayenneMapEntry * A contract between Expression and Transformer in Expression.transform(..) is altered. Now Transformer must return Expression.PRUNED_NODE to indicate that a node subtree has to be removed. * Fixed UI bugs in query ordering and prefetch panels. * Deprecated explicit log levels in Query, OperantionHints and DataContext. * CAY-376 DataContext can be subclassed via DataContextFactory. * TempObjectId is deprecated. Superclass is used instead. See TempObjectId javadocs for migration hints. * PostgreSQLAdapter's default "BLOB" mapping is changed from "bytea" to "oid". See UPGRADE notes for details. * CAY-352Pruning during expression transforms is done incorrectly when expression contains nulls. * CAY-360Non-refreshed Named Queries in Modeler throw exception * CAY-386ExtendType doesn't workd with null Blobs (Postgresql) * CAY-382PropertyListSerialization string quoting - fix once and for all * CAY-385[PATCH] Use entrysets when key and value are desired * CAY-381Typos and grammar errors in the user guide * CAY-346Selection moves to next entity on sync * CAY-364Clicking on a non-selected cell takes two clicks * CAY-216Need to exclude System Classpath on Modeler startup * CAY-384Infinite Loop in equals method * CAY-373add importUtils.reserveType() method to reserve this.class type * CAY-371XML encoding / decoding API quirks * CAY-370XML encoding throws NPE if property is null * Multi Tier Progress: - relationships are done - commit/rollback work - added support for HTTP basic authentication to HessianConnector - arbitrary queries are available on the client (watch out - security becomes essential !!). - the following queries should work on the client: NamedQuery, RelationshipQuery, QueryChain, SelectQuery, SQLTemplate. Cayenne Release Notes 1.2 M5 milestone Date: July 22, 2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-79Improvements to Ant cgen task; new ClassGenerator functions * CAY-264 An early preview of distributed data contexts. * CAY-261 XML Encoder/Decoder - this feature is usable now, though still should be considered unstable. * DataPort Ant task is moved from examples to the main tree and is included with Antlib. * SQLTemplateExecutionPlan and SQLTemplateSelectExecutionPlan classes are removed from Cayenne. Keeping it in deprecated state is no longer possible due to SQLAction method signature changes. * A change in the order of loading resources via ResourceLocator (this includes cayenne.xml loading). Now custom classpath locations take precedence over the default one. * Changing default MySQL mapping of JDBC TIMESTAMP to be "DATETIME". This is a more sensible default as TIMESTAMP is autoinitialized by MySQL on insert. * SelectQuery resolves its prefetches during the routing phase. Users who did prefetch query filtering via DataContextDelegate must be aware of this change. Bugs Fixed: * Doing extra checks to prevent double regsitration of new objects - http://objectstyle.org/cayenne/lists/cayenne-devel/2005/07/0006.html * CAY-322cgen task cannot generate classes for cross-DataMap relationships * CAY-339PropertyListSerialization doesn't handle a plus (+) sign in a string and escape it. * CAY-320Boolean properties do not return Boolean.FALSE & Boolean.TRUE * CAY-325Clicking Project Validation errors no longer brings up the offending object * CAY-335HSQLDB Upgrade Breaks Preferences Handling in 1.2M4 * CAY-341Failing to insert into two different tables with identity primary keys on mssql within a single transaction * CAY-148Procedure Queries need result set descriptors * CAY-141ProcedureQuery must support all GenericSelectQuery features. * CAY-343ObjectStore.unregisterNewObjects() should not throw null pointer exception * CAY-303"Query has No Root" warning is shown incorrectly * CAY-345Modeler recreates deleted directories * CAY-327Cgen2 makepair=false doesn't properly set superclass/pkg * CAY-62Validation error dialog stays in front all the time * CAY-315classloader problem in dataport * CAY-334Compile error with JDK1.5 Cayenne Release Notes 1.2 M4 milestone Date: May 7, 2005 ============================================ Changes/New Features: CAY-301A number of Modeler visual improvements and bug fixes (also see CAY-211), including navigation history, entity toolbars, db entity synching with ObjEntities, etc. NOTE: relationships mapping is now done using an info button ("i") on the entity toolbar. CAY-183Adapter for Clouscape/Derby DB (Experimental. Only tested in embedded mode). CAY-312Antlib addition - now Cayenne Ant tasks can be imported as Antlibs Bugs Fixed: CAY-306/CAY-313Fixing API and build process to be more friendly when running under JDK 1.5 CAY-297deadlock between commit and external event CAY-308ObjectStore.processUpdatedSnapshots race condition with ObjectStore.resolveHollow CAY-299PostgreSQL selecting procedure results are processed incorrectly CAY-305hsqldb needs to ignore "db schema" namespace element on CREATE/DROP TABLE syntax CAY-310Calling <DataObject>.addTo<DataObject>List() with a null parameter crashes later in commitChanges() CAY-277ExpressionFactory.noMatchDbExp does not exist Cayenne Release Notes 1.2 Milesone (M3) Date: March 20, 2005 ============================================ Changes: * Support for "joint" prefetches in SelectQuery and SQLTemplate * SQLTemplate support for explicit DataRow columns naming that is different from SQL (via forth parameter in the #result directive) * support for DataContext "userProperties" map CAY-258 Support for specifying generated Java files encoding in the Modeler and cgen task CAY-276Optimistic locking support for delete CAY-15Support for prefetching of flattened relationships (via joint prefetches) CAY-287Postgres default PK generator is changed to use sequences Bugs Fixed: CAY-293Fetch Specs import from EOF. CAY-215resolveFault() needs to throw subclass of CayenneRuntimeException CAY-280Relaxed expression for BigDecimal CAY-290DataRow.createObjectId accepts nulls CAY-256InvalidateObject (also refetch) snapshot sync transient-izes object in other contexts CAY-295Certain preferences required a Modeler restart to be updated CAY-269DB2 throws when there are line breaks in SQLTemplate CAY-99modeler.bat file doesn't handle file paths with spaces CAY-281Cayenne Modeller Not Escaping Strings CAY-260Add javadoc for DataContext.deleteObject() stating NullPointerException thrown Cayenne Release Notes 1.2 Milesone (M2) Date: February 07 2005 ============================================ For the latest information go to the project web site at http://objectstyle.org/cayenne/ To browse individual bug reports, see http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes: - Removed almost all classes and methods deprecated in 1.1. - Changed ObjectId.replacementId API. If your code relies on replacementId (e.g. if you create custom ObjectIds), it is strongly advised that you switch to the new API (which It is actually simpler....) - Upgraded JDOM library to v. 1.0 - [CAY-82] Ant frontend for DbGenerator - Removed system CLASSPATH from Modeler startup scripts. - Thread-local static ClassLoader in Configuration. - Persistence by reachability (CAY-249, part 1) - Updated Expression BNF, replacing "scalarCharExpression" with "scalarExpression" - Unconditionally applying entity sorting on commit, even if DB does not support constraints. - BasicServletConfiguration is deprecated as it is redundant. Superclass has all the functionality needed. All its static methods are extracted into ServetUtil - Expanded deployment chapter of the user guide with extrav options (some existed before but were not documented). - Other documentation updates - [CAY-261 - Experimental] XML encoder/decoder (still very raw and virtually untested) - Full support for jTDS adapter. Bugs Fixed: CAY-246 ClassCastException on EOModel import with numeric password CAY-251 NPE on calling stored proc for SQL Server. CAY-259Error with national characters in DVModeler CAY-255ORA-01000: maximum open cursors exceeded CAY-33Add factory for Commons DBCP to be used as connection pool CAY-266deleteObject should be changed to deleteObjects CAY-252validateForSave NPE when data object has no DataNode maped CAY-206Thread Bound DataContext Retrieval in Servlet Spec 2.3 CAY-195Add method to CayenneDataObject to return it's ObjEntity CAY-268 EOModel import problem for entities with abstract superclasses and flattened relationships Cayenne Release Notes 1.2 Milesone (M1) Date: November 22, 2004 ============================================ Bugs Fixed: CAY-236gui application generates malformed xml. CAY-243Allow Cayenne PK generator to work over SQLServer identity columns. CAY-222Change CREATE statement for HSQLDB when Generating SQL.
Cayenne Release Notes 1.2.4 Date: October 10, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-689 "Null ObjectId" exception from DataContext.localObject() CAY-770 bug / memory leak in DispatchQueue and EventManager CAY-796 Deserialization of DataContext fails when useSharedCache is false CAY-818 Frontbase NUMBERIC type mapping typo CAY-832 enum-mapped columns improperly handled in in expressions CAY-863 Object property unexpectedly set to null through forceMergeWithSnapshot CAY-872 Potential bug deleting uncommited objects from a nested DataContext Cayenne Release Notes 1.2.3 Date: May 16, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-597 XML Encoder with Mapping outputs incorrect XML CAY-741 Indexing entities with inheritance across datamaps CAY-743 Reordering mappings from domain in xml resulting in StackOverflowException CAY-750 Stored procedures without parameters fail on Postgres 8 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-763 XML Deserialization fails on relationships when using a mapping file 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-778 Cayenne jar manifest lists project.version as "cayenne" CAY-781 Bug in CayenneDataObject.readNestedProperty 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() Cayenne Release Notes 1.2.2 Date: January 18, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-565 LRUMap NPE CAY-652 Exception with Tomcat's session restore capability CAY-653 overriding setPersistentState() in unreliable in three tier environment with CayenneContext Cayenne Release Notes 1.2.1 Date: August 30, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-639JDBC datatype of MySQL INT UNSIGNED is mapped as java.lang.Integer should be java.lang.Long CAY-617ROP: shared session functionality over XMPP is broken CAY-614ToManyList contains references to transient objects CAY-609Modeler prevents intermediate prefetch creation CAY-608Prefetch validation incorrectly reports error on multi-step prefetches CAY-607Long query name or qualifier expand query text field off screen CAY-603QueryChain.isFetchingDataRows() incorrectly returns "false" - must be "true" all the time CAY-601Problem resolving relationships in nested DataContext Cayenne Release Notes 1.2 final Date: July 16, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes since RC2: * New Remote Object Persistence Tutorial Bug Fixes since RC2: CAY-592Modifying an object that has a to one relationship to an object that uses inheritance, breaks the relationship. CAY-551Unregistering objects is not cleaning up the context correctly CAY-585Cayenne uses incorrect ObjectID in some situations, resulting in inability to resolve hollow object CAY-588Sybase PK generation problem CAY-595Cayenne can fail (optimistic locking exception) when deleting a record that was just inserted/commited to the DB CAY-582org.objectstyle.cayenne.property.FieldAccessor accesses private class fields with same name as relationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-579Incorrect permissions on modeler.sh on Mac CAY-587Plist serialization of empty strings is incorrect Cayenne Release Notes 1.2 RC2 (release candidate) Date: June 23, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes: * New completely rewritten Quick Start tutorial. Bug Fixes: CAY-556Add {excerpt} sections to all doc chapters with children CAY-570Broken incremental list local cache (cayenne-rop) CAY-575Peer CayenneContexts on the remote client do not synchronize changes with each other - bug in ClientChannel CAY-562Modeler Class Generation Inconsistencies CAY-563NPE when syncing ObjEntity w/out DbEntity CAY-564dataport exclude/include filters ignored CAY-555Chapter ordering problem CAY-566"To Dep PK" checkbox is incorrectly checked when mapping DbRelationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-571DataRow Hessian serialization doesn't work CAY-572SQLTemplate.queryWithParameters() loses cache key CAY-573Deadlock involving connection pool, IncrementalFaultList, and DataRowStore Cayenne Release Notes 1.2 RC1 (release candidate) Date: 05/31/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes: CAY-524Stress Testing Cayenne CAY-5251.2 Release Profiling and Optimization CAY-336EO FetchSpecs don't import correctly CAY-415CayenneModeler ClassCastException on save CAY-326Modeler not descriptive in many-to-many issues CAY-557Rollback not processed correctly on optimistic locking exceptions CAY-469An issue with EOFetchSpecification import CAY-363Global optimistic locking update does not update attributes/relationships CAY-559JDBC Boolean mapping to DB2 problem Cayenne Release Notes 1.2 B3 (beta) Date: 05/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Modeler Improvements: * More options added to the "Advanced" mode panel of the class generator * Fixed early project closing when a new project is opened - now if the new project selection is canceled, currently opened project stays opened. * Fixed refreshing of the "Recent Files" menu. Bug Fixes: CAY-515XMLDecoder doesn't work with collections of leaf objects when mapping descriptor is used CAY-516XMLDecoder + Mapping Descriptor - ignores property 'attribute' settings CAY-519XMLDecoder + Mapping File: exception on decoding a collection of non-entities CAY-518"attribute.type" contains invalid character: [ CAY-521Instantiation of wrong Classes if more the 1 class has the same name (within different packages) CAY-531ObjectDetachOperation not resolving faults, resulting in invalid client-side objects. CAY-532Modeler Client Class Generator fails to open with an exception CAY-544validateForSave is called on phantoms with to-one relationships CAY-207ExtendedTypes don't work properly with entity subclasses CAY-542Re-registered objects lose their relationships CAY-545Paginated list - connection is committed before the result set is read CAY-546derby and blob/clob larger than 1MB CAY-548remove uncomitted flattened many-to-many CAY-517Omission in PropertyUtils - no support for converting String to JDK 1.5 Enum CAY-502Select/deselect all tables on Generate Schema panel CAY-191Datatypes of 'Source' and 'Target' of joins should match CAY-513Code Generation - UI table header not displaying property CAY-235support for Ingres database CAY-547Deleting new objects leaves null object in context. CAY-533"Create Derived DbEntity"-button has wrong tooltip CAY-537TypesMapping.getSqlTypeByJava ignores primitives CAY-528NullPointer Execption by deleting a Class Cayenne Release Notes 1.2 B2 (beta) Date: 04/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes CAY-500To-one relationships are broken on the client CAY-501committing dependent relationships result in "Some parts of FK are missing in snapshot, join:" error CAY-503Uniquing broken CAY-497RemoteIncrementalFaultList used in paginated client queries throws IllegalArgumentException when page size exceeds list size CAY-496RemoteIncrementalFaultList used in paginated client queries throws CayenneRuntimeException when list size is equal to page isze CAY-495RemoteIncrementalFaultList used in paginated client queries throws an indexoutofbound exception when list size is divisable by page size CAY-498ObjectId is TEMP after commit to database CAY-499NPE on prefetching with shared cache CAY-201Modeler generate db schema doesn't properly handle post-Oracle 8 TIMESTAMP fields CAY-494When "Create ObjEntity" button is clicked for the same DbEntity three times in a row, CayenneModeler hangs CAY-487DataPort bugs and improvements CAY-488Cayenne Modeler Support for Client Class Generation Cayenne Release Notes 1.2 B1 (beta) Date: 04/06/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * DataObjectUtils.objectForQuery(..) now returns Object instead of DataObject to accomodate DataRows, Persistent objects, etc. If you are using this method, you may need to use a cast. * "opp" package and all classes whose names started with OPP* were renamed. Check a 'web.xml' descriptor and change the following configuration parameters to reflect the new names: - cayenne.OPPRemoteService.EventBridge.factory to cayenne.RemoteService.EventBridge.factory - org.objectstyle.cayenne.opp.hessian.HessianServlet to org.objectstyle.cayenne.remote.hessian.service.HessianServlet * WebApplicationListener and WebApplicationContextProvider are deprecated. Now the official choice for webapp configuration is WebApplicationContextFilter. Still users are free to use custom listeners if they choose to do so, i.e. the deprecation is done to reduce confusion regarding the choices, not because the listener approach doesn't work. * CAY-471Nested DataContexts - change notifications * CAY-474Delete Rules in remote CayenneContext * CAY-485Modeler gives cryptic method in alert box when user tries to create classes * CAY-473Better caching in remote CayenneContext * CAY-472Remoting Layer: Hessian sessions and session timeouts * CAY-491Support Schemas for HSQLDB 1.8 during schema generation * CAY-479Reverse engineer does not load target FKs on partial import (in fact this was already fixed in M12) * CAY-490On client class generation, cgen should automatically filter out entities that are explicitly not supported on the client * CAY-391Exposing Primary Key to objEntity from dbEntity and then synching * CAY-346Selection moves to next entity on sync * CAY-484Add missing toolbar to the DbEntity panel Cayenne Release Notes 1.2 M12 milestone Date: 3/23/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Nested DataContext commits. * Modeler features platform-native keyboard shortcuts. I.e. Mac users will no longer have to figure out where the "Ctrl" key is located. Command-S will save the project. * Added FK constraints support to MySQLAdapter. It is enabled automatically if the AutoAdapter detects that InnoDB table type is default. I.e. if you want it to operate in a DB-independent fashion, do not expicitly set MySQLAdapter in the Modeler and let Cayenne guess it. * Support for custom cgen templates located in jar files. Prior to M12 custom templates were only accessible if as files in the local filesystem. * SingleObjectQuery is renamed to ObjectIdQuery to reflect the fact that it supports data rows as well. For documentation see http://objectstyle.org/confluence/display/CAY/ObjectIdQuery * First cut of the new IngresAdapter. Bugs Fixed: CAY-470Algorithm for flushing changes from child nested DataContext to parent CAY-482there can be only 254 ids created *within the same millisecond CAY-446Commit operation should respect existing thread-bound transactions CAY-448NPE when shutting down DataDomain CAY-465DataDomain deletion results in menus in inconsistent state CAY-461Package name not prepended on import CAY-347Entity Tabs and Delete button inconsistencies CAY-464Hanging/infinite-loop problem when issuing a non-selecting SQL command against Oracle 8.1.6 CAY-449SingleObjectQuery glitches CAY-170Class Generation Bug CAY-450Oracle fetch limit syntax conflicts with ordering CAY-407JOINT_PREFETCH_SEMANTICS + in-memory DISTINCT = incorrect results CAY-284Allow for mix of null and non null attributes for compound FK relationships CAY-462Incorrect tool tip on "Create Derived DbEntity" CAY-463Improved DbEntity icons Cayenne Release Notes 1.2 M11 milestone Date: 2/13/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-439 Ensure the same connection is (re)used within a thread transaction for a given DataNode. Among other things this improvement makes it possible to execute arbitrary queries/updates inside TransactionDelegate, with a guarantee that they are a part of the the same transaction as the one used by Cayenne to commit objects. * CAY-442 Supporting list parameters in SQLTemplate #bind directive * CAY-380 DataContext.localObjects() is deprecated and replaced with a new method DataContext.localObject(ObjectId, Persistent) that supports objects in MODIFIED and DELETED state. * An initial PARTIAL implementation of the nested DataContexts feature - nested DataContext can be created and objects can be selected through a chain of contexts. However commit is still not implemented. * GenericSelectQuery is deprecated. All constants it declares are moved to a new interface QueryMetadata. * To force refresh of cached query results, one of the two new cache policies should be used instead of "setRefreshingObjects(..)" ("setRefreshingObjects" should only be used for its original purpose - refreshing individual objects, not list contents). Also check out the new caching page in documentation: http://objectstyle.org/confluence/display/CAYDOC/Caching+Query+Results * Addressing concurrency issues in Derby PK generator. * Speeding up very slow Modeler attribute and relationship operations. * "org.objectstyle.cayenne.opp.OPPChannel" is replaced by a different interface - "org.objectstyle.cayenne.DataChannel". Previous OPPChannel messaging-based API made little sense in the local application context. Note that this does NOT affect 99.99% of the users. * DataContextDelegate changes: "willPerformSelect" method is deprecated, instead two methods added: "willPerformQuery" (for selecting queries) and "willPerformGenericQuery" (for all other queries). * Implementation of QueryEngine by DataContext is deprecated. But now DataContext implements DataChannel and ObjectContext interfaces instead. * Removed 'performNonSelectingQuery' method from ObjectContext and CayenneContext. It is redundant. Use 'performGenericQuery(query).getFirstUpdateCounts(query)' instead. * CAY-440 Partial support for one-to-many relationship with a source column that is not a PK. * A number of changes to Cayenne stack that should not affect 99% of the users: - QueryMetadata interface that decouples query object from its runtime execution parameters - wider use of ClassDescriptors, not only in remote contexts, but in the DataContext as well - cleaner decoupled access stack chain, with fewer cross-layer dependencies. Communication between layers is done using specialized Queries. Bugs Fixed: CAY-433 support for JDK 1.5 enums that are inner classes. CAY-418CayenneDataObject.readNestedProperty stumbles on POJO paths CAY-430Cayenne expression evaluation stumbles on java.util.Maps. CAY-422Deferred propagated key error on M10 CAY-417Prefetching one-to-one throws an exception CAY-420TypesMapping.getSqlTypeByJava(byte[]) doesn't work CAY-416batch updated -1 rows CAY-427DataDomainView.java--label truncation (Container-Managed Transactions) CAY-428AdapterView -- label truncation; requires changing FormLayout setting CAY-426Label truncation in DBEntityTab; change FormLayout column values CAY-409XMLEncoder drops synthetic root for singleton collections CAY-425ObjEntityTab.java--add tooltip to "Sync" button; correct button size in layout CAY-424Tooltips for all toolbar buttons in Modeler CAY-423ShortDescription misspelled in cayennemodeler-string.properties Cayenne Release Notes 1.2 M10 milestone Date: 01/05/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Fixed cross-platform CayenneModeler startup issue. * MacOSX CayenneModeler will now use Aqua look and feel by default. If you already used Cayenne on Mac, you may need to delete the old preferences. Go to "/Users/username/.cayenne/modeler.preferences" and remve the following lines: Editor.lookAndFeel=... Editor.theme=... * New method: DataObjectUtils.objectForQuery(DataContext, Query) * Remote Object Persistence: - added 'localObjects' to ObjectContext interface. * SQLTemplate no longer requires users to specify whether it is selecting or not. This information is really redundant and can be determined from JDBC in runtime. FrontBase note: you will need FrontBase JDBC driver newer than version 2.5.2. Older driver will not work due to this change. Other Bugs Fixed: * CayenneModeler doesn't react to change in adapter name. * CAY-410Endless loop on remote notifications * CAY-374Generate explicit error message instead of silently ignoring lack of support for Generated columns * CAY-413DataMaps and DataNodes must be alphabetically sorted in the Modeler and cayenne.xml * CAY-408cayenne.xml not found in servlet context path though it is there * CAY-403Incorrect FK statement during schema generation for cross-DB relationships Cayenne Release Notes 1.2 M9 milestone Date: 12/14/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Generated/Identity Columns - http://objectstyle.org/confluence/display/CAY/Generated+Columns - Derby support for generated columns - CAY-361 Modeler now allows to specify generated columns for PK only. Non-pk column can't be generated. - CAY-291Implement support for auto-pks propagation to dependent entities * Custom queries. - Query lifecycle API is simplified. - It is now possible to run any kind of query (including custom and one that is not a GenericSelectQuery) via a DataContext and obtain the results via 'performQuery'. - QueryChain, SingleObjectQuery, RelationshipQuery, NamedQuery can now be used with DataContext. * Native versions of the Modeler for Windows and Mac OS X (CayenneModeler.exe, CayenneModeler.app). * CAY-405 Generic Persistent Object * DataDomain now implements OPPChannel. * "DataContextFactory.createDataContext" method signature change. Previously introduced "DataContextFactory.createDataContext(QueryEngine, ObjectStore)" is replaced with "DataContextFactory.createDataContext(OPPChannel, ObjectStore)". The change of the custom factories should be trivial, as DataContext now has a corresponding constructor and DataDomain implements OPPChannel. * Oracle DATE type is now reverse engineered by default as JDBC TIMESTAMP, as it can store both date and time info. * DbRelationship.srcFkSnapshotWithTargetSnapshot(..) and DbRelationship.srcPkSnapshotWithTargetSnapshot no longer throw an exception when null values are found in primary key snapshot, recognizing that key generation may be deferred (case of DB-generated keys). * Portable ObjectId: ObjectId is now used instead of recently introduced GlobalID within ObjectContext space (i.e. removal of GlobalID only affects remote tier). Still there are substantial changes in the ObjectId itself. To make it portable across the network, we no longer use Java Class as the main key within the id. Instead ObjEntity name string is used for this purpose. UPGRADE NOTE: it wasn't possible to phase out some of the old ObjectId API via deprecation, so methods "getObjClass" and "getObjectClass" are removed completely. Constructors that take Class as the first argument are deprecated and will only work if entity naming follows CayenneModeler default conventions of using unqualified class name as the entity name. * Thread-bound Transactions: QueryEngine.performQueries(Collection,OperationObserver resultConsumer,Transaction) is deprecated and no longer used internally to further decouple layers in the access stack. Instead transaction initiator (either DataContext or a user) must bind an appropriate transaction before executing an operation (or use Transaction.performQueries(..) that does it internally). UPGRADE NOTE: This change only affects users who implemented custom transactions. * Bundled HSQLDB is upgraded from 1.7.3 to 1.8.0.2. Other Bugs Fixed: CAY-358MySQL InnoDB table issues with generated columns CAY-406HSQLDB stored procedure support (as much as HSQLDB itself supports them). CAY-355"validateForX" is called inconsistently Cayenne Release Notes 1.2 M8 milestone Date: 11/24/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Prefetching... CAY-285, CAY-296. For details see this article - http://objectstyle.org/confluence/display/CAY/Prefetching - Selecting queries store prefetches using PrefetchTreeNode. - joint prefetch API (addJointPrefetch, etc.) is removed from SelectQuery, SQLTemplate, ProcedureQuery. Instead Cayenne will try to guess prefetch strategy in runtime. Alternatively users can provide a hint about a desired strategy by changing the semantics of desired PrefetchTreeNode. * New FrontBaseAdapter, with support for BLOB/CLOB, batch updates, etc. * Support for batch updates on PostgreSQL. I am seeing almost 2x increase in speed for large inserts. * CAY-190Now calling "setFetchLimit" on a query is not just a hint to Cayenne on how to process a ResultSet in memory. It includes an appropriate LIMIT clause in generated SELECT SQL for Oracle, Postgres, FrontBase, Openbase, MySQL and HSQLDB databases, resulting in measurable performance increase. Cayenne Release Notes 1.2 M7 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * ObjectContext API: - ObjectContext graph events. - OPPChannel graph events (including remote) - commit/rollback renamed to look like DataContext ones - commitChanges/rollbackChanges - new revertChanges and flushChanges methods. - Runtime-customizable ClassDescriptors. - Auto-sorted relationship list - org.objectstyle.cayenne.util.IndexPropertyList. Currently supported in ObjectContext only, but should be easy to extend to DataContext. * Multi Tier API: - support for shared sessions (peer ObjectContexts controlled by different users share the same parent) - OPPConnector was renamed to OPPConnection (all implementors were renamed accordingly). - web.xml configuration is simplified (see HessianService Javadocs for details). WARINING: You must update your web.xml if you used HessianService with M6, check UPGRADE-NOTES for details. * CAY-395 - The meaning of SnapshotEvent "source" and "postedBy" attributes is reversed per CAY-395 for better efficiency. If you implemented custom listeners of SnapshotEvents, you may need to doublecheck their logic. From now on events use DataRowStore as source, and EventBridge or ObjectStore as postedBy, depending on whether this was a local or a remote event. I.e. the new structure is the opposite to what we used in 1.1. * Built in support for mapping int or character DB columns as JDK 1.5 Enums. No need to register special ExtendedTypes for your custom enums. * JDOM is no longer needed for XML (de)serialization - everything is done using JAXP classes bundled with JDK. * AutoAdapter is introduced. If you are using one of the standard DbAdapters shipped with Cayenne, it is no longer needed to enter it in the Modeler. Cayenne will automatically guess the right adapter from the database metadata in runtime. In CayenneModeler adapter field is moved to a separate tab, as now it doesn't have to be configured in most cases. * No longer storing or relying on ClassLoader stored in Configuration. Thread.currentThread().getContextClassLoader() is what Cayenne now uses internally. * Cayenne stack events are no longer sent via a shared "default" EventManager. Instead an EventManager instance is assigned to Configuration. * EventBridge supports multiple local EventSubjects. * Listener methods registered with EventManager no longer have to be public. Any non-public methods and non-public classes will work. This is nice for implementing listener methods without exposing them in the API (or using inner classes that didn't work before). * Support for ExtendedTypeFactory that among other things enables mapping of interface properties. Bugs Fixed: * Cayenne no longer includes Oracle "recycle bin" tables in reverse-engineering results (those are the tables with names like "BIN$04LhcpndanfgMAAAAAANPw==$0" that are "recycled" dropped tables. * CAY-392ConfigurationException on context reload in Tomcat * CAY-3961.2M6, nodeps & log4j trouble * CAY-397Update Java Package causes error dialog * CAY-372MySQL should drop tables "if exists" * CAY-353Keyboard navigation * CAY-393Change cgen Velocity singleton to VelocityEngine instances * CAY-398Compiler warnings in generated auto classes when using inheritance Cayenne Release Notes 1.2 M6 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Cayenne HEAD branch (i.e. 1.2) will no longer maintain JDK 1.3 comptibility. If JDK upgrade is not an option for you (e.g. you are on WebSphere 5.0), consider sticking with Cayenne 1.1 for the time being. * Cayenne no longer requires Jakarta BeanUtils. * Added support for ObjectIds in qualifier expressions * Changed AUTO_PK_TABLE default definition to include primary key constraint (somewhat related to CAY-245) * org.objectstyle.cayenne.map.MapObject is deprecated and removed from map package classes inheritance hierarchy. If you cast Cayenne mapping objects to MapObject, change the cast to CayenneMapEntry * A contract between Expression and Transformer in Expression.transform(..) is altered. Now Transformer must return Expression.PRUNED_NODE to indicate that a node subtree has to be removed. * Fixed UI bugs in query ordering and prefetch panels. * Deprecated explicit log levels in Query, OperantionHints and DataContext. * CAY-376 DataContext can be subclassed via DataContextFactory. * TempObjectId is deprecated. Superclass is used instead. See TempObjectId javadocs for migration hints. * PostgreSQLAdapter's default "BLOB" mapping is changed from "bytea" to "oid". See UPGRADE notes for details. * CAY-352Pruning during expression transforms is done incorrectly when expression contains nulls. * CAY-360Non-refreshed Named Queries in Modeler throw exception * CAY-386ExtendType doesn't workd with null Blobs (Postgresql) * CAY-382PropertyListSerialization string quoting - fix once and for all * CAY-385[PATCH] Use entrysets when key and value are desired * CAY-381Typos and grammar errors in the user guide * CAY-346Selection moves to next entity on sync * CAY-364Clicking on a non-selected cell takes two clicks * CAY-216Need to exclude System Classpath on Modeler startup * CAY-384Infinite Loop in equals method * CAY-373add importUtils.reserveType() method to reserve this.class type * CAY-371XML encoding / decoding API quirks * CAY-370XML encoding throws NPE if property is null * Multi Tier Progress: - relationships are done - commit/rollback work - added support for HTTP basic authentication to HessianConnector - arbitrary queries are available on the client (watch out - security becomes essential !!). - the following queries should work on the client: NamedQuery, RelationshipQuery, QueryChain, SelectQuery, SQLTemplate. Cayenne Release Notes 1.2 M5 milestone Date: July 22, 2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-79Improvements to Ant cgen task; new ClassGenerator functions * CAY-264 An early preview of distributed data contexts. * CAY-261 XML Encoder/Decoder - this feature is usable now, though still should be considered unstable. * DataPort Ant task is moved from examples to the main tree and is included with Antlib. * SQLTemplateExecutionPlan and SQLTemplateSelectExecutionPlan classes are removed from Cayenne. Keeping it in deprecated state is no longer possible due to SQLAction method signature changes. * A change in the order of loading resources via ResourceLocator (this includes cayenne.xml loading). Now custom classpath locations take precedence over the default one. * Changing default MySQL mapping of JDBC TIMESTAMP to be "DATETIME". This is a more sensible default as TIMESTAMP is autoinitialized by MySQL on insert. * SelectQuery resolves its prefetches during the routing phase. Users who did prefetch query filtering via DataContextDelegate must be aware of this change. Bugs Fixed: * Doing extra checks to prevent double regsitration of new objects - http://objectstyle.org/cayenne/lists/cayenne-devel/2005/07/0006.html * CAY-322cgen task cannot generate classes for cross-DataMap relationships * CAY-339PropertyListSerialization doesn't handle a plus (+) sign in a string and escape it. * CAY-320Boolean properties do not return Boolean.FALSE & Boolean.TRUE * CAY-325Clicking Project Validation errors no longer brings up the offending object * CAY-335HSQLDB Upgrade Breaks Preferences Handling in 1.2M4 * CAY-341Failing to insert into two different tables with identity primary keys on mssql within a single transaction * CAY-148Procedure Queries need result set descriptors * CAY-141ProcedureQuery must support all GenericSelectQuery features. * CAY-343ObjectStore.unregisterNewObjects() should not throw null pointer exception * CAY-303"Query has No Root" warning is shown incorrectly * CAY-345Modeler recreates deleted directories * CAY-327Cgen2 makepair=false doesn't properly set superclass/pkg * CAY-62Validation error dialog stays in front all the time * CAY-315classloader problem in dataport * CAY-334Compile error with JDK1.5 Cayenne Release Notes 1.2 M4 milestone Date: May 7, 2005 ============================================ Changes/New Features: CAY-301A number of Modeler visual improvements and bug fixes (also see CAY-211), including navigation history, entity toolbars, db entity synching with ObjEntities, etc. NOTE: relationships mapping is now done using an info button ("i") on the entity toolbar. CAY-183Adapter for Clouscape/Derby DB (Experimental. Only tested in embedded mode). CAY-312Antlib addition - now Cayenne Ant tasks can be imported as Antlibs Bugs Fixed: CAY-306/CAY-313Fixing API and build process to be more friendly when running under JDK 1.5 CAY-297deadlock between commit and external event CAY-308ObjectStore.processUpdatedSnapshots race condition with ObjectStore.resolveHollow CAY-299PostgreSQL selecting procedure results are processed incorrectly CAY-305hsqldb needs to ignore "db schema" namespace element on CREATE/DROP TABLE syntax CAY-310Calling <DataObject>.addTo<DataObject>List() with a null parameter crashes later in commitChanges() CAY-277ExpressionFactory.noMatchDbExp does not exist Cayenne Release Notes 1.2 Milesone (M3) Date: March 20, 2005 ============================================ Changes: * Support for "joint" prefetches in SelectQuery and SQLTemplate * SQLTemplate support for explicit DataRow columns naming that is different from SQL (via forth parameter in the #result directive) * support for DataContext "userProperties" map CAY-258 Support for specifying generated Java files encoding in the Modeler and cgen task CAY-276Optimistic locking support for delete CAY-15Support for prefetching of flattened relationships (via joint prefetches) CAY-287Postgres default PK generator is changed to use sequences Bugs Fixed: CAY-293Fetch Specs import from EOF. CAY-215resolveFault() needs to throw subclass of CayenneRuntimeException CAY-280Relaxed expression for BigDecimal CAY-290DataRow.createObjectId accepts nulls CAY-256InvalidateObject (also refetch) snapshot sync transient-izes object in other contexts CAY-295Certain preferences required a Modeler restart to be updated CAY-269DB2 throws when there are line breaks in SQLTemplate CAY-99modeler.bat file doesn't handle file paths with spaces CAY-281Cayenne Modeller Not Escaping Strings CAY-260Add javadoc for DataContext.deleteObject() stating NullPointerException thrown Cayenne Release Notes 1.2 Milesone (M2) Date: February 07 2005 ============================================ For the latest information go to the project web site at http://objectstyle.org/cayenne/ To browse individual bug reports, see http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes: - Removed almost all classes and methods deprecated in 1.1. - Changed ObjectId.replacementId API. If your code relies on replacementId (e.g. if you create custom ObjectIds), it is strongly advised that you switch to the new API (which It is actually simpler....) - Upgraded JDOM library to v. 1.0 - [CAY-82] Ant frontend for DbGenerator - Removed system CLASSPATH from Modeler startup scripts. - Thread-local static ClassLoader in Configuration. - Persistence by reachability (CAY-249, part 1) - Updated Expression BNF, replacing "scalarCharExpression" with "scalarExpression" - Unconditionally applying entity sorting on commit, even if DB does not support constraints. - BasicServletConfiguration is deprecated as it is redundant. Superclass has all the functionality needed. All its static methods are extracted into ServetUtil - Expanded deployment chapter of the user guide with extrav options (some existed before but were not documented). - Other documentation updates - [CAY-261 - Experimental] XML encoder/decoder (still very raw and virtually untested) - Full support for jTDS adapter. Bugs Fixed: CAY-246 ClassCastException on EOModel import with numeric password CAY-251 NPE on calling stored proc for SQL Server. CAY-259Error with national characters in DVModeler CAY-255ORA-01000: maximum open cursors exceeded CAY-33Add factory for Commons DBCP to be used as connection pool CAY-266deleteObject should be changed to deleteObjects CAY-252validateForSave NPE when data object has no DataNode maped CAY-206Thread Bound DataContext Retrieval in Servlet Spec 2.3 CAY-195Add method to CayenneDataObject to return it's ObjEntity CAY-268 EOModel import problem for entities with abstract superclasses and flattened relationships Cayenne Release Notes 1.2 Milesone (M1) Date: November 22, 2004 ============================================ Bugs Fixed: CAY-236gui application generates malformed xml. CAY-243Allow Cayenne PK generator to work over SQLServer identity columns. CAY-222Change CREATE statement for HSQLDB when Generating SQL.
Cayenne Release Notes 1.2.4 Date: October 10, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-689 "Null ObjectId" exception from DataContext.localObject() CAY-770 bug / memory leak in DispatchQueue and EventManager CAY-796 Deserialization of DataContext fails when useSharedCache is false CAY-818 Frontbase NUMBERIC type mapping typo CAY-832 enum-mapped columns improperly handled in in expressions CAY-863 Object property unexpectedly set to null through forceMergeWithSnapshot CAY-872 Potential bug deleting uncommited objects from a nested DataContext Cayenne Release Notes 1.2.3 Date: May 16, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-597 XML Encoder with Mapping outputs incorrect XML CAY-741 Indexing entities with inheritance across datamaps CAY-743 Reordering mappings from domain in xml resulting in StackOverflowException CAY-750 Stored procedures without parameters fail on Postgres 8 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-763 XML Deserialization fails on relationships when using a mapping file 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-778 Cayenne jar manifest lists project.version as "cayenne" CAY-781 Bug in CayenneDataObject.readNestedProperty 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() Cayenne Release Notes 1.2.2 Date: January 18, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-565 LRUMap NPE CAY-652 Exception with Tomcat's session restore capability CAY-653 overriding setPersistentState() in unreliable in three tier environment with CayenneContext Cayenne Release Notes 1.2.1 Date: August 30, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-639JDBC datatype of MySQL INT UNSIGNED is mapped as java.lang.Integer should be java.lang.Long CAY-617ROP: shared session functionality over XMPP is broken CAY-614ToManyList contains references to transient objects CAY-609Modeler prevents intermediate prefetch creation CAY-608Prefetch validation incorrectly reports error on multi-step prefetches CAY-607Long query name or qualifier expand query text field off screen CAY-603QueryChain.isFetchingDataRows() incorrectly returns "false" - must be "true" all the time CAY-601Problem resolving relationships in nested DataContext Cayenne Release Notes 1.2 final Date: July 16, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes since RC2: * New Remote Object Persistence Tutorial Bug Fixes since RC2: CAY-592Modifying an object that has a to one relationship to an object that uses inheritance, breaks the relationship. CAY-551Unregistering objects is not cleaning up the context correctly CAY-585Cayenne uses incorrect ObjectID in some situations, resulting in inability to resolve hollow object CAY-588Sybase PK generation problem CAY-595Cayenne can fail (optimistic locking exception) when deleting a record that was just inserted/commited to the DB CAY-582org.objectstyle.cayenne.property.FieldAccessor accesses private class fields with same name as relationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-579Incorrect permissions on modeler.sh on Mac CAY-587Plist serialization of empty strings is incorrect Cayenne Release Notes 1.2 RC2 (release candidate) Date: June 23, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes: * New completely rewritten Quick Start tutorial. Bug Fixes: CAY-556Add {excerpt} sections to all doc chapters with children CAY-570Broken incremental list local cache (cayenne-rop) CAY-575Peer CayenneContexts on the remote client do not synchronize changes with each other - bug in ClientChannel CAY-562Modeler Class Generation Inconsistencies CAY-563NPE when syncing ObjEntity w/out DbEntity CAY-564dataport exclude/include filters ignored CAY-555Chapter ordering problem CAY-566"To Dep PK" checkbox is incorrectly checked when mapping DbRelationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-571DataRow Hessian serialization doesn't work CAY-572SQLTemplate.queryWithParameters() loses cache key CAY-573Deadlock involving connection pool, IncrementalFaultList, and DataRowStore Cayenne Release Notes 1.2 RC1 (release candidate) Date: 05/31/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes: CAY-524Stress Testing Cayenne CAY-5251.2 Release Profiling and Optimization CAY-336EO FetchSpecs don't import correctly CAY-415CayenneModeler ClassCastException on save CAY-326Modeler not descriptive in many-to-many issues CAY-557Rollback not processed correctly on optimistic locking exceptions CAY-469An issue with EOFetchSpecification import CAY-363Global optimistic locking update does not update attributes/relationships CAY-559JDBC Boolean mapping to DB2 problem Cayenne Release Notes 1.2 B3 (beta) Date: 05/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Modeler Improvements: * More options added to the "Advanced" mode panel of the class generator * Fixed early project closing when a new project is opened - now if the new project selection is canceled, currently opened project stays opened. * Fixed refreshing of the "Recent Files" menu. Bug Fixes: CAY-515XMLDecoder doesn't work with collections of leaf objects when mapping descriptor is used CAY-516XMLDecoder + Mapping Descriptor - ignores property 'attribute' settings CAY-519XMLDecoder + Mapping File: exception on decoding a collection of non-entities CAY-518"attribute.type" contains invalid character: [ CAY-521Instantiation of wrong Classes if more the 1 class has the same name (within different packages) CAY-531ObjectDetachOperation not resolving faults, resulting in invalid client-side objects. CAY-532Modeler Client Class Generator fails to open with an exception CAY-544validateForSave is called on phantoms with to-one relationships CAY-207ExtendedTypes don't work properly with entity subclasses CAY-542Re-registered objects lose their relationships CAY-545Paginated list - connection is committed before the result set is read CAY-546derby and blob/clob larger than 1MB CAY-548remove uncomitted flattened many-to-many CAY-517Omission in PropertyUtils - no support for converting String to JDK 1.5 Enum CAY-502Select/deselect all tables on Generate Schema panel CAY-191Datatypes of 'Source' and 'Target' of joins should match CAY-513Code Generation - UI table header not displaying property CAY-235support for Ingres database CAY-547Deleting new objects leaves null object in context. CAY-533"Create Derived DbEntity"-button has wrong tooltip CAY-537TypesMapping.getSqlTypeByJava ignores primitives CAY-528NullPointer Execption by deleting a Class Cayenne Release Notes 1.2 B2 (beta) Date: 04/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes CAY-500To-one relationships are broken on the client CAY-501committing dependent relationships result in "Some parts of FK are missing in snapshot, join:" error CAY-503Uniquing broken CAY-497RemoteIncrementalFaultList used in paginated client queries throws IllegalArgumentException when page size exceeds list size CAY-496RemoteIncrementalFaultList used in paginated client queries throws CayenneRuntimeException when list size is equal to page isze CAY-495RemoteIncrementalFaultList used in paginated client queries throws an indexoutofbound exception when list size is divisable by page size CAY-498ObjectId is TEMP after commit to database CAY-499NPE on prefetching with shared cache CAY-201Modeler generate db schema doesn't properly handle post-Oracle 8 TIMESTAMP fields CAY-494When "Create ObjEntity" button is clicked for the same DbEntity three times in a row, CayenneModeler hangs CAY-487DataPort bugs and improvements CAY-488Cayenne Modeler Support for Client Class Generation Cayenne Release Notes 1.2 B1 (beta) Date: 04/06/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * DataObjectUtils.objectForQuery(..) now returns Object instead of DataObject to accomodate DataRows, Persistent objects, etc. If you are using this method, you may need to use a cast. * "opp" package and all classes whose names started with OPP* were renamed. Check a 'web.xml' descriptor and change the following configuration parameters to reflect the new names: - cayenne.OPPRemoteService.EventBridge.factory to cayenne.RemoteService.EventBridge.factory - org.objectstyle.cayenne.opp.hessian.HessianServlet to org.objectstyle.cayenne.remote.hessian.service.HessianServlet * WebApplicationListener and WebApplicationContextProvider are deprecated. Now the official choice for webapp configuration is WebApplicationContextFilter. Still users are free to use custom listeners if they choose to do so, i.e. the deprecation is done to reduce confusion regarding the choices, not because the listener approach doesn't work. * CAY-471Nested DataContexts - change notifications * CAY-474Delete Rules in remote CayenneContext * CAY-485Modeler gives cryptic method in alert box when user tries to create classes * CAY-473Better caching in remote CayenneContext * CAY-472Remoting Layer: Hessian sessions and session timeouts * CAY-491Support Schemas for HSQLDB 1.8 during schema generation * CAY-479Reverse engineer does not load target FKs on partial import (in fact this was already fixed in M12) * CAY-490On client class generation, cgen should automatically filter out entities that are explicitly not supported on the client * CAY-391Exposing Primary Key to objEntity from dbEntity and then synching * CAY-346Selection moves to next entity on sync * CAY-484Add missing toolbar to the DbEntity panel Cayenne Release Notes 1.2 M12 milestone Date: 3/23/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Nested DataContext commits. * Modeler features platform-native keyboard shortcuts. I.e. Mac users will no longer have to figure out where the "Ctrl" key is located. Command-S will save the project. * Added FK constraints support to MySQLAdapter. It is enabled automatically if the AutoAdapter detects that InnoDB table type is default. I.e. if you want it to operate in a DB-independent fashion, do not expicitly set MySQLAdapter in the Modeler and let Cayenne guess it. * Support for custom cgen templates located in jar files. Prior to M12 custom templates were only accessible if as files in the local filesystem. * SingleObjectQuery is renamed to ObjectIdQuery to reflect the fact that it supports data rows as well. For documentation see http://objectstyle.org/confluence/display/CAY/ObjectIdQuery * First cut of the new IngresAdapter. Bugs Fixed: CAY-470Algorithm for flushing changes from child nested DataContext to parent CAY-482there can be only 254 ids created *within the same millisecond CAY-446Commit operation should respect existing thread-bound transactions CAY-448NPE when shutting down DataDomain CAY-465DataDomain deletion results in menus in inconsistent state CAY-461Package name not prepended on import CAY-347Entity Tabs and Delete button inconsistencies CAY-464Hanging/infinite-loop problem when issuing a non-selecting SQL command against Oracle 8.1.6 CAY-449SingleObjectQuery glitches CAY-170Class Generation Bug CAY-450Oracle fetch limit syntax conflicts with ordering CAY-407JOINT_PREFETCH_SEMANTICS + in-memory DISTINCT = incorrect results CAY-284Allow for mix of null and non null attributes for compound FK relationships CAY-462Incorrect tool tip on "Create Derived DbEntity" CAY-463Improved DbEntity icons Cayenne Release Notes 1.2 M11 milestone Date: 2/13/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-439 Ensure the same connection is (re)used within a thread transaction for a given DataNode. Among other things this improvement makes it possible to execute arbitrary queries/updates inside TransactionDelegate, with a guarantee that they are a part of the the same transaction as the one used by Cayenne to commit objects. * CAY-442 Supporting list parameters in SQLTemplate #bind directive * CAY-380 DataContext.localObjects() is deprecated and replaced with a new method DataContext.localObject(ObjectId, Persistent) that supports objects in MODIFIED and DELETED state. * An initial PARTIAL implementation of the nested DataContexts feature - nested DataContext can be created and objects can be selected through a chain of contexts. However commit is still not implemented. * GenericSelectQuery is deprecated. All constants it declares are moved to a new interface QueryMetadata. * To force refresh of cached query results, one of the two new cache policies should be used instead of "setRefreshingObjects(..)" ("setRefreshingObjects" should only be used for its original purpose - refreshing individual objects, not list contents). Also check out the new caching page in documentation: http://objectstyle.org/confluence/display/CAYDOC/Caching+Query+Results * Addressing concurrency issues in Derby PK generator. * Speeding up very slow Modeler attribute and relationship operations. * "org.objectstyle.cayenne.opp.OPPChannel" is replaced by a different interface - "org.objectstyle.cayenne.DataChannel". Previous OPPChannel messaging-based API made little sense in the local application context. Note that this does NOT affect 99.99% of the users. * DataContextDelegate changes: "willPerformSelect" method is deprecated, instead two methods added: "willPerformQuery" (for selecting queries) and "willPerformGenericQuery" (for all other queries). * Implementation of QueryEngine by DataContext is deprecated. But now DataContext implements DataChannel and ObjectContext interfaces instead. * Removed 'performNonSelectingQuery' method from ObjectContext and CayenneContext. It is redundant. Use 'performGenericQuery(query).getFirstUpdateCounts(query)' instead. * CAY-440 Partial support for one-to-many relationship with a source column that is not a PK. * A number of changes to Cayenne stack that should not affect 99% of the users: - QueryMetadata interface that decouples query object from its runtime execution parameters - wider use of ClassDescriptors, not only in remote contexts, but in the DataContext as well - cleaner decoupled access stack chain, with fewer cross-layer dependencies. Communication between layers is done using specialized Queries. Bugs Fixed: CAY-433 support for JDK 1.5 enums that are inner classes. CAY-418CayenneDataObject.readNestedProperty stumbles on POJO paths CAY-430Cayenne expression evaluation stumbles on java.util.Maps. CAY-422Deferred propagated key error on M10 CAY-417Prefetching one-to-one throws an exception CAY-420TypesMapping.getSqlTypeByJava(byte[]) doesn't work CAY-416batch updated -1 rows CAY-427DataDomainView.java--label truncation (Container-Managed Transactions) CAY-428AdapterView -- label truncation; requires changing FormLayout setting CAY-426Label truncation in DBEntityTab; change FormLayout column values CAY-409XMLEncoder drops synthetic root for singleton collections CAY-425ObjEntityTab.java--add tooltip to "Sync" button; correct button size in layout CAY-424Tooltips for all toolbar buttons in Modeler CAY-423ShortDescription misspelled in cayennemodeler-string.properties Cayenne Release Notes 1.2 M10 milestone Date: 01/05/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Fixed cross-platform CayenneModeler startup issue. * MacOSX CayenneModeler will now use Aqua look and feel by default. If you already used Cayenne on Mac, you may need to delete the old preferences. Go to "/Users/username/.cayenne/modeler.preferences" and remve the following lines: Editor.lookAndFeel=... Editor.theme=... * New method: DataObjectUtils.objectForQuery(DataContext, Query) * Remote Object Persistence: - added 'localObjects' to ObjectContext interface. * SQLTemplate no longer requires users to specify whether it is selecting or not. This information is really redundant and can be determined from JDBC in runtime. FrontBase note: you will need FrontBase JDBC driver newer than version 2.5.2. Older driver will not work due to this change. Other Bugs Fixed: * CayenneModeler doesn't react to change in adapter name. * CAY-410Endless loop on remote notifications * CAY-374Generate explicit error message instead of silently ignoring lack of support for Generated columns * CAY-413DataMaps and DataNodes must be alphabetically sorted in the Modeler and cayenne.xml * CAY-408cayenne.xml not found in servlet context path though it is there * CAY-403Incorrect FK statement during schema generation for cross-DB relationships Cayenne Release Notes 1.2 M9 milestone Date: 12/14/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Generated/Identity Columns - http://objectstyle.org/confluence/display/CAY/Generated+Columns - Derby support for generated columns - CAY-361 Modeler now allows to specify generated columns for PK only. Non-pk column can't be generated. - CAY-291Implement support for auto-pks propagation to dependent entities * Custom queries. - Query lifecycle API is simplified. - It is now possible to run any kind of query (including custom and one that is not a GenericSelectQuery) via a DataContext and obtain the results via 'performQuery'. - QueryChain, SingleObjectQuery, RelationshipQuery, NamedQuery can now be used with DataContext. * Native versions of the Modeler for Windows and Mac OS X (CayenneModeler.exe, CayenneModeler.app). * CAY-405 Generic Persistent Object * DataDomain now implements OPPChannel. * "DataContextFactory.createDataContext" method signature change. Previously introduced "DataContextFactory.createDataContext(QueryEngine, ObjectStore)" is replaced with "DataContextFactory.createDataContext(OPPChannel, ObjectStore)". The change of the custom factories should be trivial, as DataContext now has a corresponding constructor and DataDomain implements OPPChannel. * Oracle DATE type is now reverse engineered by default as JDBC TIMESTAMP, as it can store both date and time info. * DbRelationship.srcFkSnapshotWithTargetSnapshot(..) and DbRelationship.srcPkSnapshotWithTargetSnapshot no longer throw an exception when null values are found in primary key snapshot, recognizing that key generation may be deferred (case of DB-generated keys). * Portable ObjectId: ObjectId is now used instead of recently introduced GlobalID within ObjectContext space (i.e. removal of GlobalID only affects remote tier). Still there are substantial changes in the ObjectId itself. To make it portable across the network, we no longer use Java Class as the main key within the id. Instead ObjEntity name string is used for this purpose. UPGRADE NOTE: it wasn't possible to phase out some of the old ObjectId API via deprecation, so methods "getObjClass" and "getObjectClass" are removed completely. Constructors that take Class as the first argument are deprecated and will only work if entity naming follows CayenneModeler default conventions of using unqualified class name as the entity name. * Thread-bound Transactions: QueryEngine.performQueries(Collection,OperationObserver resultConsumer,Transaction) is deprecated and no longer used internally to further decouple layers in the access stack. Instead transaction initiator (either DataContext or a user) must bind an appropriate transaction before executing an operation (or use Transaction.performQueries(..) that does it internally). UPGRADE NOTE: This change only affects users who implemented custom transactions. * Bundled HSQLDB is upgraded from 1.7.3 to 1.8.0.2. Other Bugs Fixed: CAY-358MySQL InnoDB table issues with generated columns CAY-406HSQLDB stored procedure support (as much as HSQLDB itself supports them). CAY-355"validateForX" is called inconsistently Cayenne Release Notes 1.2 M8 milestone Date: 11/24/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Prefetching... CAY-285, CAY-296. For details see this article - http://objectstyle.org/confluence/display/CAY/Prefetching - Selecting queries store prefetches using PrefetchTreeNode. - joint prefetch API (addJointPrefetch, etc.) is removed from SelectQuery, SQLTemplate, ProcedureQuery. Instead Cayenne will try to guess prefetch strategy in runtime. Alternatively users can provide a hint about a desired strategy by changing the semantics of desired PrefetchTreeNode. * New FrontBaseAdapter, with support for BLOB/CLOB, batch updates, etc. * Support for batch updates on PostgreSQL. I am seeing almost 2x increase in speed for large inserts. * CAY-190Now calling "setFetchLimit" on a query is not just a hint to Cayenne on how to process a ResultSet in memory. It includes an appropriate LIMIT clause in generated SELECT SQL for Oracle, Postgres, FrontBase, Openbase, MySQL and HSQLDB databases, resulting in measurable performance increase. Cayenne Release Notes 1.2 M7 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * ObjectContext API: - ObjectContext graph events. - OPPChannel graph events (including remote) - commit/rollback renamed to look like DataContext ones - commitChanges/rollbackChanges - new revertChanges and flushChanges methods. - Runtime-customizable ClassDescriptors. - Auto-sorted relationship list - org.objectstyle.cayenne.util.IndexPropertyList. Currently supported in ObjectContext only, but should be easy to extend to DataContext. * Multi Tier API: - support for shared sessions (peer ObjectContexts controlled by different users share the same parent) - OPPConnector was renamed to OPPConnection (all implementors were renamed accordingly). - web.xml configuration is simplified (see HessianService Javadocs for details). WARINING: You must update your web.xml if you used HessianService with M6, check UPGRADE-NOTES for details. * CAY-395 - The meaning of SnapshotEvent "source" and "postedBy" attributes is reversed per CAY-395 for better efficiency. If you implemented custom listeners of SnapshotEvents, you may need to doublecheck their logic. From now on events use DataRowStore as source, and EventBridge or ObjectStore as postedBy, depending on whether this was a local or a remote event. I.e. the new structure is the opposite to what we used in 1.1. * Built in support for mapping int or character DB columns as JDK 1.5 Enums. No need to register special ExtendedTypes for your custom enums. * JDOM is no longer needed for XML (de)serialization - everything is done using JAXP classes bundled with JDK. * AutoAdapter is introduced. If you are using one of the standard DbAdapters shipped with Cayenne, it is no longer needed to enter it in the Modeler. Cayenne will automatically guess the right adapter from the database metadata in runtime. In CayenneModeler adapter field is moved to a separate tab, as now it doesn't have to be configured in most cases. * No longer storing or relying on ClassLoader stored in Configuration. Thread.currentThread().getContextClassLoader() is what Cayenne now uses internally. * Cayenne stack events are no longer sent via a shared "default" EventManager. Instead an EventManager instance is assigned to Configuration. * EventBridge supports multiple local EventSubjects. * Listener methods registered with EventManager no longer have to be public. Any non-public methods and non-public classes will work. This is nice for implementing listener methods without exposing them in the API (or using inner classes that didn't work before). * Support for ExtendedTypeFactory that among other things enables mapping of interface properties. Bugs Fixed: * Cayenne no longer includes Oracle "recycle bin" tables in reverse-engineering results (those are the tables with names like "BIN$04LhcpndanfgMAAAAAANPw==$0" that are "recycled" dropped tables. * CAY-392ConfigurationException on context reload in Tomcat * CAY-3961.2M6, nodeps & log4j trouble * CAY-397Update Java Package causes error dialog * CAY-372MySQL should drop tables "if exists" * CAY-353Keyboard navigation * CAY-393Change cgen Velocity singleton to VelocityEngine instances * CAY-398Compiler warnings in generated auto classes when using inheritance Cayenne Release Notes 1.2 M6 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Cayenne HEAD branch (i.e. 1.2) will no longer maintain JDK 1.3 comptibility. If JDK upgrade is not an option for you (e.g. you are on WebSphere 5.0), consider sticking with Cayenne 1.1 for the time being. * Cayenne no longer requires Jakarta BeanUtils. * Added support for ObjectIds in qualifier expressions * Changed AUTO_PK_TABLE default definition to include primary key constraint (somewhat related to CAY-245) * org.objectstyle.cayenne.map.MapObject is deprecated and removed from map package classes inheritance hierarchy. If you cast Cayenne mapping objects to MapObject, change the cast to CayenneMapEntry * A contract between Expression and Transformer in Expression.transform(..) is altered. Now Transformer must return Expression.PRUNED_NODE to indicate that a node subtree has to be removed. * Fixed UI bugs in query ordering and prefetch panels. * Deprecated explicit log levels in Query, OperantionHints and DataContext. * CAY-376 DataContext can be subclassed via DataContextFactory. * TempObjectId is deprecated. Superclass is used instead. See TempObjectId javadocs for migration hints. * PostgreSQLAdapter's default "BLOB" mapping is changed from "bytea" to "oid". See UPGRADE notes for details. * CAY-352Pruning during expression transforms is done incorrectly when expression contains nulls. * CAY-360Non-refreshed Named Queries in Modeler throw exception * CAY-386ExtendType doesn't workd with null Blobs (Postgresql) * CAY-382PropertyListSerialization string quoting - fix once and for all * CAY-385[PATCH] Use entrysets when key and value are desired * CAY-381Typos and grammar errors in the user guide * CAY-346Selection moves to next entity on sync * CAY-364Clicking on a non-selected cell takes two clicks * CAY-216Need to exclude System Classpath on Modeler startup * CAY-384Infinite Loop in equals method * CAY-373add importUtils.reserveType() method to reserve this.class type * CAY-371XML encoding / decoding API quirks * CAY-370XML encoding throws NPE if property is null * Multi Tier Progress: - relationships are done - commit/rollback work - added support for HTTP basic authentication to HessianConnector - arbitrary queries are available on the client (watch out - security becomes essential !!). - the following queries should work on the client: NamedQuery, RelationshipQuery, QueryChain, SelectQuery, SQLTemplate. Cayenne Release Notes 1.2 M5 milestone Date: July 22, 2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-79Improvements to Ant cgen task; new ClassGenerator functions * CAY-264 An early preview of distributed data contexts. * CAY-261 XML Encoder/Decoder - this feature is usable now, though still should be considered unstable. * DataPort Ant task is moved from examples to the main tree and is included with Antlib. * SQLTemplateExecutionPlan and SQLTemplateSelectExecutionPlan classes are removed from Cayenne. Keeping it in deprecated state is no longer possible due to SQLAction method signature changes. * A change in the order of loading resources via ResourceLocator (this includes cayenne.xml loading). Now custom classpath locations take precedence over the default one. * Changing default MySQL mapping of JDBC TIMESTAMP to be "DATETIME". This is a more sensible default as TIMESTAMP is autoinitialized by MySQL on insert. * SelectQuery resolves its prefetches during the routing phase. Users who did prefetch query filtering via DataContextDelegate must be aware of this change. Bugs Fixed: * Doing extra checks to prevent double regsitration of new objects - http://objectstyle.org/cayenne/lists/cayenne-devel/2005/07/0006.html * CAY-322cgen task cannot generate classes for cross-DataMap relationships * CAY-339PropertyListSerialization doesn't handle a plus (+) sign in a string and escape it. * CAY-320Boolean properties do not return Boolean.FALSE & Boolean.TRUE * CAY-325Clicking Project Validation errors no longer brings up the offending object * CAY-335HSQLDB Upgrade Breaks Preferences Handling in 1.2M4 * CAY-341Failing to insert into two different tables with identity primary keys on mssql within a single transaction * CAY-148Procedure Queries need result set descriptors * CAY-141ProcedureQuery must support all GenericSelectQuery features. * CAY-343ObjectStore.unregisterNewObjects() should not throw null pointer exception * CAY-303"Query has No Root" warning is shown incorrectly * CAY-345Modeler recreates deleted directories * CAY-327Cgen2 makepair=false doesn't properly set superclass/pkg * CAY-62Validation error dialog stays in front all the time * CAY-315classloader problem in dataport * CAY-334Compile error with JDK1.5 Cayenne Release Notes 1.2 M4 milestone Date: May 7, 2005 ============================================ Changes/New Features: CAY-301A number of Modeler visual improvements and bug fixes (also see CAY-211), including navigation history, entity toolbars, db entity synching with ObjEntities, etc. NOTE: relationships mapping is now done using an info button ("i") on the entity toolbar. CAY-183Adapter for Clouscape/Derby DB (Experimental. Only tested in embedded mode). CAY-312Antlib addition - now Cayenne Ant tasks can be imported as Antlibs Bugs Fixed: CAY-306/CAY-313Fixing API and build process to be more friendly when running under JDK 1.5 CAY-297deadlock between commit and external event CAY-308ObjectStore.processUpdatedSnapshots race condition with ObjectStore.resolveHollow CAY-299PostgreSQL selecting procedure results are processed incorrectly CAY-305hsqldb needs to ignore "db schema" namespace element on CREATE/DROP TABLE syntax CAY-310Calling <DataObject>.addTo<DataObject>List() with a null parameter crashes later in commitChanges() CAY-277ExpressionFactory.noMatchDbExp does not exist Cayenne Release Notes 1.2 Milesone (M3) Date: March 20, 2005 ============================================ Changes: * Support for "joint" prefetches in SelectQuery and SQLTemplate * SQLTemplate support for explicit DataRow columns naming that is different from SQL (via forth parameter in the #result directive) * support for DataContext "userProperties" map CAY-258 Support for specifying generated Java files encoding in the Modeler and cgen task CAY-276Optimistic locking support for delete CAY-15Support for prefetching of flattened relationships (via joint prefetches) CAY-287Postgres default PK generator is changed to use sequences Bugs Fixed: CAY-293Fetch Specs import from EOF. CAY-215resolveFault() needs to throw subclass of CayenneRuntimeException CAY-280Relaxed expression for BigDecimal CAY-290DataRow.createObjectId accepts nulls CAY-256InvalidateObject (also refetch) snapshot sync transient-izes object in other contexts CAY-295Certain preferences required a Modeler restart to be updated CAY-269DB2 throws when there are line breaks in SQLTemplate CAY-99modeler.bat file doesn't handle file paths with spaces CAY-281Cayenne Modeller Not Escaping Strings CAY-260Add javadoc for DataContext.deleteObject() stating NullPointerException thrown Cayenne Release Notes 1.2 Milesone (M2) Date: February 07 2005 ============================================ For the latest information go to the project web site at http://objectstyle.org/cayenne/ To browse individual bug reports, see http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes: - Removed almost all classes and methods deprecated in 1.1. - Changed ObjectId.replacementId API. If your code relies on replacementId (e.g. if you create custom ObjectIds), it is strongly advised that you switch to the new API (which It is actually simpler....) - Upgraded JDOM library to v. 1.0 - [CAY-82] Ant frontend for DbGenerator - Removed system CLASSPATH from Modeler startup scripts. - Thread-local static ClassLoader in Configuration. - Persistence by reachability (CAY-249, part 1) - Updated Expression BNF, replacing "scalarCharExpression" with "scalarExpression" - Unconditionally applying entity sorting on commit, even if DB does not support constraints. - BasicServletConfiguration is deprecated as it is redundant. Superclass has all the functionality needed. All its static methods are extracted into ServetUtil - Expanded deployment chapter of the user guide with extrav options (some existed before but were not documented). - Other documentation updates - [CAY-261 - Experimental] XML encoder/decoder (still very raw and virtually untested) - Full support for jTDS adapter. Bugs Fixed: CAY-246 ClassCastException on EOModel import with numeric password CAY-251 NPE on calling stored proc for SQL Server. CAY-259Error with national characters in DVModeler CAY-255ORA-01000: maximum open cursors exceeded CAY-33Add factory for Commons DBCP to be used as connection pool CAY-266deleteObject should be changed to deleteObjects CAY-252validateForSave NPE when data object has no DataNode maped CAY-206Thread Bound DataContext Retrieval in Servlet Spec 2.3 CAY-195Add method to CayenneDataObject to return it's ObjEntity CAY-268 EOModel import problem for entities with abstract superclasses and flattened relationships Cayenne Release Notes 1.2 Milesone (M1) Date: November 22, 2004 ============================================ Bugs Fixed: CAY-236gui application generates malformed xml. CAY-243Allow Cayenne PK generator to work over SQLServer identity columns. CAY-222Change CREATE statement for HSQLDB when Generating SQL.
Cayenne Release Notes 1.2.4 Date: October 10, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-689 "Null ObjectId" exception from DataContext.localObject() CAY-770 bug / memory leak in DispatchQueue and EventManager CAY-796 Deserialization of DataContext fails when useSharedCache is false CAY-818 Frontbase NUMBERIC type mapping typo CAY-832 enum-mapped columns improperly handled in in expressions CAY-863 Object property unexpectedly set to null through forceMergeWithSnapshot CAY-872 Potential bug deleting uncommited objects from a nested DataContext Cayenne Release Notes 1.2.3 Date: May 16, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-597 XML Encoder with Mapping outputs incorrect XML CAY-741 Indexing entities with inheritance across datamaps CAY-743 Reordering mappings from domain in xml resulting in StackOverflowException CAY-750 Stored procedures without parameters fail on Postgres 8 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-763 XML Deserialization fails on relationships when using a mapping file 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-778 Cayenne jar manifest lists project.version as "cayenne" CAY-781 Bug in CayenneDataObject.readNestedProperty 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() Cayenne Release Notes 1.2.2 Date: January 18, 2007 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-565 LRUMap NPE CAY-652 Exception with Tomcat's session restore capability CAY-653 overriding setPersistentState() in unreliable in three tier environment with CayenneContext Cayenne Release Notes 1.2.1 Date: August 30, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Bug Fixes: CAY-639JDBC datatype of MySQL INT UNSIGNED is mapped as java.lang.Integer should be java.lang.Long CAY-617ROP: shared session functionality over XMPP is broken CAY-614ToManyList contains references to transient objects CAY-609Modeler prevents intermediate prefetch creation CAY-608Prefetch validation incorrectly reports error on multi-step prefetches CAY-607Long query name or qualifier expand query text field off screen CAY-603QueryChain.isFetchingDataRows() incorrectly returns "false" - must be "true" all the time CAY-601Problem resolving relationships in nested DataContext Cayenne Release Notes 1.2 final Date: July 16, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes since RC2: * New Remote Object Persistence Tutorial Bug Fixes since RC2: CAY-592Modifying an object that has a to one relationship to an object that uses inheritance, breaks the relationship. CAY-551Unregistering objects is not cleaning up the context correctly CAY-585Cayenne uses incorrect ObjectID in some situations, resulting in inability to resolve hollow object CAY-588Sybase PK generation problem CAY-595Cayenne can fail (optimistic locking exception) when deleting a record that was just inserted/commited to the DB CAY-582org.objectstyle.cayenne.property.FieldAccessor accesses private class fields with same name as relationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-579Incorrect permissions on modeler.sh on Mac CAY-587Plist serialization of empty strings is incorrect Cayenne Release Notes 1.2 RC2 (release candidate) Date: June 23, 2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://issues.apache.org/cayenne/ Changes: * New completely rewritten Quick Start tutorial. Bug Fixes: CAY-556Add {excerpt} sections to all doc chapters with children CAY-570Broken incremental list local cache (cayenne-rop) CAY-575Peer CayenneContexts on the remote client do not synchronize changes with each other - bug in ClientChannel CAY-562Modeler Class Generation Inconsistencies CAY-563NPE when syncing ObjEntity w/out DbEntity CAY-564dataport exclude/include filters ignored CAY-555Chapter ordering problem CAY-566"To Dep PK" checkbox is incorrectly checked when mapping DbRelationship CAY-567Synchronizing pattern compilation block in PatternMatchNode CAY-571DataRow Hessian serialization doesn't work CAY-572SQLTemplate.queryWithParameters() loses cache key CAY-573Deadlock involving connection pool, IncrementalFaultList, and DataRowStore Cayenne Release Notes 1.2 RC1 (release candidate) Date: 05/31/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes: CAY-524Stress Testing Cayenne CAY-5251.2 Release Profiling and Optimization CAY-336EO FetchSpecs don't import correctly CAY-415CayenneModeler ClassCastException on save CAY-326Modeler not descriptive in many-to-many issues CAY-557Rollback not processed correctly on optimistic locking exceptions CAY-469An issue with EOFetchSpecification import CAY-363Global optimistic locking update does not update attributes/relationships CAY-559JDBC Boolean mapping to DB2 problem Cayenne Release Notes 1.2 B3 (beta) Date: 05/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Modeler Improvements: * More options added to the "Advanced" mode panel of the class generator * Fixed early project closing when a new project is opened - now if the new project selection is canceled, currently opened project stays opened. * Fixed refreshing of the "Recent Files" menu. Bug Fixes: CAY-515XMLDecoder doesn't work with collections of leaf objects when mapping descriptor is used CAY-516XMLDecoder + Mapping Descriptor - ignores property 'attribute' settings CAY-519XMLDecoder + Mapping File: exception on decoding a collection of non-entities CAY-518"attribute.type" contains invalid character: [ CAY-521Instantiation of wrong Classes if more the 1 class has the same name (within different packages) CAY-531ObjectDetachOperation not resolving faults, resulting in invalid client-side objects. CAY-532Modeler Client Class Generator fails to open with an exception CAY-544validateForSave is called on phantoms with to-one relationships CAY-207ExtendedTypes don't work properly with entity subclasses CAY-542Re-registered objects lose their relationships CAY-545Paginated list - connection is committed before the result set is read CAY-546derby and blob/clob larger than 1MB CAY-548remove uncomitted flattened many-to-many CAY-517Omission in PropertyUtils - no support for converting String to JDK 1.5 Enum CAY-502Select/deselect all tables on Generate Schema panel CAY-191Datatypes of 'Source' and 'Target' of joins should match CAY-513Code Generation - UI table header not displaying property CAY-235support for Ingres database CAY-547Deleting new objects leaves null object in context. CAY-533"Create Derived DbEntity"-button has wrong tooltip CAY-537TypesMapping.getSqlTypeByJava ignores primitives CAY-528NullPointer Execption by deleting a Class Cayenne Release Notes 1.2 B2 (beta) Date: 04/17/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Bug Fixes CAY-500To-one relationships are broken on the client CAY-501committing dependent relationships result in "Some parts of FK are missing in snapshot, join:" error CAY-503Uniquing broken CAY-497RemoteIncrementalFaultList used in paginated client queries throws IllegalArgumentException when page size exceeds list size CAY-496RemoteIncrementalFaultList used in paginated client queries throws CayenneRuntimeException when list size is equal to page isze CAY-495RemoteIncrementalFaultList used in paginated client queries throws an indexoutofbound exception when list size is divisable by page size CAY-498ObjectId is TEMP after commit to database CAY-499NPE on prefetching with shared cache CAY-201Modeler generate db schema doesn't properly handle post-Oracle 8 TIMESTAMP fields CAY-494When "Create ObjEntity" button is clicked for the same DbEntity three times in a row, CayenneModeler hangs CAY-487DataPort bugs and improvements CAY-488Cayenne Modeler Support for Client Class Generation Cayenne Release Notes 1.2 B1 (beta) Date: 04/06/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * DataObjectUtils.objectForQuery(..) now returns Object instead of DataObject to accomodate DataRows, Persistent objects, etc. If you are using this method, you may need to use a cast. * "opp" package and all classes whose names started with OPP* were renamed. Check a 'web.xml' descriptor and change the following configuration parameters to reflect the new names: - cayenne.OPPRemoteService.EventBridge.factory to cayenne.RemoteService.EventBridge.factory - org.objectstyle.cayenne.opp.hessian.HessianServlet to org.objectstyle.cayenne.remote.hessian.service.HessianServlet * WebApplicationListener and WebApplicationContextProvider are deprecated. Now the official choice for webapp configuration is WebApplicationContextFilter. Still users are free to use custom listeners if they choose to do so, i.e. the deprecation is done to reduce confusion regarding the choices, not because the listener approach doesn't work. * CAY-471Nested DataContexts - change notifications * CAY-474Delete Rules in remote CayenneContext * CAY-485Modeler gives cryptic method in alert box when user tries to create classes * CAY-473Better caching in remote CayenneContext * CAY-472Remoting Layer: Hessian sessions and session timeouts * CAY-491Support Schemas for HSQLDB 1.8 during schema generation * CAY-479Reverse engineer does not load target FKs on partial import (in fact this was already fixed in M12) * CAY-490On client class generation, cgen should automatically filter out entities that are explicitly not supported on the client * CAY-391Exposing Primary Key to objEntity from dbEntity and then synching * CAY-346Selection moves to next entity on sync * CAY-484Add missing toolbar to the DbEntity panel Cayenne Release Notes 1.2 M12 milestone Date: 3/23/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Nested DataContext commits. * Modeler features platform-native keyboard shortcuts. I.e. Mac users will no longer have to figure out where the "Ctrl" key is located. Command-S will save the project. * Added FK constraints support to MySQLAdapter. It is enabled automatically if the AutoAdapter detects that InnoDB table type is default. I.e. if you want it to operate in a DB-independent fashion, do not expicitly set MySQLAdapter in the Modeler and let Cayenne guess it. * Support for custom cgen templates located in jar files. Prior to M12 custom templates were only accessible if as files in the local filesystem. * SingleObjectQuery is renamed to ObjectIdQuery to reflect the fact that it supports data rows as well. For documentation see http://objectstyle.org/confluence/display/CAY/ObjectIdQuery * First cut of the new IngresAdapter. Bugs Fixed: CAY-470Algorithm for flushing changes from child nested DataContext to parent CAY-482there can be only 254 ids created *within the same millisecond CAY-446Commit operation should respect existing thread-bound transactions CAY-448NPE when shutting down DataDomain CAY-465DataDomain deletion results in menus in inconsistent state CAY-461Package name not prepended on import CAY-347Entity Tabs and Delete button inconsistencies CAY-464Hanging/infinite-loop problem when issuing a non-selecting SQL command against Oracle 8.1.6 CAY-449SingleObjectQuery glitches CAY-170Class Generation Bug CAY-450Oracle fetch limit syntax conflicts with ordering CAY-407JOINT_PREFETCH_SEMANTICS + in-memory DISTINCT = incorrect results CAY-284Allow for mix of null and non null attributes for compound FK relationships CAY-462Incorrect tool tip on "Create Derived DbEntity" CAY-463Improved DbEntity icons Cayenne Release Notes 1.2 M11 milestone Date: 2/13/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-439 Ensure the same connection is (re)used within a thread transaction for a given DataNode. Among other things this improvement makes it possible to execute arbitrary queries/updates inside TransactionDelegate, with a guarantee that they are a part of the the same transaction as the one used by Cayenne to commit objects. * CAY-442 Supporting list parameters in SQLTemplate #bind directive * CAY-380 DataContext.localObjects() is deprecated and replaced with a new method DataContext.localObject(ObjectId, Persistent) that supports objects in MODIFIED and DELETED state. * An initial PARTIAL implementation of the nested DataContexts feature - nested DataContext can be created and objects can be selected through a chain of contexts. However commit is still not implemented. * GenericSelectQuery is deprecated. All constants it declares are moved to a new interface QueryMetadata. * To force refresh of cached query results, one of the two new cache policies should be used instead of "setRefreshingObjects(..)" ("setRefreshingObjects" should only be used for its original purpose - refreshing individual objects, not list contents). Also check out the new caching page in documentation: http://objectstyle.org/confluence/display/CAYDOC/Caching+Query+Results * Addressing concurrency issues in Derby PK generator. * Speeding up very slow Modeler attribute and relationship operations. * "org.objectstyle.cayenne.opp.OPPChannel" is replaced by a different interface - "org.objectstyle.cayenne.DataChannel". Previous OPPChannel messaging-based API made little sense in the local application context. Note that this does NOT affect 99.99% of the users. * DataContextDelegate changes: "willPerformSelect" method is deprecated, instead two methods added: "willPerformQuery" (for selecting queries) and "willPerformGenericQuery" (for all other queries). * Implementation of QueryEngine by DataContext is deprecated. But now DataContext implements DataChannel and ObjectContext interfaces instead. * Removed 'performNonSelectingQuery' method from ObjectContext and CayenneContext. It is redundant. Use 'performGenericQuery(query).getFirstUpdateCounts(query)' instead. * CAY-440 Partial support for one-to-many relationship with a source column that is not a PK. * A number of changes to Cayenne stack that should not affect 99% of the users: - QueryMetadata interface that decouples query object from its runtime execution parameters - wider use of ClassDescriptors, not only in remote contexts, but in the DataContext as well - cleaner decoupled access stack chain, with fewer cross-layer dependencies. Communication between layers is done using specialized Queries. Bugs Fixed: CAY-433 support for JDK 1.5 enums that are inner classes. CAY-418CayenneDataObject.readNestedProperty stumbles on POJO paths CAY-430Cayenne expression evaluation stumbles on java.util.Maps. CAY-422Deferred propagated key error on M10 CAY-417Prefetching one-to-one throws an exception CAY-420TypesMapping.getSqlTypeByJava(byte[]) doesn't work CAY-416batch updated -1 rows CAY-427DataDomainView.java--label truncation (Container-Managed Transactions) CAY-428AdapterView -- label truncation; requires changing FormLayout setting CAY-426Label truncation in DBEntityTab; change FormLayout column values CAY-409XMLEncoder drops synthetic root for singleton collections CAY-425ObjEntityTab.java--add tooltip to "Sync" button; correct button size in layout CAY-424Tooltips for all toolbar buttons in Modeler CAY-423ShortDescription misspelled in cayennemodeler-string.properties Cayenne Release Notes 1.2 M10 milestone Date: 01/05/2006 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Fixed cross-platform CayenneModeler startup issue. * MacOSX CayenneModeler will now use Aqua look and feel by default. If you already used Cayenne on Mac, you may need to delete the old preferences. Go to "/Users/username/.cayenne/modeler.preferences" and remve the following lines: Editor.lookAndFeel=... Editor.theme=... * New method: DataObjectUtils.objectForQuery(DataContext, Query) * Remote Object Persistence: - added 'localObjects' to ObjectContext interface. * SQLTemplate no longer requires users to specify whether it is selecting or not. This information is really redundant and can be determined from JDBC in runtime. FrontBase note: you will need FrontBase JDBC driver newer than version 2.5.2. Older driver will not work due to this change. Other Bugs Fixed: * CayenneModeler doesn't react to change in adapter name. * CAY-410Endless loop on remote notifications * CAY-374Generate explicit error message instead of silently ignoring lack of support for Generated columns * CAY-413DataMaps and DataNodes must be alphabetically sorted in the Modeler and cayenne.xml * CAY-408cayenne.xml not found in servlet context path though it is there * CAY-403Incorrect FK statement during schema generation for cross-DB relationships Cayenne Release Notes 1.2 M9 milestone Date: 12/14/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Generated/Identity Columns - http://objectstyle.org/confluence/display/CAY/Generated+Columns - Derby support for generated columns - CAY-361 Modeler now allows to specify generated columns for PK only. Non-pk column can't be generated. - CAY-291Implement support for auto-pks propagation to dependent entities * Custom queries. - Query lifecycle API is simplified. - It is now possible to run any kind of query (including custom and one that is not a GenericSelectQuery) via a DataContext and obtain the results via 'performQuery'. - QueryChain, SingleObjectQuery, RelationshipQuery, NamedQuery can now be used with DataContext. * Native versions of the Modeler for Windows and Mac OS X (CayenneModeler.exe, CayenneModeler.app). * CAY-405 Generic Persistent Object * DataDomain now implements OPPChannel. * "DataContextFactory.createDataContext" method signature change. Previously introduced "DataContextFactory.createDataContext(QueryEngine, ObjectStore)" is replaced with "DataContextFactory.createDataContext(OPPChannel, ObjectStore)". The change of the custom factories should be trivial, as DataContext now has a corresponding constructor and DataDomain implements OPPChannel. * Oracle DATE type is now reverse engineered by default as JDBC TIMESTAMP, as it can store both date and time info. * DbRelationship.srcFkSnapshotWithTargetSnapshot(..) and DbRelationship.srcPkSnapshotWithTargetSnapshot no longer throw an exception when null values are found in primary key snapshot, recognizing that key generation may be deferred (case of DB-generated keys). * Portable ObjectId: ObjectId is now used instead of recently introduced GlobalID within ObjectContext space (i.e. removal of GlobalID only affects remote tier). Still there are substantial changes in the ObjectId itself. To make it portable across the network, we no longer use Java Class as the main key within the id. Instead ObjEntity name string is used for this purpose. UPGRADE NOTE: it wasn't possible to phase out some of the old ObjectId API via deprecation, so methods "getObjClass" and "getObjectClass" are removed completely. Constructors that take Class as the first argument are deprecated and will only work if entity naming follows CayenneModeler default conventions of using unqualified class name as the entity name. * Thread-bound Transactions: QueryEngine.performQueries(Collection,OperationObserver resultConsumer,Transaction) is deprecated and no longer used internally to further decouple layers in the access stack. Instead transaction initiator (either DataContext or a user) must bind an appropriate transaction before executing an operation (or use Transaction.performQueries(..) that does it internally). UPGRADE NOTE: This change only affects users who implemented custom transactions. * Bundled HSQLDB is upgraded from 1.7.3 to 1.8.0.2. Other Bugs Fixed: CAY-358MySQL InnoDB table issues with generated columns CAY-406HSQLDB stored procedure support (as much as HSQLDB itself supports them). CAY-355"validateForX" is called inconsistently Cayenne Release Notes 1.2 M8 milestone Date: 11/24/2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Prefetching... CAY-285, CAY-296. For details see this article - http://objectstyle.org/confluence/display/CAY/Prefetching - Selecting queries store prefetches using PrefetchTreeNode. - joint prefetch API (addJointPrefetch, etc.) is removed from SelectQuery, SQLTemplate, ProcedureQuery. Instead Cayenne will try to guess prefetch strategy in runtime. Alternatively users can provide a hint about a desired strategy by changing the semantics of desired PrefetchTreeNode. * New FrontBaseAdapter, with support for BLOB/CLOB, batch updates, etc. * Support for batch updates on PostgreSQL. I am seeing almost 2x increase in speed for large inserts. * CAY-190Now calling "setFetchLimit" on a query is not just a hint to Cayenne on how to process a ResultSet in memory. It includes an appropriate LIMIT clause in generated SELECT SQL for Oracle, Postgres, FrontBase, Openbase, MySQL and HSQLDB databases, resulting in measurable performance increase. Cayenne Release Notes 1.2 M7 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * ObjectContext API: - ObjectContext graph events. - OPPChannel graph events (including remote) - commit/rollback renamed to look like DataContext ones - commitChanges/rollbackChanges - new revertChanges and flushChanges methods. - Runtime-customizable ClassDescriptors. - Auto-sorted relationship list - org.objectstyle.cayenne.util.IndexPropertyList. Currently supported in ObjectContext only, but should be easy to extend to DataContext. * Multi Tier API: - support for shared sessions (peer ObjectContexts controlled by different users share the same parent) - OPPConnector was renamed to OPPConnection (all implementors were renamed accordingly). - web.xml configuration is simplified (see HessianService Javadocs for details). WARINING: You must update your web.xml if you used HessianService with M6, check UPGRADE-NOTES for details. * CAY-395 - The meaning of SnapshotEvent "source" and "postedBy" attributes is reversed per CAY-395 for better efficiency. If you implemented custom listeners of SnapshotEvents, you may need to doublecheck their logic. From now on events use DataRowStore as source, and EventBridge or ObjectStore as postedBy, depending on whether this was a local or a remote event. I.e. the new structure is the opposite to what we used in 1.1. * Built in support for mapping int or character DB columns as JDK 1.5 Enums. No need to register special ExtendedTypes for your custom enums. * JDOM is no longer needed for XML (de)serialization - everything is done using JAXP classes bundled with JDK. * AutoAdapter is introduced. If you are using one of the standard DbAdapters shipped with Cayenne, it is no longer needed to enter it in the Modeler. Cayenne will automatically guess the right adapter from the database metadata in runtime. In CayenneModeler adapter field is moved to a separate tab, as now it doesn't have to be configured in most cases. * No longer storing or relying on ClassLoader stored in Configuration. Thread.currentThread().getContextClassLoader() is what Cayenne now uses internally. * Cayenne stack events are no longer sent via a shared "default" EventManager. Instead an EventManager instance is assigned to Configuration. * EventBridge supports multiple local EventSubjects. * Listener methods registered with EventManager no longer have to be public. Any non-public methods and non-public classes will work. This is nice for implementing listener methods without exposing them in the API (or using inner classes that didn't work before). * Support for ExtendedTypeFactory that among other things enables mapping of interface properties. Bugs Fixed: * Cayenne no longer includes Oracle "recycle bin" tables in reverse-engineering results (those are the tables with names like "BIN$04LhcpndanfgMAAAAAANPw==$0" that are "recycled" dropped tables. * CAY-392ConfigurationException on context reload in Tomcat * CAY-3961.2M6, nodeps & log4j trouble * CAY-397Update Java Package causes error dialog * CAY-372MySQL should drop tables "if exists" * CAY-353Keyboard navigation * CAY-393Change cgen Velocity singleton to VelocityEngine instances * CAY-398Compiler warnings in generated auto classes when using inheritance Cayenne Release Notes 1.2 M6 milestone Date: ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * Cayenne HEAD branch (i.e. 1.2) will no longer maintain JDK 1.3 comptibility. If JDK upgrade is not an option for you (e.g. you are on WebSphere 5.0), consider sticking with Cayenne 1.1 for the time being. * Cayenne no longer requires Jakarta BeanUtils. * Added support for ObjectIds in qualifier expressions * Changed AUTO_PK_TABLE default definition to include primary key constraint (somewhat related to CAY-245) * org.objectstyle.cayenne.map.MapObject is deprecated and removed from map package classes inheritance hierarchy. If you cast Cayenne mapping objects to MapObject, change the cast to CayenneMapEntry * A contract between Expression and Transformer in Expression.transform(..) is altered. Now Transformer must return Expression.PRUNED_NODE to indicate that a node subtree has to be removed. * Fixed UI bugs in query ordering and prefetch panels. * Deprecated explicit log levels in Query, OperantionHints and DataContext. * CAY-376 DataContext can be subclassed via DataContextFactory. * TempObjectId is deprecated. Superclass is used instead. See TempObjectId javadocs for migration hints. * PostgreSQLAdapter's default "BLOB" mapping is changed from "bytea" to "oid". See UPGRADE notes for details. * CAY-352Pruning during expression transforms is done incorrectly when expression contains nulls. * CAY-360Non-refreshed Named Queries in Modeler throw exception * CAY-386ExtendType doesn't workd with null Blobs (Postgresql) * CAY-382PropertyListSerialization string quoting - fix once and for all * CAY-385[PATCH] Use entrysets when key and value are desired * CAY-381Typos and grammar errors in the user guide * CAY-346Selection moves to next entity on sync * CAY-364Clicking on a non-selected cell takes two clicks * CAY-216Need to exclude System Classpath on Modeler startup * CAY-384Infinite Loop in equals method * CAY-373add importUtils.reserveType() method to reserve this.class type * CAY-371XML encoding / decoding API quirks * CAY-370XML encoding throws NPE if property is null * Multi Tier Progress: - relationships are done - commit/rollback work - added support for HTTP basic authentication to HessianConnector - arbitrary queries are available on the client (watch out - security becomes essential !!). - the following queries should work on the client: NamedQuery, RelationshipQuery, QueryChain, SelectQuery, SQLTemplate. Cayenne Release Notes 1.2 M5 milestone Date: July 22, 2005 ============================================ For the latest information visit project web site: http://objectstyle.org/cayenne/ To browse individual bug reports check out project issue tracker: http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes/New Features: * CAY-79Improvements to Ant cgen task; new ClassGenerator functions * CAY-264 An early preview of distributed data contexts. * CAY-261 XML Encoder/Decoder - this feature is usable now, though still should be considered unstable. * DataPort Ant task is moved from examples to the main tree and is included with Antlib. * SQLTemplateExecutionPlan and SQLTemplateSelectExecutionPlan classes are removed from Cayenne. Keeping it in deprecated state is no longer possible due to SQLAction method signature changes. * A change in the order of loading resources via ResourceLocator (this includes cayenne.xml loading). Now custom classpath locations take precedence over the default one. * Changing default MySQL mapping of JDBC TIMESTAMP to be "DATETIME". This is a more sensible default as TIMESTAMP is autoinitialized by MySQL on insert. * SelectQuery resolves its prefetches during the routing phase. Users who did prefetch query filtering via DataContextDelegate must be aware of this change. Bugs Fixed: * Doing extra checks to prevent double regsitration of new objects - http://objectstyle.org/cayenne/lists/cayenne-devel/2005/07/0006.html * CAY-322cgen task cannot generate classes for cross-DataMap relationships * CAY-339PropertyListSerialization doesn't handle a plus (+) sign in a string and escape it. * CAY-320Boolean properties do not return Boolean.FALSE & Boolean.TRUE * CAY-325Clicking Project Validation errors no longer brings up the offending object * CAY-335HSQLDB Upgrade Breaks Preferences Handling in 1.2M4 * CAY-341Failing to insert into two different tables with identity primary keys on mssql within a single transaction * CAY-148Procedure Queries need result set descriptors * CAY-141ProcedureQuery must support all GenericSelectQuery features. * CAY-343ObjectStore.unregisterNewObjects() should not throw null pointer exception * CAY-303"Query has No Root" warning is shown incorrectly * CAY-345Modeler recreates deleted directories * CAY-327Cgen2 makepair=false doesn't properly set superclass/pkg * CAY-62Validation error dialog stays in front all the time * CAY-315classloader problem in dataport * CAY-334Compile error with JDK1.5 Cayenne Release Notes 1.2 M4 milestone Date: May 7, 2005 ============================================ Changes/New Features: CAY-301A number of Modeler visual improvements and bug fixes (also see CAY-211), including navigation history, entity toolbars, db entity synching with ObjEntities, etc. NOTE: relationships mapping is now done using an info button ("i") on the entity toolbar. CAY-183Adapter for Clouscape/Derby DB (Experimental. Only tested in embedded mode). CAY-312Antlib addition - now Cayenne Ant tasks can be imported as Antlibs Bugs Fixed: CAY-306/CAY-313Fixing API and build process to be more friendly when running under JDK 1.5 CAY-297deadlock between commit and external event CAY-308ObjectStore.processUpdatedSnapshots race condition with ObjectStore.resolveHollow CAY-299PostgreSQL selecting procedure results are processed incorrectly CAY-305hsqldb needs to ignore "db schema" namespace element on CREATE/DROP TABLE syntax CAY-310Calling <DataObject>.addTo<DataObject>List() with a null parameter crashes later in commitChanges() CAY-277ExpressionFactory.noMatchDbExp does not exist Cayenne Release Notes 1.2 Milesone (M3) Date: March 20, 2005 ============================================ Changes: * Support for "joint" prefetches in SelectQuery and SQLTemplate * SQLTemplate support for explicit DataRow columns naming that is different from SQL (via forth parameter in the #result directive) * support for DataContext "userProperties" map CAY-258 Support for specifying generated Java files encoding in the Modeler and cgen task CAY-276Optimistic locking support for delete CAY-15Support for prefetching of flattened relationships (via joint prefetches) CAY-287Postgres default PK generator is changed to use sequences Bugs Fixed: CAY-293Fetch Specs import from EOF. CAY-215resolveFault() needs to throw subclass of CayenneRuntimeException CAY-280Relaxed expression for BigDecimal CAY-290DataRow.createObjectId accepts nulls CAY-256InvalidateObject (also refetch) snapshot sync transient-izes object in other contexts CAY-295Certain preferences required a Modeler restart to be updated CAY-269DB2 throws when there are line breaks in SQLTemplate CAY-99modeler.bat file doesn't handle file paths with spaces CAY-281Cayenne Modeller Not Escaping Strings CAY-260Add javadoc for DataContext.deleteObject() stating NullPointerException thrown Cayenne Release Notes 1.2 Milesone (M2) Date: February 07 2005 ============================================ For the latest information go to the project web site at http://objectstyle.org/cayenne/ To browse individual bug reports, see http://objectstyle.org/jira/secure/BrowseProject.jspa?id=10000 Changes: - Removed almost all classes and methods deprecated in 1.1. - Changed ObjectId.replacementId API. If your code relies on replacementId (e.g. if you create custom ObjectIds), it is strongly advised that you switch to the new API (which It is actually simpler....) - Upgraded JDOM library to v. 1.0 - [CAY-82] Ant frontend for DbGenerator - Removed system CLASSPATH from Modeler startup scripts. - Thread-local static ClassLoader in Configuration. - Persistence by reachability (CAY-249, part 1) - Updated Expression BNF, replacing "scalarCharExpression" with "scalarExpression" - Unconditionally applying entity sorting on commit, even if DB does not support constraints. - BasicServletConfiguration is deprecated as it is redundant. Superclass has all the functionality needed. All its static methods are extracted into ServetUtil - Expanded deployment chapter of the user guide with extrav options (some existed before but were not documented). - Other documentation updates - [CAY-261 - Experimental] XML encoder/decoder (still very raw and virtually untested) - Full support for jTDS adapter. Bugs Fixed: CAY-246 ClassCastException on EOModel import with numeric password CAY-251 NPE on calling stored proc for SQL Server. CAY-259Error with national characters in DVModeler CAY-255ORA-01000: maximum open cursors exceeded CAY-33Add factory for Commons DBCP to be used as connection pool CAY-266deleteObject should be changed to deleteObjects CAY-252validateForSave NPE when data object has no DataNode maped CAY-206Thread Bound DataContext Retrieval in Servlet Spec 2.3 CAY-195Add method to CayenneDataObject to return it's ObjEntity CAY-268 EOModel import problem for entities with abstract superclasses and flattened relationships Cayenne Release Notes 1.2 Milesone (M1) Date: November 22, 2004 ============================================ Bugs Fixed: CAY-236gui application generates malformed xml. CAY-243Allow Cayenne PK generator to work over SQLServer identity columns. CAY-222Change CREATE statement for HSQLDB when Generating SQL.
Be the first person to add a text review.
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use
Thanks for your rating!
Would you also like to write a review?
Thanks for your review!
Get credit for your review by logging in via OpenID. Click your account provider: