Posted
almost 17 years
ago
by
Ari Maniatis
News
created by Ari Maniatis on May 29, 2008 09:07
Cayenne 3 is advancing quickly. This latest milestone also fixes a range of
... [More]
bugs and is recommended for all users of previous Cayenne 3 milestones. As before, Cayenne 2.x should still be used in preference if you want a stable API with a proven track record.
Some of the exciting changes in this milestone of Cayenne include support for outer joins and split expressions, better performance in ROP by sometimes hugely reducing network traffic (CAY-971) and by having the server return lifecycle objects changes to the client automatically, improvements to the modeler, and improving the ability of a paginated list to support many hundreds of thousands of records with efficient use of memory. Of course there is much more besides, so please browse the Jira issues below which interest you. There are very few changes to generics this time, so it should be fairly simple to drop the new jar into your application.
Release Download Link
All feedback, bug reports or feature requests are welcome and there is still time for new features to be added before 3.0 final release. We encourage you to test it in your application and report back any issues you might have so they can be addressed. Upgrade notes can be found here
Changes/New Features Since M3:
CAY-514 implement a "MATCH ALL VALUES" expression
CAY-560 Add support for outer joins
CAY-789 return object diff to client in ROP after commit
CAY-802 Split Expressions
CAY-809 Support for explicit mapping of SQL results with SQLResultSetMapping
CAY-839 Support combination of Persistent objects and scalars in query results
CAY-868 Deprecate EventManager.getDefaultManager() and stop using it
CAY-893 CM Usability: Reopen Last Project on Startup
CAY-929 SelectTranslator support for standard SQL join syntax, including outer joins
CAY-970 Allow application to add DbAdapterFactory to AutoAdapter
CAY-971 ROP GraphDiff "compressor"
CAY-980 Upgrade Derby to 10.3 to support alter table drop column
CAY-994 Add extended enumeration support
CAY-999 Scaling paginated list
CAY-1006 Upgrade Hessian to 3.1.5
CAY-1010 Entity Tab switching on new entity creation
CAY-1011 Add confirmation dialog for delete actions
CAY-1019 Streamlining LOCAL_CACHE handling
CAY-1024 Add .zip generation to Windows profile.
CAY-1026 Drop commons-lang dependency
CAY-1027 Orderly EventManager shutdown
CAY-1033 remove completed merge tokens from view in cayenne modeler
CAY-1035 Replace QueryMetadata String cache policies with an enum
CAY-1038 Upgrade to Ashwood 2.0
CAY-1046 Make PK metadata available via Obj* API.
CAY-1048 Deprecate but preserve functionality of QueryMetadata.isRefreshingObjects()
CAY-1049 Refactor QueryAssembler/SelectTranslator
CAY-1050 MySQLSniffer should configure created adapter to use MySQL default engine for tables
CAY-1051 Oracle 11 driver support - Drop OracleAdapter "optimizations"
Bug fixes since M3:
CAY-574 DataObjectUtils 'objectForPK' should work on the client
CAY-732 Incorrect query with self joins
CAY-785 Cayenne Modeler Fails to Open Project
CAY-982 Client class and superclass names not auto-populated for new ObjEntity.
CAY-983 POST_LOAD called twice
CAY-984 Runtime relationships leak into CayenneModeler
CAY-986 LOCAL_CACHE policy fails when query is paged
CAY-989 Garbage SQL generated for EJBQL subqueries
CAY-992 Modeler does not escape entity names
CAY-998 ROP paginated lists must recover from server LRU query cache overflow
CAY-1003 the paged queries in ROP can fail to fetch the subsequent pages if the client and server are in different timezones
CAY-1005 CM Qualifier (or Declared Qualifier) is not honoured in 100% cases
CAY-1014 Enums as meaningful PK
CAY-1018 Enums fetched via SQLTemplate
CAY-1020 Problem accessing toMany Set relationships on client.
CAY-1028 NPE's in the Modeler for incomplete relationships
CAY-1043 NPE in ConnectionWrapper on rollback
CAY-1044 NPE on commit when the new object was deleted before commit
CAY-1053 MapQueryCache.CacheEntry not serializable
CAY-1054 Error removing object from a paginated list after the object was deleted and the context committed
[Less]
|
Posted
about 17 years
ago
by
Ari Maniatis
News
created by Ari Maniatis on Feb 04, 2008 04:15
The Cayenne team is pleased to present the third milestone of Cayenne 3.
... [More]
This is a development branch of Cayenne and still undergoing significant changes. A number of developers are using it in production systems, however if you want the most stable and tested version of Cayenne you should use version 1.x or 2.x which have a proven track record and are widely used in deployment.
Release Download Link
This milestone release adds some exciting new features, including enhancements to the Cayenne modeler for lifecycle listeners and callbacks and the ability to merge changes to the model back to the database, extensive new work toward full JPA compliance, updates to cgen and the templates, and much more.
This release requires Java 5 as a minimum. The decision to change the required JDK was made after a poll of users revealed no substantial need for Java 1.4 and plenty of benefits in moving forward. Generics are only partially completed in the public API at this time and we continue to try and balance the opportunities and headaches of a clean generics interface.
All feedback, bug reports or feature requests are welcome and there is still time for new features to be added before 3.0 final release. We encourage you to test it in your application and report back any issues you might have so they can be addressed. Upgrade notes can be found here
Changes/New Features Since M2:
CAY-263 cdbgen (DbGeneratorTask) must support classpath and classpathref
CAY-329 Long vs. Integer PK
CAY-716 DataContext.rollbackChangesLocally() is not implemented for nested DataContexts
CAY-735 Embeddable class support in the org.apache.cayenne.map package
CAY-736 Embeddable class support by Cayenne runtime
CAY-879 Storing lifecycle listeners and callbacks in the *.map.xml and loading them back
CAY-884 Add support for H2 Database
CAY-885 merge changes between model and db
CAY-900 Create CayenneModeler Swing UI for managing callbacks and lifecycle listeners
CAY-903 Support primitive types in DataObjects
CAY-904 Switch cayenne to Java 5: merge cayenne-jdk1.4-unpublished to cayenne-jdk1.5-unpublished
CAY-916 Ordering should be able to ignore paths with null elements
CAY-918 An exception during in-memory sorting of IncrementalFaultList
CAY-921 Remove DerivedDbEntity support from Cayenne
CAY-927 Switch to version 1.2 as default generation mechanism , deprecate 1.1 generator
CAY-931 Enable revert action even for projects that are not modified
CAY-933 Embeddable classes - support class generation
CAY-936 Update Velocity templates for generics.
CAY-939 Add a means of updating custom superclass for all client classes.
CAY-945 PropertyUtils support for "compiled" property access
CAY-946 JPA: property-based access to persistent objects
CAY-948 Implement flattened attributes in Cayenne
CAY-949 Factory for lifecycle listeners
CAY-950 Look up callback methods on listener superclasses
CAY-953 JPA: Single Table inheritance
CAY-954 EJBQL Query: Support for single table inheritance
CAY-956 Converter between Expression and EJBQL Expression
Bug fixes since M2:
CAY-882 Configuration shutdown hook thread may lead to memory leaks
CAY-887 CM Usability:Recent Files list shold be longer
CAY-899 Default POST_LOAD callbacks break aggregate queries
CAY-913 ToMany Map relationships cause ClassCastExceptions on commit when the source is Fault
CAY-914 cdataport classloader trouble
CAY-920 ClassCastException when processing delete rules for Map relationships
CAY-924 Update CayenneModeler for OS X Leopard
CAY-926 Refactoring class generator classes
CAY-932 Cancel doesn't cancel when quitting CM with a modified model
CAY-967 Caching doesn't work for paginated queries
CAY-974 Subquery EJBQL returns wrong entity in the result
CAY-976 EntityResolver Fault dependency leads to ClassNotFound on the ROP client
[Less]
|
Posted
over 17 years
ago
by
Andrus Adamchik
News
created by Andrus Adamchik on Nov 11, 2007 04:59
Cayenne team is glad to announce a second milestone of Cayenne 3.0. It
... [More]
contains many new features, such as full EJBQL syntax (delete, update, select, aggregate queries, subqueries, etc.), much improved lifecycle callbacks (no need to wrap the DataContext or enable callbacks explicitly. Modeler callbacks support is coming in M3), to-many relationships mapped as sets and maps (with Modeler support), CayenneModeler search function, adapter for SQLite, and much more.
Release Download Link
Full List of New Features Introduced Since 3.0M1:
CAY-610 A way to shutdown EventManager
CAY-757 JPA should handle managed classes not listed in persistence.xml
CAY-819 Support for per-adapter customization of EJBQL translator
CAY-824 Extract all DataView related code in a separate module
CAY-826 Modeler support for the extra simple property types that Cayenne now supports
CAY-828 Remove DataContextTransactionEventListener, DataObjectTransactionEventListener, DataContextEvent
CAY-833 Remove API for flipping callbacks state in the ClientServerChannel - this is a non-feature
CAY-834 DataContext and DataDomain must support lifecycle callbacks out of the box without wrapping
CAY-836 EJBQL Delete Statement Support
CAY-837 EJBQL Update Statement Support
CAY-838 EJBQL GROUP BY and HAVING support
CAY-840 EJBQL Subquery Support
CAY-841 EJBQL Support for LIKE/ESCAPE and IN conditions
CAY-842 EJBQL Collections condition support
CAY-843 Remove arbitrary reverse relationship mapping limitations
CAY-844 _Auto classes should be "abstract"
CAY-846 EJBQL Support for Functional Expressions
CAY-848 Support for mapping to-many as Maps and Sets and Collections
CAY-855 Add DataContext.objectFromDataRow variety for generic classes
CAY-856 Deprecate CayenneMap and replace all references to it with standard java.util package Maps
CAY-857 Deprecate derived DbEntity and all associated API's - schedule for removal in 3.0M3
CAY-859 Cayenne agent misses JPA entity classes that were loaded before their PersistenceUnits
CAY-867 Special exception for accessing previously shutdown domain
CAY-869 CayenneModeler free-text search
CAY-875 DbAdapter for SQLite
List of Bug Fixes Since 3.0M1:
CAY-770 bug / memory leak in DispatchQueue and EventManager
CAY-796 Deserialization of DataContext fails when useSharedCache is false
CAY-797 Lifecycle callbacks *CallbackInterceptor concept introduces problems for testing equality of contexts
CAY-832 enum-mapped columns improperly handled in in expressions
CAY-835 setting meaningful pk to zero turn on autogenerated keys
CAY-845 DataContext.localObject() object update race condition
CAY-847 Expression NULL handling
CAY-852 NPE in Util.delete for read-protected directories
CAY-853 JPA EntityTransaction must allow multiple begin/commit cycles
CAY-854 the relationships to entities which are "not for client use" are being returned in superclass template
CAY-860 JPA no joins created for to-many relationship
CAY-861 ObjRelationship 'addDbRelationship()' and 'removeDbRelationship' leave object in an inconsistent state
CAY-863 Object property unexpectedly set to null through forceMergeWithSnapshot
CAY-870 Race condition in ClassDescriptorMap
CAY-872 Potential bug deleting uncommited objects from a nested DataContext
CAY-873 maven-cayenne-plugin requires transitive deps declared
CAY-901 Cannot set more than one to-one relationship to null.
[Less]
|
Posted
over 17 years
ago
by
Andrus Adamchik
News
created by Andrus Adamchik on Oct 12, 2007 11:06
Cayenne team is glad to announce a new release of Cayenne 2.0 and 1.2.
... [More]
The 1.2.4/2.0.4 release features a number of important bug fixes and is a recommended upgrade for the current users. As always there is a patch-level compatibility between 1.2.4 and 2.0.4.
Release Download Link
A list of fixed issues:
CAY-698 "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 NUMERIC type mapping typo
CAY-832 enum-mapped columns improperly handled in in expressions
CAY-836 Object property unexpectedly set to null through forceMergeWithSnapshot
CAY-872 Potential bug deleting uncommited objects from a nested DataContext
[Less]
|
Posted
over 17 years
ago
by
Andrus Adamchik
News
updated by Andrus Adamchik to
revision 2
on Jul 28, 2007 04:55.
created by Andrus Adamchik on Jul 28, 2007 03:28
... [More]
Apache Cayenne team is glad to announce the first milestone release of Cayenne 3.0.
Download Link
The milestone status means that the release is under active development, and some of the new features do not yet have all expected bells and whistles, still the existing core is stable and has been deployed in production by a number of users already. If you look at the list of new features, it has quite a few things. I'll just mention of a few of them here:
The most visible addition to Cayenne is a JSR-220 Java Persistence API Provider (aka JPA). I.e. along with familiar Cayenne Persistence API, Cayenne stack now also supports JPA. Current state of the provider can be characterized as "preview" - it is fairly usable but is far from complete.
Existing Cayenne Persistence API evolves towards making 'org.apache.cayenne.ObjectContext' interface the main way to access persistence features (vs. using its more familiar concrete implementation - DataContext). The users are encouraged to store context references as ObjectContext whenever possible for maximum flexibility (and portability to the future releases).
Another important feature is pluggable query cache that allows fine-tuning of cache size and expiration behavior. From author's experience, this is a life-saver on high-traffic sites, where configurable cache is the key to the good performance.
JPA work mentioned above resulted in a number of significant improvements in the existing API. We've added lifecycle callbacks, a powerful new type of object queries - EJBQL Queries, experimental support for POJO persistence. Other nice things like vertical inheritance, embeddables, etc. are coming in the following milestones.
Finally, there is a number of performance improvements, such as faster paginated queries, an leak-free DataContext.
Here a full list of issue from the release notes (note that bug fixes are tracked since release 2.0, and some of them may already be available in 2.0.3)
New Features / Improvements
Removed all API deprecated as of 1.2 and 2.0.
CAY-460 javax.persistence.spi.ClassTransformer to turn POJO into DataObject
CAY-540 extended type and subclasses
CAY-576 Support for cached lists invalidation
CAY-586 Implement commit validation hooks in CayenneContext
CAY-598 JPA patches
CAY-600 Add support for ordering property list serialization in a consistent way
CAY-613 Pluggable Query Cache
CAY-623 Removing broken FireBird adapter
CAY-625 Implement correct "scale" and "precision" for DbAttribute
CAY-632 RefreshQuery - a common mechanism for object and object list invalidation
CAY-636 Switch Cayenne HEAD to hessian 3.0.20
CAY-642 Add support for encrypted JDBC passwords
CAY-645 Support for persisting java.util.Calendar
CAY-647 Support for persisting java.math.BigInteger
CAY-648 Support for persisting java.io.Serializable
CAY-650 Support for char[], java.lang.Character, java.lang.Character[], java.lang.Byte[] as "simple" persistence types
CAY-651 Add convenience method to create missing DB_PATH expressions where there is a corresponding OBJ_PATH expression
CAY-657 Removing/Deprecating ExtendedType.validateProperty()
CAY-660 JPA-like callbacks support in the main Cayenne stack
CAY-666 Support for entity lifecycle callbacks in ClientServerChannel
CAY-667 Support default entity lifecycle callbacks
CAY-668 Link Cayenne callback API with JPA provider
CAY-669 Support superclass entity callbacks
CAY-672 Change the logic to get the Java class from ResultSetMetadata
CAY-673 Removed DVModeler from the release. For backwards compatibility DVModeler from 2.0.x release can be used.
CAY-674 ROP client side validation
CAY-679 Add a new method to ObjectContext: registerNewObject(Object)
CAY-680 Deprecate DataObject.[get|set]DataContext in favor of [get|set]ObjectContext
CAY-681 Deprecate DataObject.fetchFinished() in favor of the callbacks
CAY-683 Deprecate DataContext.createAndRegisterNewObject()
CAY-685 OSQueryCache concurrency improvements
CAY-686 Weed out DataObject references from the access stack classes, replacing them with Persistent and ClassDescriptor
CAY-687 New method: QueryMetadata.getClassDescriptor()
CAY-688 Change signatures of ObjectContext.deleteObject/registerNewObject/localObject to take Object instead of Persistent as an argument
CAY-689 DataObjectUtils must return "Object" instead of "DataObject" from all pk lookup methods
CAY-692 Extra argument needed in ObjectContext.prepareForAccess - whether the property is a fault or not.
CAY-693 DataContext should not return HOLLOW objects in response to ObjectIdQuery()
CAY-694 Support for serialization of enhanced serializable POJO's that do not declare 'serialVersionUID'
CAY-696 true/false in expression
CAY-700 where in () with empty collection
CAY-701 "property" package refactoring
CAY-702 Improve DBCPDataSourceFactory to use it for a JettyPlus DataSource
CAY-703 Cache EntityResolver in the ClientChannel
CAY-713 Improved Meaningful PK support
CAY-717 Modeler doesn't manage FK constraints with MYSQL
CAY-722 Investigate reducing the shared cache lock scope on commit
CAY-737 Deprecate DataContextTransactionEventListener, DataObjectTransactionEventListener, DataContextEvent
CAY-740 MapLoader algorithm improvement
CAY-741 Indexing entities with inheritance across datamaps
CAY-750 Stored procedures without parameters fail on Postgres 8
CAY-763 XML Deserialization fails on relationships when using a mapping file
CAY-773 MySQL stored procedure support
CAY-781 Bug in CayenneDataObject.readNestedProperty
CAY-800 SQLTemplate improvement - API to control the capitalization of the data row labels
CAY-803 EJBQL Parameters support
CAY-805 SQLTemplate improvement: new #bindObjectEqual #bindObjectNotEqual directives
CAY-810 IncrementalFaultList performance improvements
CAY-812 Add ability to drag cayenne.xml to the Modeler from the filesystem
Bug Fixes
CAY-565 LRUMap NPE
CAY-583 Enable batching on Derby
CAY-597 XML Encoder with Mapping outputs incorrect XML
CAY-601 Problem resolving relationships in nested DataContext
CAY-603 QueryChain.isFetchingDataRows() incorrectly returns "false" - must be "true" all the time
CAY-607 Long query name or qualifier expand query text field off screen
CAY-618 Support optional remote events in the ClientChannel
CAY-639 JDBC datatype of MySQL INT UNSIGNED is mapped as java.lang.Integer should be java.lang.Long
CAY-617 ROP: shared session functionality over XMPP is broken
CAY-614 ToManyList contains references to transient objects
CAY-609 Modeler prevents intermediate prefetch creation
CAY-608 Prefetch validation incorrectly reports error on multi-step prefetches
CAY-641 Stack trace instead of error message when relationship and attribute have the same name
CAY-646 Class generator - incorrect java types for classes like java.lang.whatever.XYZ
CAY-649 ExtenedTypeMap.getRegisteredType(Class) incorrectly handles array types
CAY-652 Exception with Tomcat's session restore capability
CAY-653 overriding setPersistentState() in unreliable in three tier environment with CayenneContext
CAY-663 localObject and new objects
CAY-664 Simplify EntityResolver serialization
CAY-671 custom exception class for ROP missing session
CAY-675 compound primary key change
CAY-690 Exception in the Modeler when changing schema on derived entities
CAY-707 SelectQuery automatic cache key build mechanism produces wrong results when DO's are used in qualifier
CAY-710 XMLDecoder decodes Dates wrong
CAY-711 SQLTemplate data row query of PostgreSQL Blob
CAY-712 Allow modifying objects in validate* methods
CAY-718 ROP: handle non-serializable server side exceptions
CAY-721 DataContext shouldn't attempt to fix objects on FaultFailureExceptions
CAY-723 Enable batching on MS SQL Server
CAY-724 Bogus FaultFailureExceptions
CAY-726 SQLTemplate parsing bug when macros appear at the end of line
CAY-743 Reordering mappings from domain in xml resulting in StackOverflowException
CAY-746 Change ConnectionProperties.ADAPTER_KEY value from "cayenne.adapter" to "adapter"
CAY-751 AS400 datafields containing # in field names do not get mapped correctly
CAY-752 Importing EOModel gives Cast Exception
CAY-754 Local jNDI hack breaks when running with Jetty6-Maven
CAY-764 Exception when importing an EOModel with single table inheritance
CAY-765 Programmatically overriding "use share cache" fails
CAY-775 AutoAdapter fails to detect Sybase when running with jTDS driver
CAY-776 1.2 -> 2.0/3.0 Migration - modeler preferences still store org.objectstyle adapter names
CAY-779 Improve usability of non-pooling DriverDataSource for uses outside Cayenne
CAY-783 jgroups config file not removed from cayenne.xml
CAY-784 Deleting an object with a read-only flattened relationship fails
CAY-786 Race condition in DataContext.localObject()
CAY-788 prefetch can set state to modified
CAY-792 Date has issues with different locales when using XMLEncoder/XMLDecoder
CAY-817 HSQLDB schema generation may not correctly flush the changes
CAY-818 Frontbase NUMBERIC type mapping typo
CAY-823 Db-generated PK type mismatch
CAY-830 DataChannelCallbackInterceptor.onQuery NPE
[Less]
|
Posted
almost 18 years
ago
by
Andrus Adamchik
News
updated by Andrus Adamchik to
revision 2
on May 16, 2007 02:23.
created by Andrus Adamchik on May 16, 2007 00:14
... [More]
Cayenne team is glad to announce a new release of Cayenne 2.0 and 1.2 branches. The new release features a long list of bug fixes and is a recommended upgrade for the current users. As always there is a patch-level compatibility between 1.2.3 and 2.0.3.
Release Download Link
A list of fixed issues:
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()
[Less]
|