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) { }
