/* * Copyright 2000-2016 Vaadin Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.vaadin.server; import java.io.Serializable; import java.util.Properties; import com.vaadin.shared.communication.PushMode; /** * A collection of properties configured at deploy time as well as a way of * accessing third party properties not explicitly supported by this class. * * @author Vaadin Ltd * @version @VERSION@ * @since 7.0.0 */ public interface DeploymentConfiguration extends Serializable { /** * Returns whether Vaadin is in production mode. * * @return true if in production mode, false otherwise. */ public boolean isProductionMode(); /** * Returns whether cross-site request forgery protection is enabled. * * @return true if XSRF protection is enabled, false otherwise. */ public boolean isXsrfProtectionEnabled(); /** * Returns whether sync id checking is enabled. The sync id is used to * gracefully handle situations when the client sends a message to a * connector that has recently been removed on the server. * * @since 7.3 * @return <code>true</code> if sync id checking is enabled; * <code>false</code> otherwise */ public boolean isSyncIdCheckEnabled(); /** * Returns the time resources can be cached in the browsers, in seconds. * * @return The resource cache time. */ public int getResourceCacheTime(); /** * Returns the number of seconds between heartbeat requests of a UI, or a * non-positive number if heartbeat is disabled. * * @return The time between heartbeats. */ public int getHeartbeatInterval(); /** * Returns whether the sending of URL's as GET and POST parameters in * requests with content-type <code>application/x-www-form-urlencoded</code> * is enabled or not. * * @return <code>false</code> if set to false or <code>true</code> otherwise */ public boolean isSendUrlsAsParameters(); /** * Returns whether a session should be closed when all its open UIs have * been idle for longer than its configured maximum inactivity time. * <p> * A UI is idle if it is open on the client side but has no activity other * than heartbeat requests. If {@code isCloseIdleSessions() == false}, * heartbeat requests cause the session to stay open for as long as there * are open UIs on the client side. If it is {@code true}, the session is * eventually closed if the open UIs do not have any user interaction. * * @see WrappedSession#getMaxInactiveInterval() * * @since 7.0.0 * * @return True if UIs and sessions receiving only heartbeat requests are * eventually closed; false if heartbeat requests extend UI and * session lifetime indefinitely. */ public boolean isCloseIdleSessions(); /** * Returns the mode of bidirectional ("push") client-server communication * that should be used. * * @return The push mode in use. */ public PushMode getPushMode(); /** * Gets the properties configured for the deployment, e.g. as init * parameters to the servlet or portlet. * * @return properties for the application. */ public Properties getInitParameters(); /** * Gets a configured property. The properties are typically read from e.g. * web.xml or from system properties of the JVM. * * @param propertyName * The simple of the property, in some contexts, lookup might be * performed using variations of the provided name. * @param defaultValue * the default value that should be used if no value has been * defined * @return the property value, or the passed default value if no property * value is found */ public String getApplicationOrSystemProperty(String propertyName, String defaultValue); /** * Gets UI class configuration option value. * * @return UI class name * * @since 7.4 */ public String getUIClassName(); /** * Gets UI provider class configuration option value. * * @since 7.4 * * @return UI class name */ public String getUIProviderClassName(); /** * Gets Widgetset configuration option value. {@code defaultValue} is * returned if widgetset parameter is not configured. * * @since 7.4 * * @return UI class name */ public String getWidgetset(String defaultValue); /** * Gets resources path configuration option value. * * @since 7.4 */ public String getResourcesPath(); /** * Gets class loader configuration option value. * * @since 7.4 */ public String getClassLoaderName(); }