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 <[email protected]> Authored: Tue Jan 8 19:01:27 2013 -0800 Committer: Kelven Yang <[email protected]> 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); + } +}
