Hi,
With access to ComponentManager, XWiki Component management framework
provides components the ability to lookup for component implementations dynamically using a component hint, I didn't see anything similar in Guice.
This exists in Guice, it's called annotations. See http://code.google.com/p/google-guice/wiki/BindingAnnotations It's done in a better way in Guice since it allows for typed hints (it also support the @Named("hinthere") solution).
Thanks, I did not catch binding annotations. The solution I've seen recommended to support dynamic registration/
unreg is to use peaberry.
My personal opinion: - our implementation seems to work fine so far (which is strange for me since I was expecting threading issues, maybe we just haven't found them yet ;)) and is lightweight so there's no reason to change for something equivalent. Thus I don't see any need to move to Guice right now (even though Guice is a very nice fwk and supports more stuff than we do - except for the dynamicity part). - we might need something more powerful in the future like the ability to handle classloading isolation to support the ability to load several versions of the same components. Should we need this we should probably move to either Peaberry or to OSGi directly. This need may arise when we implement our Extension Manager - we need to move to JSR299 annotation ASAP
+1. I also believe that XWiki Components framework currently suites our needs pretty well, I was looking around to see what Guice has to offer and was kind of surprised that dynamic component registrations are sort of discouraged. - Asiri