On Aug 24, 2005, at 6:25 PM, Dain Sundstrom wrote:

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.

I have not experienced any evidence that versioned immutable configurations don't work. I think our experience so far has been entirely with unversioned configurations that change every 5 seconds. Do you have any evidence that versioned binary configurations wouldn't work?


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.

With the current "any" solution, most tomcat configurations that involve customizations would not be deployable on jetty, due to tomcat specific gbeans. I think we can make a config file format that is identical except for the namespace for simple apps, and has a more natural format than the "any" config for server specific customizations. I don't really see how asking people to use a jetty specific or tomcat specific schema for the whole plan is all that different from asking them to use jetty and tomcat specific schemas for customization elements. I think it will be simpler for our users to have one file mean one thing and for the vendor plan by itself to determine what will be deployed. This may well mean including version info for the parentId.

thanks
david jencks



-dain


Reply via email to