This is a ridiculously simple Module, that should make it as easy as possible to bind implementations with Guice.
Imagine the following (quite common) situation:
You have an interfae FooService and two implementations EnvironmentAFooService and EnvironmentBFooService. Now depending on the environment, you want to bind the corresponding class to the Interface. Two commonly accepted way to do this, is to create two different Modules - one for each environment.
The downside of this is, that for every class you add to the system, you´ll add the two (almost same) lines to both modules (given that you´ll provide different Implementations for every class)
Guice has an Annotation @ImplementedBy, which (while it is real nice to define a default mapping) does not help here. What i wanted, was the exact opposite.
That what this little tool is used for. See the Quickstart-page to find out, how this is done.
As i am just a user of Guice. Maybe there are better ways to achieve what this tool does. If so, let me know. This implementation - while working for me - definitely lacks features. If you�re missing something, contact me.
Feel free to send criticism, patches, or at least a link to some better solution if you like to.