Class Configuration


  • public class Configuration
    extends java.lang.Object
    The ZK configuration.

    To retrieve the current configuration, use WebApp.getConfiguration().

    Note: A Configuration instance can be assigned to at most one WebApp instance.

    Author:
    tomyeh
    • Constructor Detail

      • Configuration

        public Configuration()
        Constructor.
    • Method Detail

      • getWebApp

        public WebApp getWebApp()
        Returns the Web application that this configuration belongs to, or null if it is not associated yet.
      • setWebApp

        public void setWebApp​(WebApp wapp)
        Associates it with a web application.
      • invokeURIInterceptors

        public void invokeURIInterceptors​(java.lang.String uri)
        Invokes URIInterceptor.request(java.lang.String) for each relevant listener registered by addListener(java.lang.Class<?>).

        Used only internally.

        If any of them throws an exception, the exception is propagated to the caller.

        Throws:
        UiException - if it is rejected by the interceptor. Use Throwable.getCause() to retrieve the cause.
      • addLabelLocation

        public void addLabelLocation​(java.lang.String location)
        Adds the location of a properties file for i18n labels.

        Default: none (/WEB-INF/zk-label.properties is assumed).

        Notice that this method has no effect after the web server has been started. Thus, it is suggested to use the label-location element in zk.xml instead.

        Since:
        5.0.7
      • getLabelLocations

        public java.lang.String[] getLabelLocations()
        Returns an array of the locations of properties files registered by addLabelLocation(java.lang.String).
        Since:
        5.0.7
      • getComposer

        public Composer<?> getComposer​(Page page)
                                throws java.lang.Exception
        Returns the system-level composer or null if none is registered. To register a system-level composer, use addListener(java.lang.Class<?>).

        Notice that any number of composers can be registered, and a single composer is returned to represent them all.

        Throws:
        java.lang.Exception
        Since:
        5.0.1
      • getInitiators

        public Initiator[] getInitiators()
        Returns a readonly list of the system-level initiators. It is empty if none is registered. To register a system-level initiator, use addListener(java.lang.Class<?>).
        Since:
        5.0.7
      • getNamespaceParsers

        public java.util.List<NamespaceParser> getNamespaceParsers()
        Returns a readonly list of the system-level NamespaceParsers. It is empty if none is registered. To register a system-level NamespaceParsers, use addListener(java.lang.Class<?>).
        Since:
        7.0.3
      • getPropertiesRenderers

        public PropertiesRenderer[] getPropertiesRenderers()
        Returns a readonly list of the system-level properties renders. It is empty if none is registered. To register a system-level properties renders, use addListener(java.lang.Class<?>).

        Notice that, once registered, it is instantiated immediately, and the same instance is shared for rendering the properties of every component.

        Since:
        5.0.7
      • invokeCallback

        public void invokeCallback​(java.lang.String name,
                                   java.lang.Object data)
        Invokes a callback function Callback.call(Object data)
        Parameters:
        name - the name of the callback function.
        data - the parameter for the callback function.
        Since:
        8.5.2
      • registerCallBack

        public void registerCallBack​(java.lang.String name,
                                     Callback callback)
        Register a callback function Callback.call(Object data)
        Parameters:
        name - the name of the callback function.
        callback - the callback function to register into Configuration class.
        Since:
        8.5.2
      • unregisterCallBack

        public void unregisterCallBack​(java.lang.String name)
        Unregister a callback function Callback.call(Object data)
        Parameters:
        name - the name of the callback function.
        Since:
        8.5.2
      • hasCallBack

        public boolean hasCallBack​(java.lang.String name)
        Returns if a callback function Callback.call(Object data) is registered.
        Parameters:
        name - the name of the callback function.
        Returns:
        If a callback function is registered.
        Since:
        8.5.2
      • getThemeURIs

        public java.lang.String[] getThemeURIs()
        Returns a readonly list of the URI of the CSS resources that will be generated for each ZUML desktop (never null).

        Default: an array with zero length.

      • getDisabledThemeURIs

        public java.util.Set<java.lang.String> getDisabledThemeURIs()
        Returns a set of the theme URIs that are disabled (never null).
        Since:
        3.0.0
        See Also:
        addDisabledThemeURI(java.lang.String)
      • getThemeProvider

        public ThemeProvider getThemeProvider()
        Returns the theme provider for the current execution, or null if not available.

        Default: null.

        Note: if specified, the final theme URIs is decided by the provider. The URIs specified in getThemeURIs() are passed to provider, and it has no effect if the provider decides to ignore them.

        Since:
        3.0.0
        See Also:
        getThemeURIs(), getDisabledThemeURIs()
      • setThemeProvider

        public void setThemeProvider​(ThemeProvider provider)
        Sets the theme provider for the current execution, or null if not available.
        Parameters:
        provider - the theme provide. If null, the default theme URIs will be used.
        Since:
        3.0.0
        See Also:
        getThemeProvider()
      • setUiEngineClass

        public void setUiEngineClass​(java.lang.Class<?> cls)
        Sets the class used to handle UI loading and updates, or null to use the default. It must implement UiEngine.
      • getUiEngineClass

        public java.lang.Class<?> getUiEngineClass()
        Returns the class used to handle UI loading and updates, or null if default is used. It must implement UiEngine.
      • setWebAppClass

        public void setWebAppClass​(java.lang.Class<?> cls)
        Sets the class used to represent this Web application, or null to use the default. It must implement WebApp and WebAppCtrl

        Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

      • getWebAppClass

        public java.lang.Class<?> getWebAppClass()
        Returns the class used to represent this Web application, or null if default is used. It must implement WebApp and WebAppCtrl
      • setWebAppFactoryClass

        public void setWebAppFactoryClass​(java.lang.Class<?> cls)
        Sets the class used to instantiate an instance representing this Web application, or null to use the default.

        Note: setWebAppClass(java.lang.Class<?>) has the higher priority if not null.

        Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

        Parameters:
        cls - the class that implements WebAppFactory.
        Since:
        6.0.0
      • getWebAppFactoryClass

        public java.lang.Class<?> getWebAppFactoryClass()
        Returns the class used to instantiate an instance representing this Web application, or null if default is used. It must implement WebAppFactory.

        Note: getWebAppClass() has the higher priority if not null.

        Since:
        6.0.0
      • setDesktopCacheProviderClass

        public void setDesktopCacheProviderClass​(java.lang.Class<?> cls)
        Sets the class used to provide the desktop cache, or null to use the default. It must implement DesktopCacheProvider.

        Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

      • getDesktopCacheProviderClass

        public java.lang.Class<?> getDesktopCacheProviderClass()
        Returns the class used to provide the desktop cache, or null if default is used. It must implement DesktopCacheProvider.
      • setUiFactoryClass

        public void setUiFactoryClass​(java.lang.Class<?> cls)
        Sets the class used to instantiate desktops, pages and components, or null to use the default. It must implement UiFactory,

        Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

      • getUiFactoryClass

        public java.lang.Class<?> getUiFactoryClass()
        Returns the class used to instantiate desktops, pages and components, or null if default is used. It must implement UiFactory,
      • setFailoverManagerClass

        public void setFailoverManagerClass​(java.lang.Class<?> cls)
        Sets the class used to handle the failover mechanism, or null if no custom failover mechanism. It must implement FailoverManager.

        Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

      • getFailoverManagerClass

        public java.lang.Class<?> getFailoverManagerClass()
        Returns the class used to handle the failover mechanism, or null if no custom failover mechanism. It must implement FailoverManager.
      • setIdGeneratorClass

        public void setIdGeneratorClass​(java.lang.Class<?> cls)
        Sets the class that is used to generate UUID/ID of desktop, page and components, or null to use the default. It must implement IdGenerator.

        Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

        Since:
        2.4.1
      • getIdGeneratorClass

        public java.lang.Class<?> getIdGeneratorClass()
        Returns the class used to generate UUID/ID for desktop, page and components, or null if the default shall be used. It must implement IdGenerator
        Since:
        2.4.1
      • setSessionCacheClass

        public void setSessionCacheClass​(java.lang.Class<?> cls)
        Sets the class that is used to store ZK sessions, or null to use the default. It must implement SessionCache.

        Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

        Since:
        3.0.5
      • getSessionCacheClass

        public java.lang.Class<?> getSessionCacheClass()
        Returns the class used to store ZK sessions, or null if the default shall be used. It must implement SessionCache.
        Since:
        3.0.5
      • setFileItemFactoryClass

        public void setFileItemFactoryClass​(java.lang.Class<?> cls)
        Sets the class that is used to create a file item for fileupload, or null to use the default. It must implement DiskFileItemFactory.
        Since:
        8.0.2
      • getFileItemFactoryClass

        public java.lang.Class<?> getFileItemFactoryClass()
        Returns the class used to create a file item for fileupload, or null if the default shall be used. It must implement DiskFileItemFactory.
        Since:
        8.0.2
      • setAuDecoderClass

        public void setAuDecoderClass​(java.lang.Class<?> cls)
        Sets the class that is used to decode AU requests, or null to use the default. It must implement AuDecoder.

        Note: you have to set the class before WebApp is created. Otherwise, it won't have any effect.

        Since:
        5.0.4
      • getAuDecoderClass

        public java.lang.Class<?> getAuDecoderClass()
        Returns the class used to decode AU requests, or null if the default shall be used. It must implement AuDecoder.
        Since:
        5.0.4
      • setMaxProcessTime

        public void setMaxProcessTime​(int time)
        Specifies the maximal allowed time to process events, in milliseconds. ZK will keep processing the requests until all requests are processed, or the maximal allowed time expires.

        Default: 3000.

        Note: since 3.0.0, this setting has no effect on AU requests. It controls only the requests from the client-polling server push.

        Parameters:
        time - the maximal allowed time to process events. It must be positive.
      • getMaxProcessTime

        public int getMaxProcessTime()
        Returns the maximal allowed time to process events, in milliseconds. It is always positive.
      • setMaxUploadSize

        public void setMaxUploadSize​(int sz)
        Specifies the maximal allowed upload size, in kilobytes.

        Default: 5120.

        Parameters:
        sz - the maximal allowed upload size. A negative value indicates there is no limit.
      • getMaxUploadSize

        public int getMaxUploadSize()
        Returns the maximal allowed upload size, in kilobytes, or a negative value if no limit.
      • setFileSizeThreshold

        public void setFileSizeThreshold​(int sz)
        Specifies the threshold at which a temporary file is created as a buffer, in kilobytes.

        Default: 128.

        Parameters:
        sz - the file size threshold A negative value implies default setting.
        Since:
        5.0.8
      • getFileSizeThreshold

        public int getFileSizeThreshold()
        Returns the threshold at which a temporary file is created as a buffer, in kilobytes, or a negative value which implies default setting.
        Since:
        5.0.8
      • setFileRepository

        public void setFileRepository​(java.lang.String directory)
        Sets the directory in which uploaded files will be stored, if stored on disk.
        Parameters:
        directory -
        Since:
        8.0.2
      • getFileRepository

        public java.lang.String getFileRepository()
        Returns the directory in which uploaded files will be stored, if stored on disk.

        Default: null

        Since:
        8.0.2
      • getUploadCharset

        public java.lang.String getUploadCharset()
        Returns the charset used to encode the uploaded text file (never null).

        Default: UTF-8.

        See Also:
        getUploadCharsetFinder()
      • getUploadCharsetFinder

        public CharsetFinder getUploadCharsetFinder()
        Returns the finder that is used to decide the character set for the uploaded text file(s), or null if not available.

        Default: null

        Since:
        3.0.0
        See Also:
        getUploadCharset()
      • setDesktopMaxInactiveInterval

        public void setDesktopMaxInactiveInterval​(int secs)
        Specifies the time, in seconds, between client requests before ZK will invalidate the desktop.

        Default: 3600 (1 hour).

        A negative value indicates the desktop should never timeout.

      • getDesktopMaxInactiveInterval

        public int getDesktopMaxInactiveInterval()
        Returns the time, in seconds, between client requests before ZK will invalidate the desktop.

        Notice that this timeout is used only if JVM starts GC when the memory is running low.

        A negative value indicates the desktop should never timeout.

      • setProcessingPromptDelay

        public void setProcessingPromptDelay​(int minisecs)
        Specifies the time, in milliseconds, before ZK Client Engine shows a dialog to prompt users that the request is in processing.

        Default: 900

      • getProcessingPromptDelay

        public int getProcessingPromptDelay()
        Returns the time, in milliseconds, before ZK Client Engine shows a dialog to prompt users that the request is in processing.
      • setTooltipDelay

        public void setTooltipDelay​(int minisecs)
        Specifies the time, in milliseconds, before ZK Client Engine shows the tooltip when a user moves the mouse over particular UI components.

        Default: 800

      • getTooltipDelay

        public int getTooltipDelay()
        Returns the time, in milliseconds, before ZK Client Engine shows the tooltip when a user moves the mouse over particular UI components.
      • setAutoResendTimeout

        public void setAutoResendTimeout​(int minisecs)
        Specifies the timeout, in milliseconds, to re-send the AU request when the server's service unavailable or timeout.

        Default: 200

        Since:
        6.5.2
      • getAutoResendTimeout

        public int getAutoResendTimeout()
        Returns the timeout, in milliseconds, for re-sending the AU request when the server's service unavailable or timeout.
        Since:
        6.5.2

        Default: 200

      • isCrawlable

        public boolean isCrawlable()
        Returns whether this Web application can be crawled by search engines. Notice that there is some performance loss for huge web pages.

        Default: false.

        Since:
        5.0.0
      • setCrawlable

        public void setCrawlable​(boolean crawlable)
        Sets whether this Web application is crawlable. Make a Web application that allows search engines to crawl the application. Notice that there is some performance loss for huge web pages. (EE only)
        Since:
        5.0.0
      • getTimeoutURI

        public URIInfo getTimeoutURI​(java.lang.String deviceType)
        Returns the timeout URI for this device. It is used to show the error message if the desktop being requested is not found. It is usually caused by session timeout.

        Default: null (to shown an error message).

        Parameters:
        deviceType - the device type: ajax or mil. If null, ajax is assumed.
        Since:
        3.6.3
      • setTimeoutURI

        public URIInfo setTimeoutURI​(java.lang.String deviceType,
                                     java.lang.String timeoutURI,
                                     int type)
        Sets the timeout URI. It is used to show the error message if the desktop being requested is not found. It is usually caused by session timeout.
        Parameters:
        deviceType - the device type: ajax or mil. If null, ajax is assumed.
        timeoutURI - the timeout URI. If empty, it means to reload the same page. If null, an error message is shown instead of redirecting to another page.
        type - how to handle the timeout URI. It is one of URIInfo.SEND_REDIRECT or URIInfo.POPUP. However, it supports only URIInfo.SEND_REDIRECT currently.
        Returns:
        the previous timeout URI, or null if not available.
        Since:
        3.6.3
      • setTimeoutMessage

        public java.lang.String setTimeoutMessage​(java.lang.String deviceType,
                                                  java.lang.String message)
        Sets the timeout message for this device, or null if the default message is preferred. It is used only if getTimeoutURI(java.lang.String) returns null.

        To specify an I18N label, prefix the key with label:. To specify the JavaScript code, prefix the code with script:. Refer to ZK Configuration Reference for more information.

        Returns:
        the previous message, if any
        Since:
        5.0.5
      • setAutomaticTimeout

        public boolean setAutomaticTimeout​(java.lang.String deviceType,
                                           boolean auto)
        Sets whether to automatically trigger the timeout at the client.

        Default: false. It means this page is redirected to the timeout URI when the use takes some action after timeout. In other words, nothing happens if the user does nothing. If it is set to true, it is redirected as soon as the timeout URI, no matter the user takes any action.

        Parameters:
        deviceType - the device type: ajax or mil. If null, ajax is assumed.
        Since:
        3.6.3
        See Also:
        setTimeoutURI(java.lang.String, java.lang.String, int)
      • setClientErrorReload

        public java.lang.String setClientErrorReload​(java.lang.String deviceType,
                                                     int errCode,
                                                     java.lang.String uri,
                                                     java.lang.String connType)
        Sets the URI to redirect to, when ZK Client Engine receives an error.
        Parameters:
        deviceType - the device type: ajax or mil. If null, ajax is assumed.
        errCode - the error code.
        uri - the URI to redirect to. It cannot be null. If empty, the client will reload the same page again. If null, it is the same as removeClientErrorReload(java.lang.String, int, java.lang.String)
        connType - the connection type: au or server-push. If null, "au" is assumed.
        Returns:
        the previous URI associated with the specified error code
        Since:
        3.6.3
      • removeClientErrorReload

        public java.lang.String removeClientErrorReload​(java.lang.String deviceType,
                                                        int errCode,
                                                        java.lang.String connType)
        Removes the URI to redirect to, when ZK Client Engine receives an error.
        Parameters:
        deviceType - the device type: ajax or mil. If null, ajax is assumed.
        errCode - the error code.
        connType - the connection type: au or server-push. If null, "au" is assumed.
        Returns:
        the previous URI associated with the specified error code
        Since:
        3.6.3
      • getClientErrorReload

        public java.lang.String getClientErrorReload​(java.lang.String deviceType,
                                                     int errCode,
                                                     java.lang.String connType)
        Returns the URI that is associated with the specified error code, or null if no URI is associated.
        Parameters:
        deviceType - the device type: ajax or mil. If null, ajax is assumed.
        errCode - the error code.
        connType - the connection type: au or server-push. If null, "au" is assumed.
        Since:
        3.6.3
      • getClientErrorReloads

        public java.lang.Object[][] getClientErrorReloads​(java.lang.String deviceType,
                                                          java.lang.String connType)
        Returns an array of pairs of the error code and URI info of the specified device and connection (never null).

        Default: none (none since 3.6.0, while older version: 302, 401 and 403 are associated with an empty URI).

        Parameters:
        deviceType - the device type: ajax or mil. If null, ajax is assumed.
        connType - the connection type: au or server-push. If null, "au" is assumed.
        Returns:
        an array of pairs (two-element arrays) of the error code and URI info. In other words, each element of the returned array is a pair of Integer and URIInfo. For example, [[410, new URIInfo("/login.zul")], [310, new URIInfo("/login2.zul")]].
        Since:
        3.6.3
      • getSessionMaxInactiveInterval

        public int getSessionMaxInactiveInterval()
        Returns the time, in seconds, between client requests before ZK will invalidate the session.

        Default: 0 (means the system default).

        A negative value indicates that there is no limit. Zero means to use the system default (usually defined in web.xml).

        See Also:
        isTimerKeepAlive(), Session.getMaxInactiveInterval()
      • setSessionMaxDesktops

        public void setSessionMaxDesktops​(int max)
        Specifies the maximal allowed number of desktop per session.

        Default: 15.

        A negative value indicates there is no limit.

        Since:
        3.0.1
      • getSessionMaxDesktops

        public int getSessionMaxDesktops()
        Returns the maximal allowed number of desktop per session.

        A negative value indicates there is no limit.

        Since:
        3.0.1
      • setSessionMaxRequests

        public void setSessionMaxRequests​(int max)
        Specifies the maximal allowed number of concurrent requests per session.

        Default: 5.

        A negative value indicates there is no limit, but it is not recommended due to the possibility of the DoS attacks.

        Since:
        3.0.1
      • getSessionMaxRequests

        public int getSessionMaxRequests()
        Returns the maximal allowed number of concurrent requests per session.

        A negative value indicates there is no limit, but it is not recommended due to the possibility of the DoS attacks.

        Since:
        3.0.1
      • setSessionMaxPushes

        public void setSessionMaxPushes​(int max)
        Specifies the maximal allowed number of concurrent server-pushes per session.

        Default: -1 (no limitation).

        Parameters:
        max - the maximal allowed number. A negative value indicates there is no limit.
        Since:
        5.0.0
      • getSessionMaxPushes

        public int getSessionMaxPushes()
        Returns the maximal allowed number of concurrent server-pushes per session.
      • setMaxSpareThreads

        public void setMaxSpareThreads​(int max)
        Specifies the maximal allowed number of the spare pool for queuing the event processing threads (per Web application).

        Default: 100.

        A negative value indicates there is no limit.

        ZK uses a thread pool to keep the idle event processing threads. It speeds up the service of an event by reusing the thread queued in this pool.

        See Also:
        setMaxSuspendedThreads(int), isEventThreadEnabled()
      • getMaxSpareThreads

        public int getMaxSpareThreads()
        Returns the maximal allowed number of the spare pool for queuing event processing threads (per Web application).
        See Also:
        isEventThreadEnabled()
      • setMaxSuspendedThreads

        public void setMaxSuspendedThreads​(int max)
        Specifies the maximal allowed number of suspended event processing threads (per Web application).

        Default: -1 (no limit).

        A negative value indicates there is no limit.

        It is ignored if the use of the event processing thread is disable (isEventThreadEnabled().

      • getMaxSuspendedThreads

        public int getMaxSuspendedThreads()
        Returns the maximal allowed number of suspended event processing threads (per Web application).

        It is ignored if the use of the event processing thread is disable (isEventThreadEnabled().

        See Also:
        isEventThreadEnabled()
      • enableEventThread

        public void enableEventThread​(boolean enable)
        Deprecated.
        as of release 10.0.0. (not recommended to use in production)
        Sets whether to use the event processing thread.

        Default: false (disabled).

        Throws:
        java.lang.IllegalStateException - if there is suspended thread and use is false.
      • isEventThreadEnabled

        public boolean isEventThreadEnabled()
        Deprecated.
        as of release 10.0.0. (not recommended to use in production)
        Returns whether to use the event processing thread.

        Default: false (disabled).

      • enableZScript

        public void enableZScript​(boolean enable)
        Sets whether zscript is allowed.

        Default: true (enabled).

        Since:
        6.0.0
      • isZScriptEnabled

        public boolean isZScriptEnabled()
        Returns whether zscript is allowed.

        Default: true (enabled).

        Since:
        6.0.0
      • getMonitor

        public Monitor getMonitor()
        Returns the monitor for this application, or null if not set.
      • setMonitor

        public Monitor setMonitor​(Monitor monitor)
        Sets the monitor for this application, or null to disable it.

        Default: null.

        There is at most one monitor for each Web application. The previous monitor will be replaced when this method is called.

        In addition to call this method, you could specify a monitor in zk.xml

        Parameters:
        monitor - the performance meter. If null, the meter function is disabled.
        Returns:
        the previous monitor, or null if not available.
      • getPerformanceMeter

        public PerformanceMeter getPerformanceMeter()
        Returns the performance meter for this application, or null if not set.
        Since:
        3.0.0
      • setPerformanceMeter

        public PerformanceMeter setPerformanceMeter​(PerformanceMeter meter)
        Sets the performance meter for this application, or null to disable it.

        Default: null.

        There is at most one performance meter for each Web application. The previous meter will be replaced when this method is called.

        In addition to call this method, you could specify a performance meter in zk.xml

        Parameters:
        meter - the performance meter. If null, the meter function is disabled.
        Returns:
        the previous performance meter, or null if not available.
        Since:
        3.0.0
      • getExecutionMonitor

        public ExecutionMonitor getExecutionMonitor()
        Returns the execution monitor for this application, or null if not set.
        Since:
        6.0.0
      • setExecutionMonitor

        public ExecutionMonitor setExecutionMonitor​(ExecutionMonitor monitor)
        Sets the execution monitor for this application, or null to disable it.

        Default: null.

        There is at most one execution monitor for each Web application. The previous meter will be replaced when this method is called.

        In addition to call this method, you could specify an execution monitor in zk.xml

        Parameters:
        monitor - the execution monitor. If null, the monitor function is disabled.
        Returns:
        the previous execution monitor, or null if not available.
        Since:
        6.0.0
      • getDesktopRecycle

        public DesktopRecycle getDesktopRecycle()
        Returns the desktop recycle for this application, or null if not set.
        Since:
        5.0.0
      • setDesktopRecycle

        public DesktopRecycle setDesktopRecycle​(DesktopRecycle dtRecycle)
        Sets the desktop recycler for this application, or null to disable it.

        Default: null.

        There is at most one desktop recycle for each Web application. The previous instance will be replaced when this method is called.

        In addition to call this method, you could specify a desktop recycle in zk.xml

        Parameters:
        dtRecycle - the desktop recycle. If null, the recycle function is disabled.
        Returns:
        the previous desktop recycle, or null if not available.
        Since:
        5.0.0
      • getResponseCharset

        public java.lang.String getResponseCharset()
        Returns the charset used to generate the HTTP response or null to use the container's default. It is currently used by DHtmlLayoutServlet,

        Default: UTF-8.

      • setResponseCharset

        public void setResponseCharset​(java.lang.String charset)
        Sets the charset used to generate HTTP response. It is currently used by DHtmlLayoutServlet,
        Parameters:
        charset - the charset to use. If null or empty, the container's default is used.
      • getPreference

        public java.lang.String getPreference​(java.lang.String name,
                                              java.lang.String defaultValue)
        Returns the value of the preference defined in zk.xml, or by setPreference(java.lang.String, java.lang.String).

        Preference is application specific. You can specify whatever you want as you specifying context-param for a Web application.

        Parameters:
        defaultValue - the default value that is used if the specified preference is not found.
      • setPreference

        public void setPreference​(java.lang.String name,
                                  java.lang.String value)
        Sets the value of the preference.
      • getPreferenceNames

        public java.util.Set<java.lang.String> getPreferenceNames()
        Returns a readonly set of all preference names.
      • addRichlet

        public java.lang.Object addRichlet​(java.lang.String name,
                                           java.lang.Class<?> richletClass,
                                           java.util.Map<java.lang.String,​java.lang.String> params)
        Adds the definition of a richlet.

        If there was a richlet associated with the same name, the the old richlet will be replaced.

        Parameters:
        name - the richlet name
        params - the initial parameters, or null if no initial parameter at all. Once called, the caller cannot access params any more.
        Returns:
        the previous richlet class or class-name with the specified name, or null if no previous richlet.
      • addRichlet

        public java.lang.Object addRichlet​(java.lang.String name,
                                           java.lang.String richletClassName,
                                           java.util.Map<java.lang.String,​java.lang.String> params)
        Adds the definition of a richlet.

        If there was a richlet associated with the same name, the the old servlet will be replaced.

        Parameters:
        name - the richlet name
        richletClassName - the class name. The class will be loaded only when the richlet is loaded.
        params - the initial parameters, or null if no initial parameter at all. Once called, the caller cannot access params any more.
        Returns:
        the previous richlet class or class-name with the specified name, or null if no previous richlet.
      • addRichlet

        public java.lang.Object addRichlet​(java.lang.String name,
                                           Richlet richlet)
        Adds the richlet.

        If there was a richlet associated with the same name, the the old one will be replaced.

        Parameters:
        name - the richlet name
        richlet - the richlet implemetation.
        Returns:
        the previous richlet class or class-name with the specified name, or null if no previous richlet.
        Since:
        7.0.2
      • removeRichlet

        public java.lang.Object removeRichlet​(java.lang.String name)
        Removes the richlet and associated richlet mappings.
        Parameters:
        name - the richlet name
        Returns:
        the removed richlet class or class-name with the specified name, or null if the richlet is not found.
        Since:
        7.0.2
      • getRichlet

        public Richlet getRichlet​(java.lang.String name)
        Returns an instance of richlet of the specified name, or null if not found.
      • getRichletByPath

        public Richlet getRichletByPath​(java.lang.String path)
        Returns an instance of richlet for the specified path, or null if not found.
      • detroyRichlets

        public void detroyRichlets()
        Destroys all richlets.
      • setKeepDesktopAcrossVisits

        public void setKeepDesktopAcrossVisits​(boolean keep)
        Specifies whether to keep the desktops across visits. If false, the desktops are removed when an user reloads an URL or browses to another URL.

        Default: false.

      • isKeepDesktopAcrossVisits

        public boolean isKeepDesktopAcrossVisits()
        Returns whether to keep the desktops across visits. If false, the desktops are removed when an user reloads an URL or browses to another URL.
      • setTimerKeepAlive

        public void setTimerKeepAlive​(boolean alive)
        Specifies whether to keep the session alive, when receiving the onTimer event.

        Default: false.

        A session is expired (and then invalidated), if it didn't receive any client request in the specified timeout interval (getSessionMaxInactiveInterval()). By setting this option to true, the session timeout will be reset when onTimer is received (just like any other event).

        Note: if true and the timer is shorter than the session timeout (getSessionMaxInactiveInterval()), the session is never expired.

        Parameters:
        alive - whether to keep the session alive when receiving onTimer
        Since:
        3.0.0
      • isTimerKeepAlive

        public boolean isTimerKeepAlive()
        Returns whether to keep the session alive, when receiving the onTimer event. In other words, it returns whether to reset the session timeout counter when receiving onTimer, just like any other events.
        Since:
        3.0.0
      • isDebugJS

        public boolean isDebugJS()
        Returns whether to debug JavaScript files. If true, it means the original (i.e., uncompressed) JavaScript files shall be loaded instead of the compressed JavaScript files.
        Since:
        3.0.4
        See Also:
        setDebugJS(boolean)
      • setExpressionFactoryClass

        public void setExpressionFactoryClass​(java.lang.Class<? extends ExpressionFactory> expfcls)
        Sets the implementation of the expression factory that shall be used by the whole system.

        Default: null -- it means the org.zkoss.xel.el.ELFactory class (it requires zcommons-el.jar).

        Note: you can only specify an implementation that is compatible with JSP EL here, since ZK's builtin pages depend on it. However, you can use any factory you like in an individual page, as long as all expressions in the page follow the syntax of the evaluator you are using.

        Parameters:
        expfcls - the implemtation class, or null to use the default. Note: expfcls must implement ExpressionFactory.
        Since:
        3.0.0
      • getAttributes

        public java.util.Map<java.lang.String,​java.lang.Object> getAttributes()
        Returns a map of application-specific attributes.
        Since:
        5.0.0
      • getAttribute

        public java.lang.Object getAttribute​(java.lang.String name)
        Returns the value of an application-specific attribute, or null if not found.
        Since:
        5.0.0
      • setAttribute

        public java.lang.Object setAttribute​(java.lang.String name,
                                             java.lang.Object value)
        Returns the value of an application-specific attribute.
        Parameters:
        value - the value of the attribute. If null, it means removal, i.e., removeAttribute(java.lang.String).
        Returns:
        the previous value, or null if no such value.
        Since:
        5.0.0
      • removeAttribute

        public java.lang.Object removeAttribute​(java.lang.String name)
        Removes the value of an application-specific attribute.
        Returns:
        the previous value, or null if no such value.
        Since:
        5.0.0
      • addClientPackage

        public void addClientPackage​(java.lang.String pkg)
        Adds a client (JavaScript) package that is provided by this server.

        Default: none.

        If no package is defined (default), ZK Client Engine assumes all packages coming from the server generating the HTML page.

        However, it might not be true if you want to load some client codes from different server (such as Ajax-asService). Therefore, you have to invoke this method to add the client packages if this server is going to provide JavaScript codes for other servers.

        Since:
        5.0.0
      • getClientPackages

        public java.lang.String[] getClientPackages()
        Returns a readonly list of the names of the client pages that are provided by this server
        Since:
        5.0.0
      • getEventTimeWarning

        public int getEventTimeWarning()
        Returns the time, in seconds, to show a warning message if an event has been processinged longer than it.

        Default: 600

        Since:
        3.6.3
      • setEventTimeWarning

        public void setEventTimeWarning​(int secs)
        Set the time, in seconds, to show a warning message if an event has been processinged longer than it.
        Parameters:
        secs - the number of seconds. If a non-positive number is specified, no warning message at all.
        Since:
        3.6.3
      • addErrorPage

        public java.lang.String addErrorPage​(java.lang.String deviceType,
                                             java.lang.Class<?> type,
                                             java.lang.String location)
        Adds an error page.
        Parameters:
        deviceType - the device type: ajax or mil
        type - what type of errors the error page is associated with.
        location - where is the error page.
        Returns:
        the previous location of the same error, or null if not defined yet.
        Since:
        2.4.1
      • getErrorPage

        public java.lang.String getErrorPage​(java.lang.String deviceType,
                                             java.lang.Throwable error)
        Returns the error page that matches the specified error, or null if not found.
        Parameters:
        deviceType - the device type: ajax or mil
        error - the exception being thrown
        Since:
        2.4.1
      • isCustomThemeProvider

        public boolean isCustomThemeProvider()
        Returns whether to use custom ThemeProvider. If true, it means the default ThemeProvider shall be ignored. It is set to true if declare custom ThemeProvider in zk.xml

        Default: false

        Since:
        7.0.0
      • setCustomThemeProvider

        public void setCustomThemeProvider​(boolean customThemeProvider)
        Sets whether to use custom ThemeProvider.

        Default: false.

        It is set to true if declare custom ThemeProvider in zk.xml

        Note: internal use only

        Parameters:
        customThemeProvider - whether to use custom ThemeProvider.
        Since:
        7.0.0
      • isCustomThemeRegistry

        public boolean isCustomThemeRegistry()
        Returns whether to use custom ThemeRegistry. If true, it means the default ThemeRegistry shall be ignored. It is set to true if declare custom ThemeRegistry in zk.xml

        Default: false

        Since:
        7.0.0
      • setCustomThemeRegistry

        public void setCustomThemeRegistry​(boolean customThemeRegistry)
        Sets whether to use custom ThemeRegistry.

        Default: false.

        It is set to true if declare custom ThemeRegistry in zk.xml.

        Note: internal use only

        Parameters:
        customThemeRegistry - whether to use custom ThemeRegistry.
        Since:
        7.0.0
      • isCustomThemeResolver

        public boolean isCustomThemeResolver()
        Returns whether to use custom ThemeResolver. If true, it means the default ThemeResolver shall be ignored. It is set to true if declare custom ThemeResolver in zk.xml

        Default: false

        Since:
        7.0.0
      • setCustomThemeResolver

        public void setCustomThemeResolver​(boolean customThemeResolver)
        Sets whether to use custom ThemeResolver.

        Default: false.

        It is set to true if declare custom ThemeResolver in zk.xml.

        Note: internal use only

        Parameters:
        customThemeResolver - whether to use custom ThemeResolver.
        Since:
        7.0.0
      • setInitCrashScript

        public void setInitCrashScript​(java.lang.String script)
        Sets user customized init crash script

        User can customize init crash page layout by defining a javascript function which is assigned to window.zkShowCrashMessage

        Parameters:
        script -
        Since:
        7.0.4
      • setInitCrashTimeout

        public void setInitCrashTimeout​(int timeout)
        Sets user customized init crash timeout

        User can customize init crash timeout by simply giving a number(sec).

        Parameters:
        timeout -
        Since:
        7.0.4
      • getInitCrashScript

        public java.lang.String getInitCrashScript()
        Returns init crash script, if null, use default, see crashmsg.js
        Returns:
        String
        Since:
        7.0.4
      • getInitCrashTimeout

        public int getInitCrashTimeout()
        Returns init crash timeout, if -1, use default, which is 60 sec
        Returns:
        int
        Since:
        7.0.4
      • getBinderInitAttribute

        public java.lang.String getBinderInitAttribute()
        Returns binder init attribute name
        Returns:
        String
        Since:
        8.0.0
      • setBinderInitAttribute

        public void setBinderInitAttribute​(java.lang.String binderInitAttribute)
        Set binder init attribute name
        Since:
        8.0.0
      • getBinderAnnotations

        public java.util.Set<java.lang.String> getBinderAnnotations()
        Returns binder annotations
        Returns:
        Set
        Since:
        8.0.0
      • setBinderAnnotations

        public void setBinderAnnotations​(java.util.Set<java.lang.String> binderAnnotations)
        Set binder annotations
        Since:
        8.0.0
      • addDataHandler

        public void addDataHandler​(DataHandlerInfo info)
        Adds client data attribute handler
        Since:
        8.0.0
      • getDataHandlers

        public java.util.Map<java.lang.String,​DataHandlerInfo> getDataHandlers()
        Returns all of the client data attribute handlers
        Since:
      • enableSourceMap

        public void enableSourceMap​(boolean enable)
        Sets whether source map is enabled.

        Default: false (disabled).

        Since:
        8.5.0
      • isSourceMapEnabled

        public boolean isSourceMapEnabled()
        Returns whether source map is enabled.

        Default: false (disabled).

        Since:
        8.5.0
      • enableHistoryState

        public void enableHistoryState​(boolean enable)
        Sets whether history state handle is enabled. If disabled, ZK won't generate any onHistoryPopState event even if history state is popped. It is desirable to avoid unnecessary events back to server if history state is handled by front-end.

        Default: true (enabled).

        Since:
        8.6.1
      • isHistoryStateEnabled

        public boolean isHistoryStateEnabled()
        Returns whether history state handle is enabled.

        Default: true (enabled).

        Since:
        8.6.1
      • setSendClientErrors

        public void setSendClientErrors​(boolean send)
        Sets whether to send client errors to the server for logging the page url where the error occurred and its stack trace.

        Default: false.

        Since:
        10.0.0
      • isSendClientErrors

        public boolean isSendClientErrors()
        Returns whether to send client errors to the server for logging the page url where the error occurred and its stack trace.

        Default: false.

        Since:
        10.0.0