From 992fa473bec2356f5328bf77e877ffd6d718f0d0 Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Tue, 8 Jan 2013 11:07:22 -0800 Subject: [PATCH] convert existing singleton objects into Spring loadable bean components --- server/src/com/cloud/api/ApiDispatcher.java | 8 +++----- server/src/com/cloud/server/StatsCollector.java | 13 ++++--------- .../com/cloud/utils/component/ComponentContext.java | 2 +- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java index 651ef0ff743..3c1b0b0631f 100755 --- a/server/src/com/cloud/api/ApiDispatcher.java +++ b/server/src/com/cloud/api/ApiDispatcher.java @@ -30,6 +30,7 @@ import java.util.regex.Matcher; import javax.inject.Inject; import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; import com.cloud.api.BaseCmd.CommandType; import com.cloud.api.commands.ListEventsCmd; @@ -46,7 +47,6 @@ import com.cloud.server.ManagementServer; import com.cloud.user.Account; import com.cloud.user.UserContext; import com.cloud.utils.DateUtil; -import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.component.PluggableService; import com.cloud.utils.exception.CSExceptionErrorCode; @@ -56,6 +56,7 @@ import com.cloud.uuididentity.dao.IdentityDao; /** * A class that dispatches API commands to the appropriate manager for execution. */ +@Component public class ApiDispatcher { private static final Logger s_logger = Logger.getLogger(ApiDispatcher.class.getName()); @@ -66,14 +67,11 @@ public class ApiDispatcher { private static ApiDispatcher s_instance; public static ApiDispatcher getInstance() { - if(s_instance == null) { - s_instance = new ApiDispatcher(); - s_instance = ComponentContext.inject(s_instance); - } return s_instance; } public ApiDispatcher() { + s_instance = this; } public void dispatchCreateCmd(BaseAsyncCreateCmd cmd, Map params) { diff --git a/server/src/com/cloud/server/StatsCollector.java b/server/src/com/cloud/server/StatsCollector.java index 7f0e8ae3bd2..be83c188f8b 100755 --- a/server/src/com/cloud/server/StatsCollector.java +++ b/server/src/com/cloud/server/StatsCollector.java @@ -32,6 +32,7 @@ import javax.inject.Inject; import com.cloud.resource.ResourceManager; import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; import com.cloud.agent.AgentManager; import com.cloud.agent.AgentManager.OnError; @@ -60,8 +61,6 @@ import com.cloud.storage.dao.StoragePoolHostDao; import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.secondary.SecondaryStorageVmManager; import com.cloud.utils.NumbersUtil; -import com.cloud.utils.component.ComponentContext; -import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.SearchCriteria; import com.cloud.vm.UserVmManager; @@ -73,6 +72,7 @@ import com.cloud.vm.dao.UserVmDao; * Provides real time stats for various agent resources up to x seconds * */ +@Component public class StatsCollector { public static final Logger s_logger = Logger.getLogger(StatsCollector.class.getName()); @@ -106,18 +106,13 @@ public class StatsCollector { public static StatsCollector getInstance() { return s_instance; } + public static StatsCollector getInstance(Map configs) { - if (s_instance == null) { - - s_instance = new StatsCollector(); - s_instance = ComponentContext.inject(s_instance); - s_instance.init(configs); - - } return s_instance; } public StatsCollector() { + s_instance = this; } private void init(Map configs) { diff --git a/utils/src/com/cloud/utils/component/ComponentContext.java b/utils/src/com/cloud/utils/component/ComponentContext.java index 6fd3788d199..3a47bb2bb8a 100644 --- a/utils/src/com/cloud/utils/component/ComponentContext.java +++ b/utils/src/com/cloud/utils/component/ComponentContext.java @@ -70,7 +70,7 @@ public class ComponentContext implements ApplicationContextAware { return entry.getValue(); } - s_logger.warn("Unable to uniquely locate bean type " + beanType.getName(), e); + s_logger.warn("Unable to uniquely locate bean type " + beanType.getName()); return (T)matchedTypes.values().toArray()[0]; } }