Paul Hammant's Blog: Rhino - Static Struggle
I'm playing with Rhino for the sake of an alternative markup language to XML for the assembly of configuration of PicoContainer Components. The script looks pretty neat, and way easier on the eye than XML. When Groovy is ready, there should be many similarities to its script for NanoContainer. See here for JUnit test cases.
The trouble with Rhino it is very static. Not only is the framework very static, but the ScriptableObjects one creates are required to have public static methods to honor the contract of ScriptableObject. I avoid the word 'implement' deliberately. It is difficult to devise and interface for say a NanoScriptableObject that others would have to honor. Tis a little bit undesirable.
As mentioned about the implementation of Rhino itself is quite static. Context.doSomething(..) seems quite prevalent. Class registration is also global, making me wonder if Rhino will have to be mounted in different classloaders to allow multiple components that use it in NanoContainer to be truly separate.