Если я правильно понял ваш комментарий, я бы сказал, что вам не нужна оболочка, а скорее библиотека, которая предоставляет функциональность через модули GWT (см. здесь ). Каждый из этого модуля может использовать GWTP и DI, но без Ginjector. Вы скорее предоставляете модули джина, где вы конфигурируете свои зависимости модуля. В вашем приложении, где создан ваш ginjector, вы просто устанавливаете модули gin вашей библиотеки.
!!! Не забывайте: при использовании GWTP у вас также есть DI на стороне сервера, который работает точно так же.
Пример для клиентской стороны. Предположим, у нас есть два, скажем, компонента, которые являются составной частью некоторых страниц и т. Д. P1 и P2. Затем создайте два модуля GWT с конфигами модулей, такими как P1.gwt.xml и P2.gwt.xml. Каждый из этих модулей имеет GinModule, например
public class P1GinModule extends AbstractGinModule {
@Override
protected void configure() {
// bind your presenters, views, etc..
}
}
В вашем приложении A1 вы создаете свою конфигурацию джина, в которую вы устанавливаете нужные модули, в данном случае P1GinModule и P2GinModule
public class A1GinModule extends AbstractGinModule {
@Override
protected void configure() {
install(new P1GinModule());
install(new P2GinModule());
}
}
Ваш ginjector должен выглядеть следующим образом:
@GinModules(A1GinModule.class)
public interface AppInjector extends Ginjector {
// what ever you need ...
}
Примечание: в конфигурации вашего приложения, скажем, A1.gwt.xml, не забудьте наследовать два модуля GWT.
При таком подходе все внедрения зависимостей работают для разных модулей, которые развернуты в библиотеках и предоставлены через модули GWT.
Надеюсь, это помогло.