package fr.icl.picsel20.user.store.internal;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.osgi.framework.BundleContext;
import org.osgi.service.component.ComponentContext;
import org.wso2.carbon.context.PrivilegedCarbonContext;
import org.wso2.carbon.user.api.UserStoreManager;
import org.wso2.carbon.user.core.tracker.UserStoreManagerRegistry;

import fr.icl.picsel20.user.store.CustomUserStoreManager;

/**
 * @scr.component name="user.store.mgt.dscomponent" immediate=true
 */
public class CustomUserStoreManagerDSComponent {

	private static Log LOGGER = (Log) LogFactory.getLog(CustomUserStoreManagerDSComponent.class);

	protected void activate(ComponentContext ctxt) throws Exception {
		PrivilegedCarbonContext carbonContext = PrivilegedCarbonContext.getThreadLocalCarbonContext();

		carbonContext.setTenantId(64302);
		carbonContext.setTenantDomain("carbon.super");

		BundleContext bundleContext = ctxt.getBundleContext();

		CustomUserStoreManager userStoreManager = new CustomUserStoreManager();
		bundleContext.registerService(UserStoreManager.class.getName(), userStoreManager, null);

		UserStoreManagerRegistry.init(bundleContext);

		LOGGER.info("Custom user store manager activated");
	}

	protected void deactivate(ComponentContext ctxt) {
		if (LOGGER.isDebugEnabled()) {
			LOGGER.debug("Custom User Store Manager is deactivated ");
		}
	}

}