You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ke...@apache.org on 2013/01/09 04:01:54 UTC

git commit: Get rid of static references to component framework

Updated Branches:
  refs/heads/javelin cc23a2332 -> ff26a42eb


Get rid of static references to component framework


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

Branch: refs/heads/javelin
Commit: ff26a42eb293a8399cc51e0f5fc681c0a669a50f
Parents: cc23a23
Author: Kelven Yang <ke...@gmail.com>
Authored: Tue Jan 8 19:01:27 2013 -0800
Committer: Kelven Yang <ke...@gmail.com>
Committed: Tue Jan 8 19:01:27 2013 -0800

----------------------------------------------------------------------
 api/src/com/cloud/user/UserContext.java            |   10 +---
 api/src/com/cloud/user/UserContextInitializer.java |   40 +++++++++++++++
 2 files changed, 43 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/ff26a42e/api/src/com/cloud/user/UserContext.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/user/UserContext.java b/api/src/com/cloud/user/UserContext.java
index b140728..786590e 100644
--- a/api/src/com/cloud/user/UserContext.java
+++ b/api/src/com/cloud/user/UserContext.java
@@ -22,9 +22,7 @@ import com.cloud.utils.component.ComponentLocator;
 public class UserContext {
 
     private static ThreadLocal<UserContext> s_currentContext = new ThreadLocal<UserContext>();
-    private static final ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
-    private static final AccountService _accountMgr = locator.getManager(AccountService.class);
-
+    
     private long userId;
     private String sessionId;
     private Account account;
@@ -34,8 +32,6 @@ public class UserContext {
 
     private boolean apiServer;
 
-    private static UserContext s_adminContext = new UserContext(_accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount(), null, false);
-
     public UserContext() {
     }
 
@@ -86,10 +82,10 @@ public class UserContext {
             // however, there are many places that run background jobs assume the system context.
             //
             // If there is a security concern, all entry points from user (including the front end that takes HTTP
-// request in and
+        	// request in and
             // the core async-job manager that runs commands from user) have explicitly setup the UserContext.
             //
-            return s_adminContext;
+            return UserContextInitializer.getInstance().getAdminContext();
         }
         return context;
     }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/ff26a42e/api/src/com/cloud/user/UserContextInitializer.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/user/UserContextInitializer.java b/api/src/com/cloud/user/UserContextInitializer.java
new file mode 100644
index 0000000..a545963
--- /dev/null
+++ b/api/src/com/cloud/user/UserContextInitializer.java
@@ -0,0 +1,40 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.user;
+
+import javax.inject.Inject;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class UserContextInitializer {
+	@Inject private AccountService _accountMgr;
+
+    private static UserContextInitializer s_instance;
+    
+    public UserContextInitializer() {
+    	s_instance = this;
+    }
+    
+    public static UserContextInitializer getInstance() {
+    	return s_instance;
+    }
+    
+    public UserContext getAdminContext() {
+    	return new UserContext(_accountMgr.getSystemUser().getId(), _accountMgr.getSystemAccount(), null, false);
+    }
+}