Homepage

netx.jnlp.cache
Class CacheUtil

java.lang.Object
  extended by netx.jnlp.cache.CacheUtil

public class CacheUtil
extends java.lang.Object

Provides static methods to interact with the cache, download indicator, and other utility methods.

Version:
$Revision: 1.17 $
Author:
Jon A. Maxwell (JAM) - initial author

Constructor Summary
CacheUtil()
           
 
Method Summary
static java.net.URL getCachedResource(java.net.URL location, Version version, UpdatePolicy policy)
          Caches a resource and returns a URL for it in the cache; blocks until resource is cached.
static java.io.File getCacheFile(java.net.URL source, Version version)
          Returns the file for the locally cached contents of the source.
static java.io.OutputStream getOutputStream(java.net.URL source, Version version)
          Returns a buffered output stream open for writing to the cache file.
static java.security.Permission getReadPermission(java.net.URL location, Version version)
          Returns the Permission object necessary to access the resource, or null if no permission is needed.
static boolean isCacheable(java.net.URL source, Version version)
          Returns whether the resource can be cached as a local file; if not, then URLConnection.openStream can be used to obtain the contents.
static boolean isCached(java.net.URL source, Version version)
          Returns true if the cache has a local copy of the contents of the URL matching the specified version string.
static boolean isCurrent(java.net.URL source, Version version, java.net.URLConnection connection)
          Returns whether there is a version of the URL contents in the cache and it is up to date.
static void streamCopy(java.io.InputStream is, java.io.OutputStream os)
          Copies from an input stream to an output stream.
static boolean urlEquals(java.net.URL u1, java.net.URL u2)
          Compares a URL using string compare of its protocol, host, port, path, query, and anchor.
static java.io.File urlToPath(java.net.URL location, java.lang.String subdir)
          Converts a URL into a local path string within the runtime's base directory.
static void waitForResources(ApplicationInstance app, ResourceTracker tracker, java.net.URL[] resources, java.lang.String title)
          Waits until the resources are downloaded, while showing a progress indicator.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CacheUtil

public CacheUtil()
Method Detail

urlEquals

public static boolean urlEquals(java.net.URL u1,
                                java.net.URL u2)
Compares a URL using string compare of its protocol, host, port, path, query, and anchor. This method avoids the host name lookup that URL.equals does for http: protocol URLs. It may not return the same value as the URL.equals method (different hostnames that resolve to the same IP address, ie sourceforge.net and www.sourceforge.net).


getCachedResource

public static java.net.URL getCachedResource(java.net.URL location,
                                             Version version,
                                             UpdatePolicy policy)
Caches a resource and returns a URL for it in the cache; blocks until resource is cached. If the resource location is not cacheable (points to a local file, etc) then the original URL is returned.

Parameters:
location - location of the resource
version - the version, or null
Returns:
either the location in the cache or the original location

getReadPermission

public static java.security.Permission getReadPermission(java.net.URL location,
                                                         Version version)
Returns the Permission object necessary to access the resource, or null if no permission is needed.


isCurrent

public static boolean isCurrent(java.net.URL source,
                                Version version,
                                java.net.URLConnection connection)
Returns whether there is a version of the URL contents in the cache and it is up to date. This method may not return immediately.

Parameters:
source - the source URL
version - the versions to check for
connection - a connection to the URL, or null
Returns:
whether the cache contains the version
Throws:
java.lang.IllegalArgumentException - if the source is not cacheable

isCached

public static boolean isCached(java.net.URL source,
                               Version version)
Returns true if the cache has a local copy of the contents of the URL matching the specified version string.

Parameters:
source - the source URL
version - the versions to check for
Returns:
true if the source is in the cache
Throws:
java.lang.IllegalArgumentException - if the source is not cacheable

isCacheable

public static boolean isCacheable(java.net.URL source,
                                  Version version)
Returns whether the resource can be cached as a local file; if not, then URLConnection.openStream can be used to obtain the contents.


getCacheFile

public static java.io.File getCacheFile(java.net.URL source,
                                        Version version)
Returns the file for the locally cached contents of the source. This method returns the file location only and does not download the resource. The latest version of the resource that matches the specified version will be returned.

Parameters:
source - the source URL
version - the version id of the local file
Returns:
the file location in the cache, or null if no versions cached
Throws:
java.lang.IllegalArgumentException - if the source is not cacheable

getOutputStream

public static java.io.OutputStream getOutputStream(java.net.URL source,
                                                   Version version)
                                            throws java.io.IOException
Returns a buffered output stream open for writing to the cache file.

Parameters:
source - the remote location
version - the file version to write to
Throws:
java.io.IOException

streamCopy

public static void streamCopy(java.io.InputStream is,
                              java.io.OutputStream os)
                       throws java.io.IOException
Copies from an input stream to an output stream. On completion, both streams will be closed. Streams are buffered automatically.

Throws:
java.io.IOException

urlToPath

public static java.io.File urlToPath(java.net.URL location,
                                     java.lang.String subdir)
Converts a URL into a local path string within the runtime's base directory.

Parameters:
location - the url
subdir - subdirectory under the base directory
Returns:
the file

waitForResources

public static void waitForResources(ApplicationInstance app,
                                    ResourceTracker tracker,
                                    java.net.URL[] resources,
                                    java.lang.String title)
Waits until the resources are downloaded, while showing a progress indicator.

Parameters:
tracker - the resource tracker
resources - the resources to wait for
title - name of the download

Homepage