org.apache.tapestry5.services

## Interface UpdateListenerHub

- All Known Implementing Classes:
    UpdateListenerHubImpl

      public interface UpdateListenerHub

  Manages a set of `UpdateListener`s. Periodically (say, every request during development, or every minute or so during production), request processing is locked down so that only a single thread is active, and the active thread invokes `fireCheckForUpdates()`. Various services that are dependent on external resource files (such as classes or template files) can check to see if any file they've used has changed. If so, the service can invalidate its internal cache, or notify other services (typically via `InvalidationListener` that they should do the same.

  Note that this interface has moved from module tapestry-core to tapestry-ioc, but has kept the same package (for backwards compatibility reasons).

  A weak reference to the listener is kept; this ensures that registering as a listener will not prevent a listener instance from being reclaimed by the garbage collector (this is useful as proxies created by `ObjectLocator.proxy(Class, Class)` may register as listeners, but still be ephemeral).

  Starting in Tapestry 5.3, this services does nothing in production mode.

  Since:
    5.1.0.0

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addUpdateListener(UpdateListener listener)` Adds a listener.
    `void` | `fireCheckForUpdates()` Invoked periodically to allow services to check if underlying state has changed.

- - ### Method Detail

    - #### addUpdateListener

          void addUpdateListener(UpdateListener listener)

      Adds a listener.

    - #### fireCheckForUpdates

          void fireCheckForUpdates()

      Invoked periodically to allow services to check if underlying state has changed. For example, a template file may have changed. Listeners will typically notify applicable listeners of their own (they usually implement `InvalidationEventHub`) when such a change occurs.

${project.version} - Copyright © 2003-2014 The Apache Software Foundation.