package at.gv.egovernment.moa.spss.api; import org.apache.commons.discovery.tools.DiscoverClass; import at.gv.egovernment.moa.spss.MOAException; /** * Configures the SP/SS API. * * Also handles dynamic configuration updates. * * @author Patrick Peck * @version $Id$ */ public abstract class Configurator { /** The default implementation class. */ private static final String DEFAULT_IMPLEMENTATION = "at.gv.egovernment.moa.spss.server.init.ConfiguratorImpl"; /** The single instance of this class. */ private static Configurator instance = null; public static synchronized Configurator getInstance() { if (instance == null) { try { DiscoverClass discover = new DiscoverClass(); instance = (Configurator) discover.newInstance( Configurator.class, DEFAULT_IMPLEMENTATION); } catch (Exception e) { // this can not happen since we provide a valid default // implementation } } return instance; } /** * Initialize the SP/SS configuration. * * Only a single call to this method will have an effect. Use * update() for reflecting changes in the configuration instead. * * @throws MOAException An error occurred updating the SP/SS configuration. */ public abstract void init() throws MOAException; /** * Update the SP/SS configuration. * * This will only have an effect after the system has been initialized once * using init(). * * @throws MOAException An error occurred updating the SP/SS configuration. */ public abstract void update() throws MOAException; }