Aighty, well... I've done some long awaited re-factoring, and while
its still not _perfect_ its a whole lot better now IMO I think from
a framework perspective that its probably mature enough to take on
the task of being the server bootloader.
I'm going to continue to refactor the guts of GShell over time, of
course... but I think that what is there now is highly usable for a
simple platform independent launcher, as well as for porting over the
other cli bits we have.
I've done a lot of work in the past week, incase you didn't see the
storm of scm messages... pulled out pico, plopped in plexus, pulled
out commons-logging and commons-lang, which are suck and boated (in
that order). I've gotten the basic framework and supported classes
to use GShell down to ~ 1mb (a wee bit under)... though when I
started to add the layout.xml abstraction stuff, I had to pull in
xstream which bloated her back up to ~1.4m. I may eventually fix
that... or not, cause xstream is soooo very handy for xml -> object
stuff.
I've fallen in love with annotations... they are *ucking great. They
work really well for handling the cli option and argument muck which
most every command needs to do. And striping out the insano-sucking
commons-cli really simplified command implementations dramatically IMO.
Anyways... I've make a heck of a lot of progress on cleaning up the
GShell framework... and more is to come I'm sure... But for now, I
think its probably ready for use primetime as the Geronimo Server's
bootloader.
I think this provides a some significant value...
1) Platform scripts become consistent and relatively simple, easy
to maintain
2) Everyone will now have a consist way of launching the server,
even if you like a .sh, .bat, or java -jar, then end process that is
launched will be the same for everyone.
3) Opens up the door for some really nice and fancy fancy
management muck (like restarting the server from the web console, or
cloning a server instance or backing up a server instance...)
4) Lays the ground work for future features, like cluster
management, remote administration and scripting...
* * *
So, I think its time to decide... are we a go or no go for GShell as
the core CLI for Geronimo thingys and even more important, are we go
or no go for using GShell to boot up the server process?
--jason