On Jan 3, 2006, at 7:34 AM, toby cabot wrote:
Hi Folks, I guess it's possible that I'm the only person that used offline deployment, at least I don't see a lot of people clamoring to bring it back. It's very useful for me, though, so I'd like to find out if there's a possibility of bringing it back onto HEAD (and hopefully the 1.0 branch, too). I'll probably need to hack something for my needs but I'd just as soon do it in a way that's Geronimo-savvy.
It's definitely something we need in some form.
From discussion on this list it looks as if the preferred approach is to try to use the same approach that the build-time maven plugins do. From my naive reading of the code, it looks as if that happens in two passes: first the geronimo-packaging-plugin takes a deployable resource (ear, war, etc) and generates a configuration archive from that, then the geronimo-assembly-plugin moves the car into the ConfigurationStore. The configurations are mentioned in config.xml (hand-coded?) which causes them to get started when Geronimo runs. I see notes in the code that the packaging plugin uses the Maven repository, so in order to work on machines without Maven I imagine that we'd need to use the Geronimo repository instead. Is this more-or-less on the right track? I'd appreciate any tips or pointers, especially if I'm about to head off in the wrong direction.
That's about right. I tried to make both the packaging and assembly plugins modular so that the class that does the work accepts arbitrary repository and config-store implementations so that all that is needed for the offline config-builder or assembler is to construct something using the geronimo repo and config store rather than the maven ones. My idea was to control these plugins primarily with a properties file, but allowing overrides using command line properties. I recall writing a primitive version of the command line packager but never tested it and I'm not sure if I committed it before my hard drive broke.
Something similar should work for the assembler. One question I have about this is, where do the dependencies come from? The maven assembly plugin makes sure all the dependencies for the config are copied from the maven repo into the geronimo repo. I guess a command line version of this should fail if the dependencies aren't already in the repo? Or should it accept some other repo anyway? Or use a remote maven repo? I don't know.
One missing piece that perhaps can be added to the assembly plugin as well is modification of config.xml. I suppose a good start would be to have a flag that indicates whether the config should be loaded or not, and, similarly to the online deployer, either add an element to config.xml or set load="true" if the flag says to load the config.
Unless someone twists my arm severely I was planning on looking at this again after 2 other items, jetspeed integration and a transaction manager patch: if you wanted to get started on this first I'd be very happy :-). Command line tools are not something I know how to make useable so I'm sure anything I came up with would need editing by others anyway.
many thanks, david jencks
Thanks, Toby
