Glyn, How exactly is notification in 5 should be done? Should it be done at all? Engine builds the pipeline dynamically when request comes. It does not seem to cache handlers in any way (unless I missed something). That is it'll ask EngineCongiguration everytime, and so, if the information was updated in the configuration provider, it'll be used right there. Why notify the enhine then?
My biggest concern is (and was for a while) consistency of the pipeline when deployment and request processing are done at the same time. For example, a request is a half way through the chains and then an independent thread is redeploying something. The other half of the chains can already be processed with the updated deployment info which obviously may not be consistent with the processed first half. :) This may become quite a problem in a production system that cannot be brought down for redeployment. I thought that we should change the AxisEngine to provide a momentary locking capability based on a resource sync. -- Igor Sedukhin .. ([EMAIL PROTECTED]) -- (631) 342-4325 .. 1 CA Plaza, Islandia, NY 11788 -----Original Message----- From: Glyn Normington [mailto:[EMAIL PROTECTED]] Sent: Thursday, January 24, 2002 4:51 AM To: [EMAIL PROTECTED] Subject: Subsystem responsibilities: WSDD Glen Daniels and I are working to improve the modularity of Axis's "configuration" subsystem and are collecting together the WSDD-related responsibilities and removing them from the non-config. parts of Axis such as AxisEngine. We discussed this on the 'phone yesterday and put some sandbox code in a 'config-work' cvs branch which we aim to improve and merge into the main trunk in the next few days. Here are some points we discussed: 1. The configuration, e.g. as defined in WSDD, defines factory classes, options, and scopes for various handler types. 2. The configuration from an engine's perspective consists of a handler 'registry' (i.e. a collection of factories) and some 'global' options. We should introduce an EngineConfiguration interface to provide access to this configuration information by an engine. 3. Three is a fairly close relationship between configuration providers and the registry. Both are really part of the "configuration" subsystem. The engine should ideally not be aware of the distinction between configuration providers and registries so long as it has access to the EngineConfiguration that it needs. 4. The engine should not be directly involved in the details of how the configuration is constructed or modified as that tends to pull in types which are specific to particular configuration mechanisms such as WSDD. 5. An engine's configuration should be modified by getting hold of its EngineConfiguration, modifying that, and then notifying the engine so it can refresh its global options (and potentially other information). Glyn