org.apache.tapestry5.ioc.internal.util
Class URLChangeTracker

java.lang.Object
  extended by org.apache.tapestry5.ioc.internal.util.URLChangeTracker

public class URLChangeTracker
extends Object

Given a (growing) set of URLs, can periodically check to see if any of the underlying resources has changed. This class is capable of using either millisecond-level granularity or second-level granularity. Millisecond-level granularity is used by default. Second-level granularity is provided for compatibility with browsers vis-a-vis resource caching -- that's how granular they get with their "If-Modified-Since", "Last-Modified" and "Expires" headers.


Field Summary
static ClasspathURLConverter DEFAULT_CONVERTER
           
 
Constructor Summary
URLChangeTracker()
          Creates a tracker using the default (does nothing) URL converter, with default (millisecond) granularity and folder tracking disabled.
URLChangeTracker(ClasspathURLConverter classpathURLConverter)
          Creates a new URL change tracker with millisecond-level granularity and folder checking enabled.
URLChangeTracker(ClasspathURLConverter classpathURLConverter, boolean granularitySeconds)
          Creates a new URL change tracker, using either millisecond-level granularity or second-level granularity and folder checking enabled.
URLChangeTracker(ClasspathURLConverter classpathURLConverter, boolean granularitySeconds, boolean trackFolderChanges)
          Creates a new URL change tracker, using either millisecond-level granularity or second-level granularity.
 
Method Summary
 long add(URL url)
          Stores a new URL into the tracker, or returns the previous time stamp for a previously added URL.
 void clear()
          Clears all URL and timestamp data stored in the tracker.
 boolean containsChanges()
          Re-acquires the last updated timestamp for each URL and returns true if any timestamp has changed.
 void forceChange()
          Needed for testing; changes file timestamps so that a change will be detected by containsChanges().
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_CONVERTER

public static final ClasspathURLConverter DEFAULT_CONVERTER
Constructor Detail

URLChangeTracker

public URLChangeTracker()
Creates a tracker using the default (does nothing) URL converter, with default (millisecond) granularity and folder tracking disabled.

Since:
5.2.1

URLChangeTracker

public URLChangeTracker(ClasspathURLConverter classpathURLConverter)
Creates a new URL change tracker with millisecond-level granularity and folder checking enabled.

Parameters:
classpathURLConverter - used to convert URLs from one protocol to another

URLChangeTracker

public URLChangeTracker(ClasspathURLConverter classpathURLConverter,
                        boolean granularitySeconds)
Creates a new URL change tracker, using either millisecond-level granularity or second-level granularity and folder checking enabled.

Parameters:
classpathURLConverter - used to convert URLs from one protocol to another
granularitySeconds - whether or not to use second granularity (as opposed to millisecond granularity)

URLChangeTracker

public URLChangeTracker(ClasspathURLConverter classpathURLConverter,
                        boolean granularitySeconds,
                        boolean trackFolderChanges)
Creates a new URL change tracker, using either millisecond-level granularity or second-level granularity.

Parameters:
classpathURLConverter - used to convert URLs from one protocol to another
granularitySeconds - whether or not to use second granularity (as opposed to millisecond granularity)
trackFolderChanges - if true, then adding a file URL will also track the folder containing the file (this is useful when concerned about additions to a folder)
Since:
5.2.1
Method Detail

add

public long add(URL url)
Stores a new URL into the tracker, or returns the previous time stamp for a previously added URL. Filters out all non-file URLs.

Parameters:
url - of the resource to add, or null if not known
Returns:
the current timestamp for the URL (possibly rounded off for granularity reasons), or 0 if the URL is null

clear

public void clear()
Clears all URL and timestamp data stored in the tracker.


containsChanges

public boolean containsChanges()
Re-acquires the last updated timestamp for each URL and returns true if any timestamp has changed.


forceChange

public void forceChange()
Needed for testing; changes file timestamps so that a change will be detected by containsChanges().



Copyright © 2003-2012 The Apache Software Foundation.