package org.wso2.carbon.identity.user.store.configuration.deployer; import org.apache.axis2.context.ConfigurationContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.wso2.carbon.context.CarbonContext; import org.wso2.carbon.user.api.RealmConfiguration; import org.wso2.carbon.user.core.common.AbstractUserStoreManager; import org.wso2.carbon.utils.Axis2ConfigurationContextObserver; public class UserStoreConfgurationContextObserver implements Axis2ConfigurationContextObserver { private static Log log = LogFactory.getLog(Axis2ConfigurationContextObserver.class); public void createdConfigurationContext(ConfigurationContext context) { } public void creatingConfigurationContext(int context) { } public void terminatedConfigurationContext(ConfigurationContext context) { } public void terminatingConfigurationContext(ConfigurationContext context) { try { org.wso2.carbon.user.api.UserRealm tenantRealm = CarbonContext .getThreadLocalCarbonContext().getUserRealm(); RealmConfiguration realmConfig = tenantRealm.getRealmConfiguration(); AbstractUserStoreManager userStoreManager = (AbstractUserStoreManager) tenantRealm .getUserStoreManager(); userStoreManager.clearAllSecondaryUserStores(); realmConfig.setSecondaryRealmConfig(null); userStoreManager.setSecondaryUserStoreManager(null); log.info("Unloaded all secondary user stores for tenant " + CarbonContext.getThreadLocalCarbonContext().getTenantId()); } catch (Exception ex) { log.error(ex.getMessage()); } } }