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);
+ }
+}