Vojtech Szocs has uploaded a new change for review. Change subject: webadmin,userportal: Improve GIN bindings/injections ......................................................................
webadmin,userportal: Improve GIN bindings/injections 1. added BaseSystemModule.bindTypeAndImplAsSingleton method and used it for following bindings: - place manager - all resources (constants, messages, etc.) i.e. injecting CommonApplicationConstants and app-specific ApplicationConstants now yields the same singleton (ApplicationConstants) instance 2. modified ConsoleManagerImpl constructor to inject ConsoleUtils (interface) instead of ConsoleUtilsImpl (implementation) so that we don't need extra binding for ConsoleUtilsImpl 3. modified following classes to inject ClientAgentType instead of doing "new ClientAgentType" on their own: - ConsoleUtilsImpl - UserPortalConfigurator - WebAdminConfigurator Change-Id: I09a0178171de3f4e698e616a78ca988f47436957 Signed-off-by: Vojtech Szocs <vsz...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleManagerImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java 5 files changed, 29 insertions(+), 17 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/97/19797/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java index c45f193..996e6fc 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/gin/BaseSystemModule.java @@ -32,8 +32,7 @@ bindEventBus(); bind(TokenFormatter.class).to(ParameterTokenFormatter.class).in(Singleton.class); bind(RootPresenter.class).asEagerSingleton(); - bind(PlaceManager.class).to(placeManager); - bind(placeManager).in(Singleton.class); + bindTypeAndImplAsSingleton(PlaceManager.class, placeManager); bind(CurrentUser.class).in(Singleton.class); bind(LoggedInGatekeeper.class).in(Singleton.class); bind(ErrorPopupManager.class).to(ErrorPopupManagerImpl.class).in(Singleton.class); @@ -57,11 +56,19 @@ Class<? extends CommonApplicationResources> resources, Class<? extends CommonApplicationTemplates> templates, Class<? extends DynamicMessages> dynamicMessages) { - bind(CommonApplicationConstants.class).to(constants).in(Singleton.class); - bind(CommonApplicationMessages.class).to(messages).in(Singleton.class); - bind(CommonApplicationResources.class).to(resources).in(Singleton.class); - bind(CommonApplicationTemplates.class).to(templates).in(Singleton.class); - bind(DynamicMessages.class).to(dynamicMessages).in(Singleton.class); + bindTypeAndImplAsSingleton(CommonApplicationConstants.class, constants); + bindTypeAndImplAsSingleton(CommonApplicationMessages.class, messages); + bindTypeAndImplAsSingleton(CommonApplicationResources.class, resources); + bindTypeAndImplAsSingleton(CommonApplicationTemplates.class, templates); + bindTypeAndImplAsSingleton(DynamicMessages.class, dynamicMessages); + } + + /** + * Binds {@code type} to its {@code impl} so that injecting any of these yields the singleton {@code impl} instance. + */ + private <T> void bindTypeAndImplAsSingleton(Class<T> type, Class<? extends T> impl) { + bind(type).to(impl); + bind(impl).in(Singleton.class); } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleManagerImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleManagerImpl.java index d43fd79..f23e314 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleManagerImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleManagerImpl.java @@ -3,6 +3,7 @@ import org.ovirt.engine.ui.common.CommonApplicationMessages; import org.ovirt.engine.ui.uicommonweb.ConsoleManager; import org.ovirt.engine.ui.uicommonweb.ConsoleOptionsFrontendPersister; +import org.ovirt.engine.ui.uicommonweb.ConsoleUtils; import org.ovirt.engine.ui.uicommonweb.models.ConsoleProtocol; import org.ovirt.engine.ui.uicommonweb.models.HasConsoleModel; @@ -13,12 +14,12 @@ */ public class ConsoleManagerImpl implements ConsoleManager { - private final ConsoleUtilsImpl consoleUtils; + private final ConsoleUtils consoleUtils; private final ConsoleOptionsFrontendPersister consoleOptionsPersister; private final CommonApplicationMessages messages; @Inject - public ConsoleManagerImpl(ConsoleUtilsImpl consoleUtils, ConsoleOptionsFrontendPersister persister, + public ConsoleManagerImpl(ConsoleUtils consoleUtils, ConsoleOptionsFrontendPersister persister, CommonApplicationMessages messages) { this.consoleUtils = consoleUtils; this.consoleOptionsPersister = persister; diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java index e01fa8f..775f2b1 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java @@ -25,10 +25,12 @@ private final Configurator configurator; @Inject - public ConsoleUtilsImpl(Configurator configurator, CommonApplicationConstants constants) { - this.configurator= configurator; + public ConsoleUtilsImpl(Configurator configurator, + CommonApplicationConstants constants, + ClientAgentType clientAgentType) { + this.configurator = configurator; this.constants = constants; - this.clientAgentType = new ClientAgentType(); + this.clientAgentType = clientAgentType; } //TODO consider refactoring it to use one parameter only if possible diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java index c6b1e25..c6ff39a 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java @@ -40,13 +40,14 @@ public Event usbFilterFileFetchedEvent = new Event(usbFilterFileFetchedEvent_Definition); private final UserPortalPlaceManager placeManager; - - private static final ClientAgentType clientAgentType = new ClientAgentType(); + private final ClientAgentType clientAgentType; @Inject - public UserPortalConfigurator(UserPortalPlaceManager placeManager, EventBus eventBus) { + public UserPortalConfigurator(UserPortalPlaceManager placeManager, + EventBus eventBus, ClientAgentType clientAgentType) { super(); this.placeManager = placeManager; + this.clientAgentType = clientAgentType; eventBus.addHandler(UiCommonInitEvent.getType(), this); // This means that it is UserPortal application. diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java index 25890e5..d28e3b7 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java @@ -30,11 +30,12 @@ new EventDefinition("documentationFileFetched", WebAdminConfigurator.class); //$NON-NLS-1$ public Event documentationFileFetchedEvent = new Event(documentationFileFetchedEvent_Definition); - private static final ClientAgentType clientAgentType = new ClientAgentType(); + private final ClientAgentType clientAgentType; @Inject - public WebAdminConfigurator(EventBus eventBus) { + public WebAdminConfigurator(EventBus eventBus, ClientAgentType clientAgentType) { super(); + this.clientAgentType = clientAgentType; eventBus.addHandler(UiCommonInitEvent.getType(), this); // This means that this is WebAdmin application. -- To view, visit http://gerrit.ovirt.org/19797 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I09a0178171de3f4e698e616a78ca988f47436957 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Vojtech Szocs <vsz...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches