tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adrian Stabiszewski" <>
Subject Parallel Deployment
Date Wed, 03 Aug 2011 15:11:15 GMT

I find the new Tomcat 7 feature "Parallel Deployment" very interesting.
Unfortunately IMHO it is more complicated than it could be.

As I understand it, you have to add the version number after two hashes
(##). The version will then be compared as a String.
This scheme doesn't fit with my versioning system which uses Maven as build
system which uses a hyphen as version separator. 
Is there some Interface in Tomcat I could implement to integrate my version
scheme? Some ContextVersionComparator?

The second issue is about the ROOT or default context. AFAIK right now it is
not possible to deploy a WAR file with an arbitrary file name as the ROOT
context. Yes, I know you can create a ROOT.xml in conf/[Engine]/[Host] and
point to your WAR file via docBase, but this not practical if the WAR file
contains a version number.
And for the parallel deployment feature I would have to create a new
ROOT##<version>.xml for each version. I think this extra work is not

For an ideal world I have two proposals ;)

1. Allow setting the context name in the META-INF/context.xml of the WAR
Something like

<Context path=""></Context>

(which is forbidden atm) would deploy the WAR as a ROOT context. 
Of course, if more than one WAR file wants to use the same context name the
deployment should fail.
This would allow to deploy the following files as ROOT context with
different versions:


2. Allow setting a WAR base in the conf/[Engine]/[Host]/<contextname>.xml
file. This is a different approach. This would allow to have one
<contextname>.xml for all versions. 
The WAR base attribute would simply point to the directory and the base name
of the war file. In the example about this would simply be "myproject":

<Context warBase="/warfiles/myproject"></Context>

Tomcat could search all WAR files in the "warfiles" folder starting with
"myproject" and ending with ".war". 

I think the smoothest solution would be if I could take the build artifact
from maven release plugin and copy it directly into the deployment directory
;) And to add some sugar on top, tomcat would even delete the old versions
of the deployments once no sessions are connected with them.

Is this something that would be possible for tomcat? How can I help?


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message