Shindig should not use Guice @ImplementedBy as a "default" value setting tool
-----------------------------------------------------------------------------
Key: SHINDIG-759
URL: https://issues.apache.org/jira/browse/SHINDIG-759
Project: Shindig
Issue Type: Improvement
Reporter: Henning Schmiedehausen
Attachments: remove-implementedby.patch
Shindig uses @ImplementedBy to create "default" bindings for Guice because it
does not allow overriding once set bindings in the default modules.
This is a largely patch which removes all @ImplementedBy references from the
release branch. The code still passes all unit tests and runs the embedded
server. :-)
This patch can probably be split up into a bunch of smaller patches to make it
more digestable. This is more intended as an overview of what needs to be done
here. It contains the following functional changes (smaller patches would be
along these lines):
- Remove all occurences of @ImplementedBy annotations from java/common,
java/gadgets, java/social-api and java/server
common:
- Introduce a DefaultCommonModule which contains all bindings for the Common
code. Using this module also implies using the PropertiesModule.
- Introduce a LruCacheModule similar to EhCacheModule to allow configuration of
the LruCache by adding the module
gadgets:
- Extend the DefaultGuiceModule to explicitly bind all classes needed for
Injection
- Fix the bug/quirk in HttpResponse where the default constants have different
values than the fields set in shindig.properties (the default constants are
used in the unit tests)
opensocial:
- introduce a DefaultOpensocialObjectsModule which maps all the model objects
- fix the getImplementation() method in InterfaceClassMapper (this is actually
an evolved version of SHINDIG-728)
- add an unit test for InterfaceClassMapper to validate its function
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.