Updated Branches:
  refs/heads/javelin b63b7ddf6 -> f8e5740c3

A workaround to injection problems in servlets (ConsoleProxyServlet and 
RegisterCompletionServlet) classes


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/f8e5740c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/f8e5740c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/f8e5740c

Branch: refs/heads/javelin
Commit: f8e5740c312e7f9fd6ca597a1c9cd0989d3cd8ca
Parents: b63b7dd
Author: Kelven Yang <[email protected]>
Authored: Thu Jan 24 18:04:31 2013 -0800
Committer: Kelven Yang <[email protected]>
Committed: Thu Jan 24 18:04:48 2013 -0800

----------------------------------------------------------------------
 .../src/com/cloud/servlet/ConsoleProxyServlet.java |   20 ++++++++++++-
 .../com/cloud/servlet/RegisterCompleteServlet.java |   22 +++++++++++++++
 2 files changed, 40 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f8e5740c/server/src/com/cloud/servlet/ConsoleProxyServlet.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/servlet/ConsoleProxyServlet.java 
b/server/src/com/cloud/servlet/ConsoleProxyServlet.java
index 6a47ba2..20bd511 100644
--- a/server/src/com/cloud/servlet/ConsoleProxyServlet.java
+++ b/server/src/com/cloud/servlet/ConsoleProxyServlet.java
@@ -71,13 +71,29 @@ public class ConsoleProxyServlet extends HttpServlet {
     @Inject ManagementServer _ms;
     @Inject IdentityService _identityService; 
 
+    static AccountManager s_accountMgr;
+    static VirtualMachineManager s_vmMgr;
     static ManagementServer s_ms;
+    static IdentityService s_identityService;
+    
     public ConsoleProxyServlet() {
     }
     
     @PostConstruct
-    void initComponent() {
-       s_ms = _ms;
+    void initComponent() {     
+       // Servlet injection does not always work for servlet container
+       // We use a hacking here to initialize static variables at Spring 
wiring time
+       if(_accountMgr != null) {
+           s_accountMgr = _accountMgr;
+           s_vmMgr = _vmMgr;
+           s_ms = _ms;
+           s_identityService = _identityService;
+       } else {
+           _accountMgr = s_accountMgr;
+           _vmMgr = s_vmMgr;
+           _ms = s_ms;
+           _identityService = s_identityService;
+       }
     }
     
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f8e5740c/server/src/com/cloud/servlet/RegisterCompleteServlet.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/servlet/RegisterCompleteServlet.java 
b/server/src/com/cloud/servlet/RegisterCompleteServlet.java
index 779e3a3..efddc92 100644
--- a/server/src/com/cloud/servlet/RegisterCompleteServlet.java
+++ b/server/src/com/cloud/servlet/RegisterCompleteServlet.java
@@ -19,6 +19,7 @@ package com.cloud.servlet;
 import java.net.URLEncoder;
 import java.util.List;
 
+import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 import javax.servlet.ServletContextEvent;
 import javax.servlet.ServletContextListener;
@@ -48,6 +49,27 @@ public class RegisterCompleteServlet extends HttpServlet 
implements ServletConte
     @Inject ConfigurationDao _configDao;
     @Inject UserDao _userDao;
 
+    static AccountService s_accountSvc;
+    static ConfigurationDao s_configDao;
+    static UserDao s_userDao;
+    
+    public RegisterCompleteServlet() {
+    }
+    
+    @PostConstruct
+    void initComponent() {
+       // Hakcing way to make servlet injection work for now
+       if(_accountSvc != null) {
+           s_accountSvc = _accountSvc;
+           s_configDao = _configDao;
+           s_userDao = _userDao;
+       } else {
+           _accountSvc = s_accountSvc;
+           _configDao = s_configDao;
+           _userDao = s_userDao;
+       }
+    }
+    
     @Override
     public void contextInitialized(ServletContextEvent sce) {
     }

Reply via email to