Igor,
You wrote: >I agree that Engine does not have to make any choices. For the >Engine it is always the config interfaces that we define. They >will always assume versioning. Like >EngineConfigurationProvider.getConfig(versionStamp) and >.getCurrentVersionStamp(). It's just that some simple >EngineConfigurationProviders may choose to not care about the >versionStamp parameter and return a blank string as a current >version stamp. So the engine always assumes versioning is taking place but some engine configurations simply return the latest version regardless of which version the engine is asking for. Handlers (including Chains) would then have to cope with being instantiated or modified during the processing of a request. For example, a Handler would have to cope with being driven for onFault() when it has not been driven for the corresponding invoke(). I don't like this as Handler represents one of the most common contracts in Axis and, IMO, it needs to be as simple as possible. By comparison, EngineConfiguration is more limited in its use and it would be reasonable to force implementations to support versioning. Glyn