package org.atomnuke.fallout.context.config;
import java.util.Collection;
import org.atomnuke.Nuke;
import org.atomnuke.atombus.config.model.ServerConfiguration;
import org.atomnuke.fallout.config.server.ServerConfigurationHandler;
import org.atomnuke.container.packaging.PackageContext;
import org.atomnuke.fallout.context.FalloutContext;
import org.atomnuke.fallout.context.FalloutContextImpl;
import org.atomnuke.service.introspection.ServicesInterrogator;
import org.atomnuke.util.config.ConfigurationException;
import org.atomnuke.util.config.update.listener.ConfigurationListener;
/**
*
* @author zinic
*/
public class ConfigurationContextUpdateListener implements ConfigurationListener<ServerConfiguration> {
private final Collection<PackageContext> packages;
private final FalloutContext containerContext;
public ConfigurationContextUpdateListener(Nuke nukeReference, ServicesInterrogator interrogator, Collection<PackageContext> packages) {
this.packages = packages;
containerContext = new FalloutContextImpl(nukeReference, interrogator);
}
@Override
public synchronized void updated(ServerConfiguration configuration) throws ConfigurationException {
new ConfigurationProcessor(containerContext, new ServerConfigurationHandler(configuration), packages).merge();
}
}