2009-11-17 19:26:17 UTC
I've briefly looked through current JIRAs, mixed it with my own thoughts and
what I recently saw on the mailing lists. I've managed a little list of
features which are desired in Cayenne by me or someone else. Firstly I'd
like to discuss them on dev list, and after that present on users list, so
that they (users) could share their own ideas. The list can contain all
aspects of Cayenne, such as core functionality, GUI support, third-party
integration or some spec compliance. There's no guarantee that any of this
features will appear in Cayenne 3.1, whose development had de-facto started.
But at least we can have in mind other's thoughts and opinions. The list can
appear very messy, but we've not discussed any roadmap recently (in fact,
never since I'm in the project). Of course, there's no assignnee on any of
the tasks, but if there's anyone volunteering whether of the team or not,
please say it :)
Any ideas/critics/comments are greatly welcomed. We can start a new thread
on any specific feature.
So, my list (without any specific order):
--- Query generics (CAY-1294) - this is largely desired task, but it can
only be done with lots of rework of guts of Cayenne, if ever can in current
architecture. More info in the Jira.
--- Linking Cayenne with some IoC container (more at
http://markmail.org/message/xyyixpaolg45cj4x). in fact, the work had already
started by Andrus.
--- Finish (vertical) inheritance (CAY-1090) - not sure, how much is to be
done there. Link to description is in Jira.
--- Managing DB indexes with Cayenne (CAY-204). This is useful when
forward-engineering, i.e. starting with Cayenne project, then put it in
database (especially many databases).
--- Add support for pre-ordering of relationships (CAY-477) - very useful
feature. Miss it a lot, although never thought about how to implement it.
--- Allowing "lazy" attributes and/or streaming of large data (CAY-316).
Currently Cayenne is quite weak in working with LOBs. For instance, one have
to create separate table for LOBs so that all data is not eagerly fetched in
--- ROP: add lifecycle callbacks for client classes.
--- ROP: unify client- and server classes. i really want to see classes that
can work both on client and server someday.
--- Create Eclipse plugin for Cayenne.
This is a very large task, somewhat discussed at
Noone disputes the need of such plugin in general, but we need a leader to
start the project. Personally, I can't do that because of serious lack of
knowledge in SWT.
No matter whether we succeed in creation of plugin or stay with existing
modeler, following points must be improved from our current state:
--- Add some graphical modeling editor for ER and Class diagrams (CAY-762).
Maybe be able to import some existing formats.
--- Stop using HSQL internally in modeling (e.g. switch to JDK preferences).
It is slow and buggy.
--- Improve XML Project <---> code interaction. E.g. generate classes
automatically, generate listener classes and so on.
--- Make GUI tool it more user-friendly (many JIRAs for that, also was a
thread recently, can't find it now). we really can improve user interface
(remove extra clicks, change button positioning etc) and design.
That'll be enough for the first time :)