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

Reply via email to