First off a great effort ... thanks Emmanuel. More inline ...
On Fri, Oct 14, 2011 at 7:36 PM, Emmanuel Lécharny <email@example.com>
Ok, as of today, I have a working trunk (all tests passing).
The main modifications are :
- I had to create a core-shared project in order to avoid cyclic dependencies between interceptors and core. Currently, interceptors depend on core-shared, and core depends on all the interceptors plus core-shared.
This might eventually go away with further refactoring which removes interceptor coupling.
The things we should do :
- we still have interceptors depending on other interceptors. This is not good, and I will try to get rid of those dependencies
There are some cases where we have data structures that are members of Interceptors where they should really be first class data structures that are members of the DirectoryService. For example in the SubentryInterceptor there are data structures that should be part of the directory service but are embedded inside the interceptor making other interceptors have to depend on the SubentryInterceptor.
To fix these kinds of problems a new first class service (i.e. SubtreeService) can be introduced under the DirectoryService which also happens to have a SubentryInterceptor that acts as an interception helper. However other Interceptors ask this service for information to perform their tasks instead of having a direct handle on the SubentryInterceptor itself.