On Aug 24, 2005, at 3:20 PM, David Jencks wrote:
While originally I thought having one schema with customization
elements for our many (currently 2) web containers was a great
idea, I have changed my mind and think that each web container
should have a separate namespace, although we should try to keep
the schemas as similar as possible. Let me try to explain why.
The basic principle is that the namespace should determine the
builder.
To implement this would require extensive modifications to the
current builder code, especially the earConfigBuilder. That is
kind of a minor point :-)
Lets imagine a server farm where 1000 are running jetty and 1000
are running tomcat, but where for various reasons only binary
configurations can be deployed to the production servers: all
deployment to binary configurations occurs on a separate machine,
then the binary configurations are sent to the servers and started.
This is one of the big problems with processing a configuration on
one computer and deploying it on another. If you were to process a
tomcat configuration on you box and deploy it to a jetty server you
will have the same problem. Also, if you do not have an exact image
of what is running on the server the configuration won't even
deserialize even if it is using tomcat. As I see it the problem is
"portable configurations" simply don't work, not that we need to
split our common web configuration into two.
If the namespace determines the builder and web container, then
deploying an app + plan is unambiguous: the builder chugs along,
and whenever if finds a new namespace in the plan it picks the
builder and tells it to get to work.
If we have something like we have now, where one namespace can
apply to one of several builders/containers, then we need more
information, such as a separate deployer configuration, to
determine the proper target and build the right configuration.
So, I'd like to move back to separate but equal schemas/namespaces
for jetty and tomcat plans.
Comments or objections?
We think should just have one simple standard web configuration file
to document and explain to our users. If you were proposing to just
use the native tomcat and jetty configuration file format that would
be one thing, but I just see this is just two *new* configuration
file formats for our users to learn. Let's keep it simple and stick
to one common configuration file.
-dain