Class URLChangeTracker
- java.lang.Object
 - 
- 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
Fields Modifier and Type Field Description static ClasspathURLConverterDEFAULT_CONVERTER 
- 
Constructor Summary
Constructors Constructor Description 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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description longadd(URL url)Stores a new URL into the tracker, or returns the previous time stamp for a previously added URL.voidclear()Clears all URL and timestamp data stored in the tracker.booleancontainsChanges()Re-acquires the last updated timestamp for each URL and returns true if any timestamp has changed.voidforceChange()Needed for testing; changes file timestamps so that a change will be detected bycontainsChanges().static FiletoFileFromFileProtocolURL(URL url)Converts a URL with protocol "file" to a File instance. 
 - 
 
- 
- 
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 anothergranularitySeconds- 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 anothergranularitySeconds- 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
- 
toFileFromFileProtocolURL
public static File toFileFromFileProtocolURL(URL url)
Converts a URL with protocol "file" to a File instance.- Since:
 - 5.2.0
 
 
- 
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 bycontainsChanges(). 
 - 
 
 -