/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.config;
import java.util.Map;
import org.geoserver.catalog.Info;
import org.geoserver.catalog.MetadataMap;
import org.geoserver.platform.resource.LockProvider;
/**
* Global GeoServer configuration.
*
* @author Justin Deoliveira, The Open Planning Project
*
*/
public interface GeoServerInfo extends Info {
/**
* Identifier.
*/
String getId();
/**
* The contact information.
*
* @uml.property name="contactInfo"
* @uml.associationEnd inverse="geoServer:org.geoserver.config.ContactInfo"
* @deprecated use {@link #getSettings()}
*/
ContactInfo getContact();
/**
* Sets the contact information.
*
* @param contactInfo
* The contactInfo to set.
* @uml.property name="contactInfo"
* @deprecated use {@link #getSettings()}
*/
void setContact(ContactInfo contactInfo);
/**
* The global settings.
* <p>
* Generally client code shoudl not call this method directly, and rather call
* {@link GeoServer#getSettings()}.
* </p>
*/
SettingsInfo getSettings();
/**
* Sets the global settings.
*/
void setSettings(SettingsInfo settings);
/**
* The Java Advanced Imaging configuration.
*/
JAIInfo getJAI();
/**
* Sets the Java Advanced Imaging configuration.
*/
void setJAI( JAIInfo jai );
/**
* The Coverage Access configuration.
*/
CoverageAccessInfo getCoverageAccess();
/**
* Sets the Coverage Access configuration.
*/
void setCoverageAccess( CoverageAccessInfo coverageInfo );
/**
* The default character set.
*
* @uml.property name="charset"
* @deprecated use {@link #getSettings()}
*/
String getCharset();
/**
* Sets the default character set.
*
* @uml.property name="charset"
* @deprecated use {@link #getSettings()}
*/
void setCharset(String charset);
/**
* Sets the administrator username.
*/
String getAdminUsername();
/**
* The administrator username.
*
*/
void setAdminUsername( String adminUsername );
/**
* The administrator password.
*/
String getAdminPassword();
/**
* Sets the administrator password.
*/
void setAdminPassword( String adminPassword );
/**
* The title of the GeoServer instance.
*
* @uml.property name="title"
* @deprecated use {@link #getSettings()}
*/
String getTitle();
/**
* Sets the title of the GeoServer instance.
* .
* @uml.property name="title"
* @deprecated use {@link #getSettings()}
*/
void setTitle(String title);
/**
* A global cap on the number of decimals to use when encoding floating
* point numbers.
*
* @uml.property name="numDecimals"
* @deprecated use {@link #getSettings()}
*/
int getNumDecimals();
/**
* Sets the global cap on the number of decimals to use when encoding floating
* point numbers.
* @uml.property name="numDecimals"
* @deprecated use {@link #getSettings()}
*/
void setNumDecimals(int numDecimals);
/**
* Provider web site (used for default contact information, or service provider information if user has not filled in contact details.
*
* @deprecated use {@link #getSettings()}
*/
String getOnlineResource();
/**
* Provider web site (used for default contact information, or service provider information if user has not filled in contact details.
*
* @param onlineResource Provider website
*/
void setOnlineResource(String onlineResource);
/**
* The url of a proxy in front of the GeoServer instance.
* <p>
* This value is used when a reference back to the GeoServer instance must
* be made in a response.
* </p>
* @uml.property name="proxyBaseUrl"
* @deprecated use {@link #getSettings()}
*/
String getProxyBaseUrl();
/**
* Sets The url of a proxy in front of the GeoServer instance.
* @uml.property name="proxyBaseUrl"
* @deprecated use {@link #getSettings()}
*/
void setProxyBaseUrl(String proxyBaseUrl);
/**
* The base url to use when including a reference to an xml schema document
* in a response.
* @uml.property name="schemaBaseUrl"
* @deprecated use {@link #getSettings()}
*/
String getSchemaBaseUrl();
/**
* Sets the base url to use when including a reference to an xml schema document
* in a response.
* @uml.property name="schemaBaseUrl"
* @deprecated use {@link #getSettings()}
*/
void setSchemaBaseUrl(String schemaBaseUrl);
/**
* Sets indent level for XML output, causing output to be more verbose.
* <p>
* Then set to false GeoServer will also take step so to strip out some formating and produce more condensed output.
*
* </p>
* @uml.property name="verbose"
* @deprecated use {@link #getSettings()}
*/
boolean isVerbose();
/**
* Sets indent level for XML output, causing output to be more verbose.
* <p>
* Then set to false GeoServer will also take step so to strip out some formating and produce more condensed output.
* @uml.property name="verbose"
* @deprecated use {@link #getSettings()}
*/
void setVerbose(boolean verbose);
/**
* Verbosity flag for exceptions.
* <p>
* When set GeoServer will include full stack traces for exceptions.
* </p>
* @uml.property name="verboseExceptions"
* @deprecated use {@link #getSettings()}
*/
boolean isVerboseExceptions();
/**
* Set the XML error handling mode for the server.
*
* @see ResourceErrorHandling
*/
void setResourceErrorHandling(ResourceErrorHandling mode);
/**
* Get the XML error handling mode for the server.
*/
ResourceErrorHandling getResourceErrorHandling();
/**
* Sets verbosity flag for exceptions.
* @uml.property name="verboseExceptions"
* @deprecated use {@link #getSettings()}
*/
void setVerboseExceptions(boolean verboseExceptions);
/**
* The update sequence.
* <p>
* This value is used by various ogc services to track changes to a capabilities
* document.
* </p>
*/
long getUpdateSequence();
/**
* Sets the update sequence.
*/
void setUpdateSequence( long updateSequence );
/**
* The size of the cache for feature type objects.
*/
int getFeatureTypeCacheSize();
/**
* Sets the size of the cache for feature type objects.
*/
void setFeatureTypeCacheSize(int featureTypeCacheSize);
/**
* Flag determining if access to services should occur only through "virtual services".
*/
Boolean isGlobalServices();
/**
* Sets the flag forcing access to services only through virtual services.
*/
void setGlobalServices(Boolean globalServices);
/**
* Sets logging buffer size of incoming XML Post Requests for WFS,WMS,...
*/
void setXmlPostRequestLogBufferSize(Integer requestBufferSize);
/**
* Gets log buffer size of XML Post Request for WFS,WMS,...
*/
Integer getXmlPostRequestLogBufferSize();
/**
* If true it enables evaluation of XML entities contained in XML files received in a service (WMS, WFS, ...) request.
* Default is FALSE.
* Enabling this feature is a security risk.
*/
void setXmlExternalEntitiesEnabled(Boolean xmlExternalEntitiesEnabled);
/**
* If true it enables evaluation of XML entities contained in XML files received in a service (WMS, WFS, ...) request.
* Default is FALSE.
* Enabling this feature is a security risk.
*/
Boolean isXmlExternalEntitiesEnabled();
/**
* Name of lock provider used for resource access.
*
* @return name of spring bean to use as lock provider
*/
public String getLockProviderName();
/**
* Sets the name of the {@link LockProvider} to use for resoruce access.
*
* The following spring bean names are initially provided with the application:
* <ul>
* <li>nullLockProvider
* <li>memoryLockProvider
* <li>fileLockProvider
* </ul>
* @param lockProviderName Name of lock provider used for resource access.
*/
public void setLockProviderName(String lockProviderName);
/**
* A map of metadata for services.
*
* @uml.property name="metadata"
*/
MetadataMap getMetadata();
/**
* Client properties for services.
* <p>
* These values are transient, and not persistent.
* </p>
*/
Map<Object, Object> getClientProperties();
/**
* Disposes the global configuration object.
*/
void dispose();
/**
* WebUIMode choices
*/
public enum WebUIMode {
/**
* Let GeoServer determine the best mode.
*/
DEFAULT,
/**
* Always redirect to persist page state (prevent double submit problem but doesn't support clustering)
*/
REDIRECT,
/**
* Never redirect to persist page state (supports clustering but doesn't prevent double submit problem)
*/
DO_NOT_REDIRECT
};
/**
* Get the WebUIMode
*
* @return the WebUIMode
*/
public WebUIMode getWebUIMode();
/**
* Set the WebUIMode
*
* @param mode
*/
public void setWebUIMode(WebUIMode mode);
}