org.ajax4jsf.resource.cached
Class CachedResourceBuilder
java.lang.Object
org.ajax4jsf.resource.InternetResourceBuilder
org.ajax4jsf.resource.ResourceBuilderImpl
org.ajax4jsf.resource.cached.CachedResourceBuilder
public class CachedResourceBuilder
- extends ResourceBuilderImpl
This class is intended to generate predictable URIs for all resources handled by RichFaces.
It creates mapping between resource key/data value and generated random string of known format
for all resource requests. By default UUID.toString()
is used. Mapping is maintained by LRU map
having default capacity of 10000 so be aware that stale entries can be removed and
application users will get errors then.
How to use: add to application classpath META-INF/services/org.ajax4jsf.resource.InternetResourceBuilder
file with the following content org.ajax4jsf.resource.cached.CachedResourceBuilder
Limitations:
- Doesn't work in clustered environments
- All resource URIs become invalid after server restart that can cause cache issues
-
Diagnostic of resource loading errors becomes somewhat harder. Variant of code where random key
is appended to resource name doesn't satisfy the requirement of no path depth > 8 as requested
by users (see RF-3586 for more info)
- Author:
- Alexander Smirnov, Nick Belaevski
Fields inherited from class org.ajax4jsf.resource.InternetResourceBuilder |
BASIC, COMMON_FRAMEWORK_SCRIPT, COMMON_STYLE, COMMON_STYLE_EXTENSION, COMMON_STYLE_PREFIX, COMMON_UI_SCRIPT, CONTROL_SKINNING_LEVEL, ENABLE, EXTENDED, LOAD_ALL, LOAD_NONE, LOAD_SCRIPT_STRATEGY_PARAM, LOAD_STYLE_STRATEGY_PARAM, SKINNING_SCRIPT, STD_CONTROLS_SKINNING_CLASSES_PARAM, STD_CONTROLS_SKINNING_PARAM |
Method Summary |
protected java.lang.String |
createNextKey()
|
protected byte[] |
decrypt(byte[] data)
|
protected byte[] |
encrypt(byte[] data)
|
protected int |
getCapacity(java.util.Properties properties)
|
protected java.util.Properties |
getProperties(java.lang.String name)
Get properties file from classpath |
java.lang.Object |
getResourceDataForKey(java.lang.String key)
|
org.ajax4jsf.resource.InternetResource |
getResourceForKey(java.lang.String key)
|
java.lang.String |
getUri(org.ajax4jsf.resource.InternetResource resource,
javax.faces.context.FacesContext facesContext,
java.lang.Object data)
|
void |
init()
|
Methods inherited from class org.ajax4jsf.resource.ResourceBuilderImpl |
addResource, addResource, createDynamicResource, createJarResource, createResource, createStaticResource, createUserResource, getFacesResourceURL, getRendererByExtension, getResource, getScriptRenderer, getStartTime, getStyleRenderer, getWebXml, registerResources |
Methods inherited from class org.ajax4jsf.resource.InternetResourceBuilder |
getInstance, setInstance |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEFAULT_CAPACITY
protected static final int DEFAULT_CAPACITY
- See Also:
- Constant Field Values
CachedResourceBuilder
public CachedResourceBuilder()
decrypt
protected byte[] decrypt(byte[] data)
- Overrides:
decrypt
in class ResourceBuilderImpl
encrypt
protected byte[] encrypt(byte[] data)
- Overrides:
encrypt
in class ResourceBuilderImpl
getResourceDataForKey
public java.lang.Object getResourceDataForKey(java.lang.String key)
- Overrides:
getResourceDataForKey
in class ResourceBuilderImpl
getResourceForKey
public org.ajax4jsf.resource.InternetResource getResourceForKey(java.lang.String key)
throws org.ajax4jsf.resource.ResourceNotFoundException
- Overrides:
getResourceForKey
in class ResourceBuilderImpl
- Throws:
org.ajax4jsf.resource.ResourceNotFoundException
getUri
public java.lang.String getUri(org.ajax4jsf.resource.InternetResource resource,
javax.faces.context.FacesContext facesContext,
java.lang.Object data)
- Overrides:
getUri
in class ResourceBuilderImpl
init
public void init()
throws javax.faces.FacesException
- Overrides:
init
in class ResourceBuilderImpl
- Throws:
javax.faces.FacesException
getProperties
protected java.util.Properties getProperties(java.lang.String name)
- Get properties file from classpath
- Parameters:
name
-
- Returns:
createNextKey
protected java.lang.String createNextKey()
getCapacity
protected int getCapacity(java.util.Properties properties)
Copyright © 2009. All Rights Reserved.