Hi everyone,
Sparked by the attractiveness of Geronimo plugins, I'm trying to get my hands around how to automate the creation and deployment of plugins from a maven 2 build.  I've been shuffling through what little documentation there is on this and think I need a little community help.

The Problem:
The problem is currently theoretical for us now as we don't yet have any systems deployed with G.  But that aside, let's assume that there are Geronimo servers deployed and we want to deploy new plugins without redeploying an entirely new system.  Automating this directly from the build (maven) is desirable, because of the simplicity.

As I see it, the problem can be essentially boiled down to three repositories: the development m2 repo (our local CM repo), a remote m2 repo (visible by all target Geronimo instances), and a target Geronimo instance.  Below, I've listed what I believe to be the steps involved in the process.  Steps 2&3 are where my question marks are  ...

Step 1: Plugin creation
The first problem is the creation of a plugin (.car file) with maven and installation into our local (development) repo.  This can be achieved through the car:package and car:installConfig goals in the CAR plugin.  You still need to manually create a geronimo-plugin.xml and have it packaged into the CAR.  No big deal.

Step 2: Plugin deployment to remote plugin repository
The second problem is a little trickier.  The idea is that the plugin repository used by Geronimo may be local to a deployed system or may be a global repo shared by all deployed systems.  In the case of a global repository, you could simplify things by just making all Geronimo servers point directly to the development repository (no deployment required).  This may not be an acceptable solution for organizations that get nervous about their CM machine being accessed externally, however.  If the development repo cannot be used directly, is there an easy way to automate the deployment of a plugin and all of its dependencies to a remote plugin repository?  I believe the standard maven deploy plugin only deploys the artifacts from the immediate project.

Step 3: Creation/update of geronimo-plugins.xml
Ideally, when a plugin is installed into a local repo or deployed to a remote repo, the geronimo-plugins.xml file would get updated with the information in the plugin's geronimo-plugin.xml.  Is there anyway to automate this?

Step 4: Installation to a Geronimo instance
This is the simplest piece of the puzzle.  Once the plugin has been installed into one of the plugin repositories known by the Geronimo instance, you can simply use the command line deployer to install it into Geronimo.

So that's my take on it, anyway.  Is this the general idea for how deployment is expected to work, or am I missing the big picture?

Thanks in advance for the help,
Nathan Mittler


Reply via email to