Hi David,

> -----Original Message-----
> From: David Jencks [mailto:[EMAIL PROTECTED]
> Sent: mercredi 19 octobre 2005 20:20
> To: dev@geronimo.apache.org
> Subject: Re: [Daytrader] Converting to Maven 2

[snip]

> > - automated functional testing
> Do you have some way to do this outside a j2ee server?  If not, what
> does this mean?

Yes, this is white box testing from outside. I'm planning to do this with
Cargo (which supports several containers).

> > - automated deployment to Geronimo or other container(s) (using Cargo)
> Does cargo support jsr-88 yet?

Actually yes it does! :-) This is how I'm planning to automate
hot-deployment to Geronimo. This feature is in Cargo 0.7 (not released yet).

> > - ability to build for different target environments
> What does this mean?  IIUC the ear is supposed to be portable, and the
> deployment plan is not included in the ear.

Two things here:

- yes it seems the EAR in Geronimo is portable with the deployment plan
being outside of the EAR. However this is not the case for other containers.
Also, there is still the deployment step which is environment-dependent: it
may not be the same plan to deploy for a development environment and for a
production one (for example you may want to use port 8080 in development and
port 80 in production, or better you may want to deploy on a single server
in development and on a cluster node in production, etc).

- the build will not consist only in building the J2EE archives but also in
the configuration files, database files, etc, which may be
environment-dependent. 

I also know projects which do development using a container and deploy on
another one... (not that this is a good practice!).

> > - distribution of a packaged zip containing not only the EAR but also
> > the
> > container's configuration. This is to version control the container's
> > config
> > files and make the app "executable" and separated from the container's
> > install.
> I'm not sure what you mean.  We have a couple of possibly relevant
> capabilities of which I will mention the maven 1 plugin to install a
> geronimo instance and do stuff like start/stop it, deploy/undeploy
> apps, etc.

Imagine a build that spans the full development lifecycle. What I've done in
the past is automate everything till the pre-production step. This means I'm
able to take the source code and build and deploy everything to the target
platforms. This includes container configuration files (I don't enough about
Geronimo yet but for WebLogic this means a domain configuration with all the
files that go there; for jboss that means a server configuration directory,
etc). The idea is that what is delivered is a zip representing a directory
with everything set up in the right place there so that the container can be
started in-place in that directory. The container config files are still
located where the container is installed but its configuration is located in
our directory. This allows redelivering easily the part that we want to
store in our SCM. 

Maybe this does not apply to recent containers like Geronimo and maybe
Geronimo is flexible enough so that a full container config can be set up
from remotely. This is a strategy I have been applying between 2002 and
2004. It may be that since 2005 containers are configurable enough not to
require this anymore?

Here's a question: is it possible for example to remotely configure the
number of threads used by the ejb or servlet containers? Is it possible to
remotely control the location where logs files will go, etc?

In any case, there's still the need to not only package the J2EE modules but
also the configuration files (whether those files are installed locally or
through remote access). This makes up a distribution which can then be
installed manually by, say, a production team or through Maven (by using
deploy/undeploy stuff as you mention above).

> > - automate the database setup
> This would be great.  I think we need a generic solution for this

Agreed, although it'll have to be per-database type (unless someone comes up
with a generic API in the same manner as Cargo does for containers ;-)).
I'll do the derby one as it seems there are already some derby script for
the Daytrader app.

> > - possibly convert some of the daytrader app to use xdoclet to
> > demonstrate
> > how it works with Maven2
> >
> > After thinking this through, I think I'm going to work in my own repo.
> > This
> > is the easiest and fastest solution for me. Once I have finished, I
> > can then
> > offer this full m2 build to the Geronimo project and you can decide to
> > do
> > whatever you want with it. I won't be touching much of the daytrader
> > source
> > files so it shouldn't be that hard to incorporate afterwards.
> 
> I think this is great, and would like to know more about what you are
> up to.  Please keep us informed!

Will do, thanks!

-Vincent

Reply via email to