I have a few questions/remarks about the Spring code.
The most important remark, why doesn`t spring do any checking on arguments? If you don`t add checks you can`t garantee that an object is in a valid state, and this makes it very difficult to find bugs. A bug in an object can be caused by faulty input from a totally different object and this makes it a nightmare to find the cause. Also bugs can sneak into the system without being detected for a long time.
Another remark: why do you extend from classes that don`t belong in the class hierarchy but are only used internally. An example is:
that extends from ArgumentConvertingMethodInvoker. This is bad programming practice because it makes a class harder to understand and creates unwanted public methods. This should have been an internal class.
Last Remark: objects and classes depend a lot on eachother. Therefore it is very difficult to use parts of Spring and skip others. I had to integrate Spring with maverick and the platform we use at our company. In the beginning I tried to use all the Spring functionality... why write what already is written and tested. But time after time I find myself jumping and jumping through classes and finding al lot of dependencies. Finally I came to the conclusion that writing it myself was quicker than reusing Spring classes.