|
"Maps encourage boldness. They're like cryptic love letters. They make anything seem possible."
- Mark Jenkins, "To Timbuktu"
MetaworX Roadmap
The following paragraphs define the roadmap of the upcomming MetaworX releases. Expect this information
to be updated and changed quite frequently. So check back for changes soon.
Ok, ok. No one starts an open source project with a 1.0 release. And the other important
change in my thinking stems from XP and other such OS projects: Release often.
Sometimes I try to be a perfectionist and don't want to show my work before I am done with it.
But I realize, that this is really counter-productive with an open source effort. I would like
to leverage input from all of the good developers out there.
So...here I am. I plan to publish from now on progressive drops of code (on a monthly basis), but
don't expect to have a working system before release 0.5. Too many are the changes I have in
mind. I try to outline them in the following paragraphs.
| 0.1 - Nucleus Release (Planned for January 2004) |
|
As the current incarnation of the framework still uses TopLink as O/R mapping framework and
TopLink uses direct access to instance fields to populate model objects with values from
the datastore, but Hibernate does not favor this approach and instead relies on getters/setters
for attributes, I have to change some things. The current getters/setters for attributes
contain generated logic for checking security upon access, plus validation logic, etc. Most
of this code follows a certain pattern. With the arrival of AOP it is now possible to
extract that code to aspects, that are dynamically applied when the public interface methods
of a model object are accessed by external code. Should they instead be accessed from some
framework code (like the O/R mapping layer) no action has to be taken.
Another area that needs attention and that is also affected by the AOP approach is
the treatment of custom code, that can be added by a developer to model objects. Currently
there were protected code sections, where a developer could put his code to be preserved
in case of regeneration of the model objects. This is a fragile concept, that does not
guarantee, that no code gets lost. These protected code sections do also make the generator
code more complex, as the generator has to take care of them. As the current generator has
tight integration with IBM's old VisualAge for Java IDE and is on its way to be ported or
should I say rewritten for Eclipse, it would be much easier, when I have not to care about
protected code sections.
This leads to the following changes/enhancements in this release:
- Database support: Only MS SQL Server (for historical reasons)
- O/R mapping support: Oracle TopLink (for historical reasons)
- Moving accessor logic to aspects (using Nanning) and optional pre- and post-processing methods
- The new JUnit tests will all run
- Functioning query mechanism on existing (sample) model objects (also across relationships)
- NOTE: You will NOT be able to use the generator to create new model objects in this release
|
| 0.2 - Hydrogen Release (Planned for February/March 2004) |
- Add MySQL Support
- First release of generator/workbench as Eclipse plug-in
|
| 0.3 - Helium Release (Planned for March/April 2004) |
- Add Hibernate Support
- Upgrade Tapestry to 3.0 (lots of things have changed since 1.6)
- Power this site using the framework (as proof of concept)
|
| Lithium Release |
|
|
| Beryllium Release |
|
|
| Boron Release |
|
|
| Carbon Release |
|
|
| Nitrogen Release |
|
|
|