So I'm working like a dog on the izPack installer http://jira.jboss.com/jira/browse/JBMAIL-60. The new installer has a way to output a automated script. That's how we'll do normal dev builds yet not have divergent jboss-service.xml files. The experience has made me put even more thought into something I'd been a lot thinking about (http://linuxintegrators.com/acoliver/code/?permalink=x-0018.html http://linuxintegrators.com/acoliver/code/2005/07/10/x-0022.html)... configuration and wiring.. I've a new way I want to do things in the future. I'll go on about this probably tomorrow but my eyes are feeling buggy as I'm working on 2 other [top secret open source like Gavin does ;-)] projects at night as well.
The new installer is based on the the extensions and the JBoss installer (if you haven't checked out the JBAS installer go to downloads and try it now!). It uses velocity for the jboss-service.xml file which is a lot cleaner than the big piece of crap I fermented called Cheese (someone asked if I wrote cheese to prove I couldn't do gui programming -- ha ha). While it is a lot prettier, I don't think it is saving me a great amount of time frankly. One thing that was better about Cheese is that it was just ant tasks. izPack is a bit too sophisticated for its own good in places.... Moreover the debug cycle is painful... Screw something up? You'll find out after you create the install and RUN the whole blasted thing. (I swear their ought to be a way to verify stuff. And the JB Extensions don't help either, I think maybe it should run through the templates with velocity as a "test run" to make sure they all parse at least so I can have compile-time checking rather than install-time checking)
It'll get easier once I get everything integrated into the build. I plan to put this "in your face" so there won't be a way to build JBMS without it. Fortunately, it won't require a GUI for normal developer stuff and I think it will actually make things easier there.
Doing this also points out that JBossDNA er I mean JEMS will need a way to do linked installers of a sort. The new JBMS installer will come in two flavors: Big and little...ha ha. Meaning the Big will include JBossAS and the little will assume you have it. Actually it may end up coming in 4 flavors (big java web start, little java web start, big standalone, little stand alone). Well, I really don't want to replicate the work on the JBoss installer that lets you pick what features of the AS you want. I want to reuse that work... I do need to say "x,y,z are required for JBMS so disable the abillity to unselect them" but leave the rest up to the user... Maybe as an "advanced" install.
The first cut for M3 won't secure or trim down JBAS at all. I'll just include it all. We'll put a warning and a link to the securing wiki page in the readme.
This will mean all-in-all that out of the box installation will be as simple as a click on a web page and some questions about what all you want (POP, POP/SSL...SMTP..etc) and what ports you want it on, your servername, etc.. The biggest pain is this business with the ssh key generation. I'm still working on that. That was the most brittle part in the cheese install as well.
Probably early next week I'll put out a preliminary "try me" before I start integrating it into the build. I had origninally estimated this all at 2 days...its taken a bit more than that..sssheesh.
Meanwhile I really need help in clearing the remaining open M3 issues and bugs so we can kick that branch off and start M4.
PS thanks for the guys at JBoss who found izPack and did the extensions. Thanks to Scott the infallible (http://linuxintegrators.com/acoliver/blog/2005/07/29/x-0033.html) for his help getting it all working.
don't I always?
Does this mean we can remove all of the cheese stuff from the build.xml soon?
yes..actually the cheese stuff in build.xml isn't used anyway (its for testing). There is another build there for the cheese stuff.
I'm hoping to finish this tonight, but we're converting a room into a bedroom so I've been doing that at night. If we have another kid he'll have to sleep in the attic.
I've finished everything except:
0. deploy new datasource
1. integrate into the build
2. check it in
3. cut a test release of it
Okay I got the datasource stuff working. Tomorrow I will get it integrated into the build.