6

I find the answer for Guice Overriding Binding in Guice but don't know how to do the same for GIN in GWT.

Thanks in advance!

Community
  • 1
  • 1
Rick Li
  • 1,457
  • 2
  • 14
  • 19
  • Why do you want to override a GinModule for? – Luismahou Sep 06 '11 at 03:42
  • 1
    Hi, I'm thinking to replace some binding with mock impl in the unit test. if this is supported, I can replace them by extending the module and override bindings... – Rick Li Sep 07 '11 at 05:42

2 Answers2

5

As far as I know, it's not supported.

To answer your comment:

If you're running "pure" JUnit tests (not GWTTestcases) you don't use GIN, you use Guice, and in Guice you can override modules. If you want to reuse GIN modules, then wrap them using GinModuleAdapter. So you can do something like this:

static class MyGinModule extends GinModule {
  ...
}
static class MyGuiceModule extends AbstractModule {
  ...
}

// And somewhere in your code, here's how you could create the Injector
Module myWrappedGinModule = new GinModuleAdapter(new MyGinModule());
Module myModule = Modules.override(myWrappedGinModule).with(new MyGuiceModule());
Injector injector = Guice.createInjector(myModule);
Luismahou
  • 644
  • 3
  • 8
0

Use the @ImplementedBy annotation in your interface.

The class specified in the annotation will be the default implementation.

You can specify another implementation, effectively overriding the default.

For example:

@ImplementedBy(MyWidgetImpl.class)
public interface MyWidget {
  //...
}

public class MyWidgetImpl implements MyWidget {
  //...
}
frankadelic
  • 20,543
  • 37
  • 111
  • 164