/* (c) 2016 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.config; import java.io.IOException; import java.util.List; import org.geoserver.platform.GeoServerResourceLoader; import org.geoserver.platform.resource.Resource; /** * A common interface which must be used by all GeoServer plugins. * This will allow GeoServerExtensions to retrieve all the available configurators and * let GeoServer to be aware of their extra-configuration files (usually properties * files customized and specific for each plugin - see control-flow, monitoring and so on...). * * * @author Alessio Fabiani, GeoSolutions * */ public interface GeoServerPluginConfigurator { /** * Get the list of Resources used by the plugin. * * @return * @throws IOException */ public List<Resource> getFileLocations() throws IOException; /** * Allows the plugin to store its configuration on the target {@link GeoServerResourceLoader}. * This way we delegate the plugin to save its configuration since it is the only * on who knows how to do it better. * * @param resourceLoader * @throws IOException */ public void saveConfiguration(GeoServerResourceLoader resourceLoader) throws IOException; /** * Allows the plugin to reload its configuration from the target {@link GeoServerResourceLoader}. * This way we delegate the plugin to load its configuration since it is the only * on who knows how to do it better. * * @param resourceLoader * @throws IOException */ public void loadConfiguration(GeoServerResourceLoader resourceLoader) throws IOException; }