package org.atricore.idbus.capabilities.sso.main.select.internal;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.atricore.idbus.capabilities.sso.main.SSOException;
import org.atricore.idbus.capabilities.sso.main.select.spi.EntitySelectorManager;
import org.atricore.idbus.capabilities.sso.main.select.spi.SelectionStrategiesRegistry;
import org.atricore.idbus.capabilities.sso.main.select.spi.SelectionStrategy;
import java.util.Map;
/**
* Receives contributed strategies using the OSGi Framework
*/
public class OsgiSelectionStrategiesRegistry {
private static final Log logger = LogFactory.getLog(OsgiSelectionStrategiesRegistry.class);
private SelectionStrategiesRegistry registry;
public OsgiSelectionStrategiesRegistry(SelectionStrategiesRegistry registry) {
this.registry = registry;
}
public void register(final SelectionStrategy strategy, final Map<String, ?> properties) {
logger.info("Selection Strategy registered : " + strategy.getName());
if (logger.isDebugEnabled()) {
logger.debug("Selection Strategy registered " + strategy);
}
try {
registry.registerStrategy(strategy);
} catch (SSOException e) {
logger.error("Cannot register selection strategy " + strategy.getName());
}
}
public void unregister(final SelectionStrategy strategy, final Map<String, ?> properties) {
logger.info("Selection Strategy unregistered : " + strategy.getName());
if (logger.isDebugEnabled()) {
logger.debug("Selection Strategy unregistered " + strategy);
}
try {
registry.unregisterStrategy(strategy);
} catch (SSOException e) {
logger.error("Cannot unregister selection strategy " + strategy.getName());
}
}
}