Hello,

I've been working on an application server plugin for maven. I originally
started hacking with an internal ant build file I use at work to create
aplication server 'instances', but thankfully Vincent Massol mentioned the way
Cactus works, and that saved me headache in the end. Thanks so much Vincent!

Maven appserver plugin rationale:
When developing a web application (or website for that matter), each developer
working on the project needs to have an environment to run and test their
application. Rather than store a complete application server install in source
control, it is much more feasible to have a centralized install of that
application server. Then, using only the minimum configuration files the
developer can control a separate instance of the application server on that
machine. The maven appserver plugin uses this technique to install and control
application server instances for developers. The appserver plugin __is_not__ for
deploying webapps or war files into application servers.


The following maven targets are will ultimately be available:
maven:appserver-install
maven:appserver-start
maven:appserver-stop
maven:appserver-clean

These point to j2ee's build.xml: appserver-install, appserver-start,
appserver-stop, appserver-clean.

This 'appserver' plugin is actually integrated into the j2ee plugin, but could
easily be moved into it's own plugin ( appserver ) if suitable. I made all the
properties for this plugin as maven.appserver.*

At this point I concentrated on using Tomcat 4.0 as an example to get the
generic targets defined and issues worked out.

I've tested the following scenario so far:
Windows 2000 + Cygwin
All appserver targets for Tomcat 4.0.4 Beta 3
JDK 1.4
Ant 1.5 ( see below )

The rest of the app servers that Cactus supported should be easily integrated
now that I have Tomcat 40 working. WE can basically refine and test them one at
a time.

warning:
As of this patch, don't expect any application servers to work other than Tomcat
40. The other servers build files are included but they are not fully functional
yet.

To copy additional files for plugins I added a small change to
build-bootstrap.xml. I didn't know the best way to do it but hope that was ok.

----

Outstanding issues:

- servers besides Tomcat 40 need to be tested and build scripts need to be
modified
- currently this task relies on Ant 1.5's http condition. Perhaps we should work
around that. Perhaps not.


----

Eventually I'd like to see a webserver plugin too. Then we could install
instance of both and have app server related requests be redirected to
appservers. Or just quickly deploy a webserver instance to serve static content
from.

Other directions could include appserver having closer dependency to deploy and
test related targets already in Maven. And then of course Cactus integration.

But, for now I submit this patch to you all for your perusal and hopeful commit
to source. If commited, expect me to make further patches.

Documentation is coming...in the meantime a quick scan at the Changes to
Control.vm, build.xml, and default.properties should be helpful.

Later dudes,

-Peter

P.S.
The attached contains a file called build-appserver-proxy.xml. Please put that
in the j2ee plugin directory. The 'conf' dir is a new dir in the 'j2ee' dir. The
rest hopefully is obvious.

Attachment: APPSERVER_PLUGIN.zip
Description: Zip compressed data

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to