Vincent,

I'll update the tree structure per your original note in terms of src placement, etc. One thing that we still need to do is update some of the deployment plans and internal references to the artifacts (like the EJB jar). They are currently hardcoded with 1.0-SNAPSHOT as a suffix. I think David mentioned we could fix this with Velocity but I haven't looked at that yet. Thoughts are welcome.

thanks for helping out in this effort :)

Matt

Vincent Massol wrote:
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