Return-Path: Delivered-To: apmail-geronimo-dev-archive@www.apache.org Received: (qmail 12097 invoked from network); 4 Sep 2006 23:48:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 4 Sep 2006 23:48:48 -0000 Received: (qmail 99591 invoked by uid 500); 4 Sep 2006 23:48:43 -0000 Delivered-To: apmail-geronimo-dev-archive@geronimo.apache.org Received: (qmail 99095 invoked by uid 500); 4 Sep 2006 23:48:40 -0000 Mailing-List: contact dev-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list dev@geronimo.apache.org Received: (qmail 99073 invoked by uid 99); 4 Sep 2006 23:48:40 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Sep 2006 16:48:40 -0700 X-ASF-Spam-Status: No, hits=1.1 required=10.0 tests=DNS_FROM_RFC_ABUSE,HTML_00_10,HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: domain of nathan.mittler@gmail.com designates 66.249.92.169 as permitted sender) Received: from [66.249.92.169] (HELO ug-out-1314.google.com) (66.249.92.169) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 04 Sep 2006 16:48:39 -0700 Received: by ug-out-1314.google.com with SMTP id m2so1936887uge for ; Mon, 04 Sep 2006 16:48:18 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type; b=Z7fx1cW9TCvwpeL6IHQe5ygc4qy2OSmsxoYBNDvpmkXzsJol9wGHvWiGJ3WyHmvdbjs/vlDW4xEFqLnduBcFnicUBZUUFN/QrNWyGE19+02/rVgIVCxO8QiqjxXv+oLD2OEDWJ6wvUF/cHDCHjsbHSF/x7nfp8is0pENAUSkeCA= Received: by 10.67.100.12 with SMTP id c12mr3274057ugm; Mon, 04 Sep 2006 16:48:18 -0700 (PDT) Received: by 10.67.91.15 with HTTP; Mon, 4 Sep 2006 16:48:18 -0700 (PDT) Message-ID: <8a6feb940609041648w480284bdyd761dc6ac0ef2038@mail.gmail.com> Date: Mon, 4 Sep 2006 19:48:18 -0400 From: "Nathan Mittler" To: user@geronimo.apache.org, dev@geronimo.apache.org Subject: Automating plugin creation and deployment with maven MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_186114_31469168.1157413698185" X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N ------=_Part_186114_31469168.1157413698185 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 ------=_Part_186114_31469168.1157413698185 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 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


------=_Part_186114_31469168.1157413698185--