On Aug 30, 2007, at 5:12 PM, David Jencks wrote:
Getting 2.0.1 out the door was a great step and now might be a good
time to start discussing where we want geronimo to head next. Here
are some ideas I've had or think are important. If I were to try
to write actual sentences about all of this I'd probably never send
the email so this is way too fragmentary but maybe can spark more
discussion. I'm hoping everyone will chime in with their interests
and viewpoints, this is just what I've been thinking about lately.
Modularity.
For a long time we've been on the brink of having an actually
modular server, not just a conceptually modular server. As
reflected in a lot of recent discussion on the dev list, I think we
are so close we should really work hard to make this a pleasant
reality. Some of the steps I see:
- enhance the plugin framework so bits of more config files can be
added, in particular artifact_aliases.properties and
config_substitutions.properties. IIUC Paul has some schema changes
and xml handling rewrites in the wings as well
- finish up the pluggable admin console work and actually split the
admin console into appropriate bits for the plugins
- rearrange the build so it is organized by plugin
- actually assemble the servers we ship using plugins, perhaps
using gshell scripts
- have more server-building tools. For instance, a "button" to
push that spits out a server with just what is needed for a set of
apps and nothing else.
Yay... modularity is my friend... and enemy :-P More modular server
means more build muck to assemble it :-P But IMO this is probably
the most important feature (if you can call it that) which we need to
implement to ensure the longevity and maintainability of Apache
Geronimo.
Clustering
IIUC we have a lot of partial clustering solutions. For instance
there's WADI, native tomcat clustering, a terracotta integration,
and IIUC Jeff has been working on a clustering solution (my
apologies if I left any out). I'd like to know where these efforts
are in terms of actual functionality and reliability and what they
can be extended to do. We also need some kind of cluster admin tools.
Certainly a nice to have, and almost always on user's want to have
list, though from past places I've worked we never have really made
use (fully) of any application server's clustering facilities. I'd
like to see this added, and I'm sure we will get it sooner rather
than later, but I think that the modularity (and inevitable
decoupling) work is vastly more important to the project (perhaps not
users).
Other apps
roller
jetspeed
proximity etc
It would be great to get "all popular apps" available as geronimo
plugins.
Ya, would be nice to get the main G distribution to a point where you
can *easily* (as in my eyes are closed and I'm clicking the install
some neat feature button) get a fully functional, kick ass, easy to
use and admin server ;-)
Management and troubleshooting
ARM
No LEG?
Otherwise we discared it.
server farm management (gshell?)
This is definitely on my "in my head" roadmap for the shell, though
we need those clustering bits first to give it something to work
with. One thing we might want to add before then is some kind of
reboot facility to the server, which is possible using the GShell
launcher process. So a user can install some muck, tweak some
configuration, then tell the server to reboot and basically pick up a
pristine configuration and working environment. The same basic
mechanism could be used to create a rollback configuration, or named
configurations, etc.
I've been working on simplifying the GShell framework for the past
week, and will continue for a few more me thinks as I've been re-
inspired by the positive feedback I've heard so far, as well as my
renewed desire for GShell to rule the world and make me coffee in the
morning.
So expect to see some more GShell goodies on the way soon...
Core
Better Spring application management
Investigate OSGI and figure out how it is different from what we
are doing, what it can do better, and what is missing from it.
Figure out an integration strategy whether it be "run OSGI as an
application" or "replace the kernel with OSGI" Don't break stuff
if we start using OSGI more :-)
I think some investigate is defs in order here, though I'd really
like to see the system split up into smaller manageable chunks before
this is considered for implementation. I don't think that the
current gbean framework is so inflexible to make that a non-option.
So lets split up the server, learn from that exercise, keeping in
mind how we can make it easier, require less code and perhaps even do
more... then lets do it. I'd personally like to see us using
annotations to define all those properties and operations and such on
our components... I fricken love annotations.
Figure out what to do with our "config.ser" in modules/
configurations. At least get it into real xml, maybe using
something like jaxb with schema/gbean.
OOOOH HEEEELLLL YA!!!!
I'd really like to see the configuration for a module, in plain xml,
based on some schema that is descriptive and extensible enough to
handle pretty much any kinda of configuration we want to toss at a
set of beans (or anything users want to, and they will come up with
some crazy shiz for sure).
And... I want to see those XML files deployed into the repository
ASIS... IE... not in any *ucking jar/ear/war/whatever file.
And, on a related not... those damn CAR files that are expanded...
well, they shouldn't be. The repository should contain artifact
*files* only... so if we need to unpack them on the fly, then do it.
Or if users want to use an unpacked dir for their deployment, then
use the deploy/* directory or something, but leave the repository/*
as files.
* * *
So, based on what I've just babbled about so far... I'd like to see
2.1 focused on developer improvements (for us, and plugin
developers), more application support to get users going faster, and
administration support (that includes the xml stuff in the repo and
gshell bits).
Anyways... just my comments.
--jason