/* * Copyright (c) 2016 EMC Corporation * All Rights Reserved */ package com.emc.storageos.api.service.impl.southbound; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import com.emc.storageos.db.client.DbClient; import com.emc.storageos.services.util.StorageDriverManager; public class StorageDriverManagerPostProcessor implements BeanPostProcessor { private static final Logger log = LoggerFactory.getLogger(StorageDriverManagerPostProcessor.class); @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (!StringUtils.equals(beanName, StorageDriverManager.STORAGE_DRIVER_MANAGER)) { return bean; } StorageDriverManagerProxy proxy = new StorageDriverManagerProxy(); proxy.setManager((StorageDriverManager) bean); DbClient dbClient = (DbClient)((StorageDriverManager) bean).getApplicationContext().getBean("dbclient"); proxy.setDbClient(dbClient); log.info("StorageDriverManager instance has been substituted in apisvc"); return proxy; } }