Vincent Massol wrote:
<snip/>
Thoughts ? Thanks -Vincent
Note: I have not looked in detail in the excalibur sources so I am not familiar to any problem my changes could have introduced for existing components. Is there a full unit tests suite that I could run and where can I find the requirements/instructions for running it (link with environment, ...) ? Any mock object tests ?
Vincent, what you have done is necessary, and very helpful. Unfortunately, it would break bacwards compatibility for ExcaliburComponentManager. This is very unfortunate, and I am still looking for an elegant solution. I have a feeling that the only elegant solution available to me is to have a clean ComponentManager implementation--that must use a different name than the ExcaliburComponentManager. I find this frustrating to say the least, but perhaps we can optimize the ComponentManagement implementations with the new version--that will be LogEnabled clean. People who have not upgraded to the new interface will be stuck with ExcaliburComponentManager (as is fitting because that is what they are likely to be using).
The problem with such a clean ComponentManager is that all Components used in that system MUST be LogEnabled. There is no method of obtaining a LogKit Logger instance from a Framework Logger instance. One of the design strengths--and design weaknesses of the Logger interface is that the instances are opaque. They cannot be simply recast to the originating type. This is good for security and implementation hiding, but it is bad for complex beasts like ComponentManager who have a right and a need to get at the LogKit Logger for legacy Components.
I have been wanting to reimplement the ComponentManager infrastructure in excalibur for a while--although I have not figured out how to free my time to do it. So far I can only make incremental changes.
--
"Those who would trade liberty for temporary security deserve neither" - Benjamin Franklin
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>