Steven J. Owens wrote:

Peter,

On Tue, Nov 09, 2004 at 08:42:34AM +1100, Peter Johnson wrote:


We run 5 Tomcat servers (still on 4.1.x so not clustered) and use
CVS with two tags: 'stage' and 'prod'.



I'm a little unclear on what this means - do you mean branches?


Or do you mean that you effectively do some sort of script to
"get the latest stage tag" vs "get the latest prod tag"? That's
something I hadn't considered, but it sounds like it might be easier
than branches (which I haven't really messed with, but seem to be
notoriously tricky).


Nope, no branches just tags



When a push script is executed the server pulls the appropriate
version from cvs and then performs an ant task to deploy the app,
compiling any changed classes. We find that this works just fine and
haven't really had any issues.



Okay, so ant task to build war file and push it to the tomcat server. Sounds fairly standard (though still unexplored territory for me).



No WAR just straight file copy for the JSPs, compile and copy for classes. (This process was developed prior to good admin / deployment interfaces)

Check that you are using <jsp:include ...> (include on execute) rather than <@ include ...> (include on compile) as this *may* be causing the issue.



Yup, we're using <jsp:include>.



Just out of curiousity why are you are deploying individual apps if they are so similar? Why don't you just implement a "branding" infrastructure and run a single app with multiple brandings?



Honestly, I've considered it several times. We're really, really close to that point already. All it would take would be to switch the various logo.gif and CSS imports to use a property instead of copying a template file. Then I'd set up the property singleton to use a different property file & database depending on which URL mapping the user requested.

    The real reason I haven't is that it just doesn't buy me anything
significant to run them all off the same webapp, while it increases
(instead of decreases) the interdependency, and makes testing much
more white-knuckle.  I keep thinking, "well, it wouldn't be that
hard...", but there's no real concrete advantage to do this, except to
save a little bit of disk and memory.  And if I ever *do* have a
serious need do something custom for one instance or another, I'm
screwed.

Our app http://www.optusnet.com.au currently runs 4 brands with varying content requirements. The complexity really isn't that great as most of the work is performed by a custom include tag which searches a pre-defined path tree for the specified module. The first one found is the one it uses. Each brand has slightly differing content.

To me it is a no-brainer to go the branding path but YMMV.

PJ

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



Reply via email to