Ok, as of today, I have a working trunk (all tests passing).
The main modifications are :
- we have one sub-project under apacheds, 'interceptors', which is the root for all the interceptors. It's a pom
- each interceptor is under this sub-project, and currently produce a jar
- 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.
- I had to replace the XXX.class.getName() (where XXX is an interceptor name) by the direct interceptor name in the ByPass collections. This has a direct impact : we now name interceptors using their simple name (ie, without the package). This is not good, but this is just temporary
- I also had to register the SimpleName for interceptors all over the code (not that many refs, though)
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
- we must find a way to manage the chain by using an abstract name, not the Interceptor class name. Same for byPasses.
The worst part of the work was surprisingly not the decoupling, but the pom.xml modifications...
I will commit my current changes, be ready for many modifications.