Hi,

with the release of Guice 2.0 (and our adoption), the need for "soft
bindings" of Interfaces that can be easily overridden has somewhat
diminished. But our current usage of @ImplementedBy introduces some
friction when you try to integrate Shindig into an environment where
lots of the existing interfaces need to be overridden. Mostly because
a missing explicit binding will not result in an instant startup error
but in a default implementation being bound instead of the customized
class.

In my case, I hook CacheProvider into our internal caching
infrastructure using a custom implementation. However, the code broken
in one place for hard to track down reasons until I figured out that
this specific piece was missing the custom Guice binding and fell back
to LruCacheProvider which did not do what I expected it to do.

In our custom Shindig tree, I now have a set of patches that remove
all @ImplementedBy annotations and replaces them with explicit
bindings in Guice modules. How controversial would be applying this
patch? Apache JIRA seems to be down right now, so I can't file a JIRA
right away.

-h

Reply via email to