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