Pure-CMP & FAQ Module revamp
hxp Apr 27, 2004 4:56 AMJulien --
After reading the code for Jae's News module and reading his comments, it's becoming clear that you folks are pretty open to the pure-CMP approach that I've been advocating for the past few months -- and Jae is making good progress in the right direction. Nice!
I thought I would have to do some arm-twisting to get everyone to see the value of letting-go of the rest of the php/sql legacy, and moving to a pure-CMP backend architecture ..... and I had been waiting till after 1.1 to do that. So although I already have working code for 2 modules, before contributing it I was working on writing several documents/wikis to explain the why and how of pure-CMP.
I don't yet have the dump/load utility written, which I was planning to use to stuff the entities with initial data... which would be required to do a full replacement for the setup.xml/ddl/sql embedded intialization data. But I see that Jae's News module doesnt even attempt to stuff dummy data in at deploy time... so now I realize that you might be interested in what I already have running.
I have the backends of 2 modules -- FAQ and Quotes -- revamped to a pure-CMP approach. Builds and deploys are clean in my tests on HSQL, and operation is essentially the same as before (with no dummy data preloaded, of course). (Early tests on MySQL show a bug which can be fixed either of several ways; we can discuss later on the thread.) So I've successfully upgraded the Nukes FAQ module to pure-CMP so that it doesnt use sql/ddl anymore at all. I've recently gotten xdoclet, unknown-pk, and CMR to coexist without problems.
My original purpose with revamping FAQ & Quotes was to prove the concept so that pure-CMP can be used for all of Nukes2.0... provide some templates for how to do it... and inspire the team to move in that direction.
But now it looks like my work could also be useful for the 1.1 release. I can diff and submit patches (not my preference, with 5+ files that will need to be revved repeatedly), or submit whole modules, or with CVS RW, commit the changes to either HEAD or a pure R&D branch. If you want me to go the CVS route, I'm willing to become the maintainer of the FAQ module, and begin reworking the rest of it (some for 1.1; more for 1.2). My first priority would be to test & solidify the pure-CMP backend, and converge my approach with the approach that Jae is using in News. I feel good about that for 1.1.
I will be travelling from mid-May to early-July (and unavailable for coding), so I don't want to raise expectations too much.
From July onwards, I would foresee revamping & enhancing the entire FAQ module, consistent with JSR-168 and whatever frontend architecture is optimal for Nukes at that point.
I'd also be willing to coordinate some volunteers to rewrite many or all of the module EJBs to conform to the pure-CMP approach, and to be the conduit for reviewing and committing the changes to cvs.
The shift to pure-CMP means big simplifications in the whole "installer" area; and a new xml-based dump/load utility will allow far better migration, initialization, and bulk import/export. (I'll post wiki pages to describe what I have in mind in these areas... If some of this doesn't make sense yet, it's because I've got a pretty extensive architecture thought out for the Nukes backend, and really need to write a whitepaper or collection of wikis for the team to review and discuss.)
But maybe more important for now, I'm ready to switch into code-contribution mode.
--- Howard
FYI, this was the posting that I've changed my mind about:
"hxp" wrote:
Dennis --"thepriz" wrote:
Someone was working on the faq module how is that comming?
Yeh, I said that I was happy that you picked Polls because I was making some changes to FAQ... but that's not because I was doing anything intended for 1.1 release.
If you get done with Polls and have time to do FAQ before 1.1, please do it.
My changes have zero to do with the front-end stuff (stripping out inline html, moving to templates, etc, or the jsr-168 impl) you guys are currently working on. My changes are 100% concerned with moving the backend to pure-CMP, with automatic pk generation, automatic table create/alter/delete, etc. After I successfully did this with Quotes (which has no CMR), I picked FAQ because it has the amount of CMR that I want to tackle next, and it seemed to be a "backwater module" that noone was paying any attention to (when I dont have CVS RW yet, I try to work where noone else is making frequent changes). But I've run into a tricky CMR-unknownpk-xdoclet interaction that I haven't had time to solve or to ask for help on; soon I'll write up this issue so the CMP/CMR/XDoclet gurus can tell me whether this is a bug in 3.2.3 ...or in xdoclet ...or I'm doing something stupid 8-).
So my FAQ changes are really just part of some early (proof-of-concept) legwork on what will become a pretty massive change in the whole nukes backend (not just because it will elimate all the database-specific setup.xml/DDL/SQL garbage, radically simplify installation, and ease schema evolution, ++)........ but it will be quite awhile before it's time to commit it into HEAD. So, if someone makes changes to FAQ for 1.1, or before I get to commit my stuff, that's fine, go for it -- I'll merge my work in later.
Anyway, I dont want to get you guys distracted with this stuff -- until after you've got 1.1 out ;)
-- Howard