While we still have quiet a few things to iron out to go "gold" with
1.0, I figured it doesn't hurt to look into the future a little bit.
This is an attempt to organize a list of future features in the order
of importance to me personally. All this will most likely not make it
even to 1.1, but well, eventually we will get there. Of course Cayenne
is an OpenSource project and everybody involved can have their own
agenda and set of priorities ;) Any other suggestions?
Andrus
I. Core Framework.
Major features:
1. Distributed caching and update notifications
2. Configurable Optimistic Locking
3. Mapping Inheritance beyond the first steps we are implementing now.
Other features:
4. Caching PreparedStatements and, maybe, translated queries.
5. JMX monitoring of deployed Cayenne applications (may contain a GUI
part as well)
6. Parameterized raw SQL queries
7. Relationships based on outer joins
8. Advanced transaction control for multiple datanodes and EJB
9. String expressions ("artist.artsitName = ..or title likeIgnoreCase
..) in addition to the current expression API.
10. Implement more advanced connection pool (ability to use DataSource
implementations bundled with the driver, etc.), or replace Cayenne
connection pool with 3rd party altogether (Jakarta DBCP?)
11. Making DbRelationships bidirectional.
II. Modeler. (lots of features will require support in the core
framework as well)
0. Preferences panel.
1. Full migration to Scope framework
2. Mapping SelectQueries
3. Allow basic data operations from the modeler, like fetching entities
with qualifiers, running insert/update/delete (could be a good demo of
Cayenne features in client server applications)
4. Creating a modular, pluggable architecture that is easy to extend
(maybe part of 1)
5. Mapping of JDBC driver locations and 3rd party DB adapters,
regardless of system CLASSPATH, autodetect available JDBC drivers
6. Advanced PK generation scenarios. Instead of assigning a particular
method to each DbAdapter, allow users to select method. We can have
generic implementations of LookupTableGenerator, SequenceGenerator,
StoredProcedureGenerator, AutoIncrementGenerator; also we can expand
support for Andriy's extensions that allow configuring PK generation
per entity.
7. Expand class generation options, like generating all entity property
keys as "public static final String", allow pluggable custom generators
to be put in the Velocity template context, allow custom template
selection in the modeler
III. Test Environment (extend beyond simple unit tests)
1. Investigate using Cactus (or smth. else) to emulate web application
testing environment
2. Distributed stress testing to constantly test multithreading
behavior and cache synchronization.
3. Some setup to test multi-database/ejb transactions.
This archive was generated by hypermail 2.0.0 : Wed Apr 30 2003 - 01:11:11 EDT