From a26e075f0eed3eb86ffd83d9d7f4ae70e46133d1 Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Wed, 23 Jan 2013 18:23:48 -0800 Subject: [PATCH] Remove final modifer to ListS3Cmd class as it conflicts with Spring injection --- .../api/command/admin/storage/ListS3sCmd.java | 2 +- .../utils/component/ComponentContext.java | 24 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/api/src/org/apache/cloudstack/api/command/admin/storage/ListS3sCmd.java b/api/src/org/apache/cloudstack/api/command/admin/storage/ListS3sCmd.java index a496861bcbb..4ab71de24d0 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/storage/ListS3sCmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/storage/ListS3sCmd.java @@ -35,7 +35,7 @@ import com.cloud.exception.ResourceUnavailableException; import com.cloud.storage.S3; @APICommand(name = "listS3s", description = "Lists S3s", responseObject = S3Response.class, since = "4.0.0") -public final class ListS3sCmd extends BaseListCmd { +public class ListS3sCmd extends BaseListCmd { private static final String COMMAND_NAME = "lists3sresponse"; diff --git a/utils/src/com/cloud/utils/component/ComponentContext.java b/utils/src/com/cloud/utils/component/ComponentContext.java index 7516442bfc8..f86c6e5db79 100644 --- a/utils/src/com/cloud/utils/component/ComponentContext.java +++ b/utils/src/com/cloud/utils/component/ComponentContext.java @@ -18,11 +18,12 @@ package com.cloud.utils.component; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.inject.Inject; +import javax.annotation.PostConstruct; import javax.naming.ConfigurationException; import org.apache.log4j.Logger; @@ -50,22 +51,23 @@ import com.cloud.utils.db.TransactionContextBuilder; public class ComponentContext implements ApplicationContextAware { private static final Logger s_logger = Logger.getLogger(ComponentContext.class); - private static ApplicationContext s_appContext; + private static ApplicationContext s_appContext; - @Inject List daos; - @Inject List mgrs; - @Inject List adapters; - @Override public void setApplicationContext(ApplicationContext applicationContext) { - s_appContext = applicationContext; + s_appContext = applicationContext; } public static ApplicationContext getApplicationContext() { return s_appContext; - } - - public void init() { + } + + public void initComponentsLifeCycle() { + @SuppressWarnings("rawtype") + Collection daos = ComponentContext.getApplicationContext().getBeansOfType(GenericDao.class).values(); + Collection mgrs = ComponentContext.getApplicationContext().getBeansOfType(Manager.class).values(); + Collection adapters = ComponentContext.getApplicationContext().getBeansOfType(Adapter.class).values(); + Map params = new HashMap(); for (GenericDao dao : daos) { try { @@ -77,7 +79,7 @@ public class ComponentContext implements ApplicationContextAware { } } - List avoidMap = new ArrayList(); + List avoidMap = new ArrayList(); for (Manager manager : mgrs) { if (avoidMap.contains(manager.getName())) { s_logger.info("Skip manager: " + ComponentContext.getTargetClass(manager).getName() + " as it is already started");