Interface UpdateListenerHub

  • All Known Implementing Classes:

    public interface UpdateListenerHub
    Manages a set of UpdateListeners. 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. It was, however, not possible to keep the same package (for backwards compatibility reasons) without causing a split package (in terms of Java 9 Modules). 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.
    • Method Detail

      • 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.