Background:
YaleInfo depends upon a number of static resources. It requires some XML, lots of XSLTs, the occasional SSL, some images and other resources.
Goals:
- Version control these static resources
- Ability to hot-update these resources safely and without disrupting Portal.
Current status:
We've moved these resources into a channelResources CVS project which builds a .WAR specific to the server upon which we intend to deploy the .war. This allows the .SSL files to point to the right .XSLTs, the links to point to the right Portal, etc. This .WAR file is served off a second Tomcat instance on the portal.yale.edu machine.
Advantages of the current status:
- Static resources are version controlled
- Able to hot-update by building new production .war and pushing the new .WAR to the server
- At build time customizes resources for the server upon which they are intended to be deployed.
Issues with the current status:
- Updating a single file requires either replacing the entire channelResources.war or manually replacing the afflicted file.
Other options:
Being fundamentally static, these resources could be served directly by Apache instead of going through a Tomcat. The ANT build could still produce server-specific resources by the resplacement filter. Instead of pushing a .war, perhaps we push a .ZIP that we expand, over-writing old versions of the files with the new deployment.
If the per-server customization problem were to go away we could think checking out the files into production using CVS.