/**
 * Activator.java
 * Created Jul 28, 2008
 * Copyright (c) TANDBERG Television 2007-2008
 */
package com.tandbergtv.watchpoint.pmm.boot.auth;

import static java.io.File.separator;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import com.tandbergtv.workflow.auth.CredentialsManager;
import com.tandbergtv.workflow.auth.ICredentialsManager;
import com.tandbergtv.workflow.core.service.ServiceRegistry;

/**
 * Activator for the security bundle
 * 
 * @author spuranik
 */
public class Activator {

	private static final String AUTH_FILE_NAME = "auth.xml";
	private static final String PMM_FOLDER_NAME = "pmm";
	public static final String CREDENTIALS_MANAGER_NAME = "PMM_CREDENTIALS_MANAGER";
	private static final String PRODUCT_DIR = "com.tandbergtv.cms.product.dir";

	/**
	 * Creates a Activator
	 */
	public Activator() {
		super();
	}

	/**
	 * Starts the security subsystem
	 */
	public void start() {
		List<File> authFiles = new ArrayList<File>();
		String dir = System.getProperty(PRODUCT_DIR) + separator + "conf";
		String filename = dir + separator + PMM_FOLDER_NAME + separator
				+ AUTH_FILE_NAME;
		authFiles.add(new File(filename));
		ICredentialsManager credentialsManager = new CredentialsManager(
				authFiles, CREDENTIALS_MANAGER_NAME);
		ServiceRegistry.getDefault().register(
				credentialsManager.getServiceName(), credentialsManager);

		credentialsManager.start();
	}

	/**
	 * Stops the security subsystem
	 */
	public void stop() {
		ICredentialsManager service = (ICredentialsManager) ServiceRegistry
				.getDefault().lookup(CREDENTIALS_MANAGER_NAME);

		if (service != null) {
			service.stop();
		}
	}
}
