- All Implemented Interfaces:
IPropertiesFactoryContext
resourcePollFrequency (defaults to no polling frequency) - Frequency at which resources should be polled for changes.
resourceFinders - Add/modify this to alter the search path for resources.
useDefaultOnMissingResource (defaults to true) - Set to true to return a default value if available when a required string resource is not found. If set to false then the throwExceptionOnMissingResource flag is used to determine how to behave. If no default is available then this is the same as if this flag were false
A ResourceStreamLocator - An Application's ResourceStreamLocator is used to find resources such as images or markup files. You can supply your own ResourceStreamLocator if your prefer to store your application's resources in a non-standard location (such as a different filesystem location, a particular JAR file or even a database) by overriding the getResourceLocator() method.
Resource Factories - Resource factories can be used to create resources dynamically from
specially formatted HTML tag attribute values. For more details, see IResourceFactory
,
DefaultButtonImageResourceFactory
and
especially LocalizedImageResource
.
A Localizer The getLocalizer() method returns an object encapsulating all of the
functionality required to access localized resources. For many localization problems, even this
will not be required, as there are convenience methods available to all components:
Component.getString(String key)
and
Component.getString(String key, org.apache.wicket.model.IModel model)
.
stringResourceLoaders - A chain of IStringResourceLoader
instances that are
searched in order to obtain string resources used during localization. By default the chain is
set up to first search for resources against a particular component (e.g. page etc.) and then
against the application.
- Author:
- Jonathan Locke, Chris Turner, Eelco Hillenius, Juergen Donnerstag, Johan Compagner, Igor Vaynberg (ivaynberg), Martijn Dashorst, James Carman
-
Constructor Summary
ConstructorDescriptionResourceSettings
(Application application) Configures Wicket's default ResourceLoaders.
For an example inFooApplication
letbar.Foo
extendComponent
, this results in the following ordering: component specific bar/Foo.properties org/apache/wicket/Component.properties package specific bar/package.properties package.properties (on Foo's class loader) org/apache/wicket/package.properties org/apache/package.properties org/package.properties package.properties (on Component's class loader) application specific FooApplication.properties Application.properties validator specific Initializer specific bar.Foo.properties (Foo implementing IInitializer) -
Method Summary
Modifier and TypeMethodDescriptionaddResourceFactory
(String name, IResourceFactory resourceFactory) Adds a resource factory to the list of factories to consult when generating resources automaticallygets the resource caching strategyGet the CSS compressor to remove comments and whitespace characters from css resourcesfinal Duration
Get the the default cache duration for resources.Get the javascript compressor to remove comments and whitespace characters from javascriptsGet the application's localizer.Gets thepackage resource guard
.Placeholder string for '..' within resource urls (which will be crippled by the browser and not work anymore).Get the property factory which will be used to load property filesgetResourceFactory
(String name) Gets the resource finders to use when searching for resources.getResourceWatcher
(boolean start) boolean
boolean
boolean
boolean
A flag indicating whether static resources should have jsessionid encoded in their url.setCachingStrategy
(IResourceCachingStrategy strategy) sets the resource caching strategysetCssCompressor
(ICssCompressor compressor) Set the CSS compressor implemententation use e.g. byCssPackageResource
.final ResourceSettings
setDefaultCacheDuration
(Duration duration) Set the default cache duration for resources.setEncodeJSessionId
(boolean encodeJSessionId) Sets a flag indicating whether the jsessionid should be encoded in the url for resources implementingIStaticCacheableResource
when the cookies are disabled and there is an active http session.setFileCleaner
(IFileCleaner fileUploadCleaner) Sets a cleaner that can be used to remove files asynchronously.setHeaderItemComparator
(Comparator<? super ResourceAggregator.RecordedHeaderItem> headerItemComparator) Sets the comparator used by the resource aggregator for sorting header items.setJavaScriptCompressor
(IJavaScriptCompressor compressor) Set the javascript compressor implemententation use e.g. byJavaScriptPackageResource
.setLocalizer
(Localizer localizer) Sets the localizer which will be used to find property values.setPackageResourceGuard
(IPackageResourceGuard packageResourceGuard) Sets thepackage resource guard
.setParentFolderPlaceholder
(String sequence) Placeholder string for '..' within resource urls (which will be crippled by the browser and not work anymore).setPropertiesFactory
(IPropertiesFactory factory) Set the property factory which will be used to load property filessetResourceFinders
(List<IResourceFinder> resourceFinders) Sets the finders to use when searching for resources.setResourcePollFrequency
(Duration resourcePollFrequency) Sets the resource polling frequency.setResourceStreamLocator
(IResourceStreamLocator resourceStreamLocator) /** Sets the resource stream locator for this application Consider wrappingresourceStreamLocator
inCachingResourceStreamLocator
.setResourceWatcher
(IModificationWatcher watcher) Sets the resource watchersetThrowExceptionOnMissingResource
(boolean throwExceptionOnMissingResource) setUseDefaultOnMissingResource
(boolean useDefaultOnMissingResource) setUseMinifiedResources
(boolean useMinifiedResources) Sets whether to use pre-minified resources when available.
-
Constructor Details
-
ResourceSettings
Configures Wicket's default ResourceLoaders.
For an example inFooApplication
letbar.Foo
extendComponent
, this results in the following ordering:- component specific
-
- bar/Foo.properties
- org/apache/wicket/Component.properties
- package specific
-
- bar/package.properties
- package.properties (on Foo's class loader)
- org/apache/wicket/package.properties
- org/apache/package.properties
- org/package.properties
- package.properties (on Component's class loader)
- application specific
-
- FooApplication.properties
- Application.properties
- validator specific
- Initializer specific
-
- bar.Foo.properties (Foo implementing IInitializer)
- Parameters:
application
-
-
-
Method Details
-
addResourceFactory
Adds a resource factory to the list of factories to consult when generating resources automatically- Parameters:
name
- The name to give to the factoryresourceFactory
- The resource factory to add- Returns:
this
object for chaining
-
getLocalizer
Description copied from interface:IPropertiesFactoryContext
Get the application's localizer. to modify the way Wicket resolves keys to localized messages you can add custom resource loaders to the list returned bygetStringResourceLoaders()
.- Specified by:
getLocalizer
in interfaceIPropertiesFactoryContext
- Returns:
- The application wide localizer instance
-
getPackageResourceGuard
Gets thepackage resource guard
.- Returns:
- The package resource guard
-
getPropertiesFactory
Get the property factory which will be used to load property files- Returns:
- PropertiesFactory
-
getResourceFactory
- Parameters:
name
- Name of the factory to get- Returns:
- The IResourceFactory with the given name.
-
getResourceFinders
Gets the resource finders to use when searching for resources. By default, a finder that looks in the classpath root is configured.WebApplication
adds the classpath directory META-INF/resources. To configure additional search paths or filesystem paths, add to this list.- Returns:
- Returns the resourceFinders.
-
getResourcePollFrequency
- Returns:
- Returns the resourcePollFrequency.
-
getResourceStreamLocator
- Specified by:
getResourceStreamLocator
in interfaceIPropertiesFactoryContext
- Returns:
- Resource locator for this application
-
getResourceWatcher
- Specified by:
getResourceWatcher
in interfaceIPropertiesFactoryContext
- Parameters:
start
- boolean if the resource watcher should be started if not already started.- Returns:
- Resource watcher with polling frequency determined by setting, or null if no polling frequency has been set.
-
setResourceWatcher
Sets the resource watcher- Parameters:
watcher
-- Returns:
this
object for chaining
-
getFileCleaner
- Returns:
- the a cleaner which can be used to remove files asynchronously.
-
setFileCleaner
Sets a cleaner that can be used to remove files asynchronously.Used internally to delete the temporary files created by FileUpload functionality
- Parameters:
fileUploadCleaner
- the actual cleaner implementation. Can benull
- Returns:
this
object for chaining
-
getStringResourceLoaders
- Returns:
- mutable list of all available string resource loaders
-
getThrowExceptionOnMissingResource
-
getUseDefaultOnMissingResource
- Returns:
- Whether to use a default value (if available) when a missing resource is requested
-
setLocalizer
Sets the localizer which will be used to find property values.- Parameters:
localizer
-- Returns:
this
object for chaining- Since:
- 1.3.0
-
setPackageResourceGuard
Sets thepackage resource guard
.- Parameters:
packageResourceGuard
- The package resource guard- Returns:
this
object for chaining
-
setPropertiesFactory
Set the property factory which will be used to load property files- Parameters:
factory
-- Returns:
this
object for chaining
-
setResourceFinders
Sets the finders to use when searching for resources. By default, the resources are located on the classpath. To add additional search paths, add to the list given bygetResourceFinders()
. Use this method if you want to completely exchange the list of resource finders.- Parameters:
resourceFinders
- The resourceFinders to set- Returns:
this
object for chaining
-
setResourcePollFrequency
Sets the resource polling frequency. This is the duration of time between checks of resource modification times. If a resource, such as an HTML file, has changed, it will be reloaded. The default is one second in 'development' mode and 'never' in deployment mode.- Parameters:
resourcePollFrequency
- Frequency at which to poll resources ornull
if polling should be disabled- Returns:
this
object for chaining
-
setResourceStreamLocator
/** Sets the resource stream locator for this application Consider wrappingresourceStreamLocator
inCachingResourceStreamLocator
. This way the locator will not be asked more than once forIResourceStream
s which do not exist.- Parameters:
resourceStreamLocator
- new resource stream locator- Returns:
this
object for chaining- See Also:
-
setThrowExceptionOnMissingResource
- Parameters:
throwExceptionOnMissingResource
-- Returns:
this
object for chaining
-
setUseDefaultOnMissingResource
- Parameters:
useDefaultOnMissingResource
- Whether to use a default value (if available) when a missing resource is requested- Returns:
this
object for chaining
-
getDefaultCacheDuration
Get the the default cache duration for resources.- Returns:
- cache duration (
Duration.ZERO
will be returned if caching is disabled) - See Also:
-
setDefaultCacheDuration
Set the default cache duration for resources. Based on RFC-2616 this should not exceed one year. If you setDuration.ZERO
caching will be disabled.- Parameters:
duration
- default cache duration in seconds- Returns:
this
object for chaining- See Also:
-
getJavaScriptCompressor
Get the javascript compressor to remove comments and whitespace characters from javascripts- Returns:
- whether the comments and whitespace characters will be stripped from resources served
through
JavaScriptPackageResource
. Null is a valid value.
-
setJavaScriptCompressor
Set the javascript compressor implemententation use e.g. byJavaScriptPackageResource
. A typical implementation will remove comments and whitespace. But a no-op implementation is available as well.- Parameters:
compressor
- The implementation to be used- Returns:
- The old value
-
getCssCompressor
Get the CSS compressor to remove comments and whitespace characters from css resources- Returns:
- whether the comments and whitespace characters will be stripped from resources served
through
CssPackageResource
. Null is a valid value.
-
setCssCompressor
Set the CSS compressor implemententation use e.g. byCssPackageResource
. A typical implementation will remove comments and whitespace. But a no-op implementation is available as well.- Parameters:
compressor
- The implementation to be used- Returns:
- The old value
-
getParentFolderPlaceholder
Placeholder string for '..' within resource urls (which will be crippled by the browser and not work anymore). Note that by default the placeholder string is::
. Resources are protected by aIPackageResourceGuard
implementation such asPackageResourceGuard
which you may use or extend based on your needs.- Returns:
- placeholder
-
setParentFolderPlaceholder
Placeholder string for '..' within resource urls (which will be crippled by the browser and not work anymore). Note that by default the placeholder string isnull
and thus will not allow to access parent folders. That is by purpose and for security reasons (see Wicket-1992). In case you really need it, a good value for placeholder would e.g. be "$up$". Resources additionally are protected by aIPackageResourceGuard
implementation such asPackageResourceGuard
which you may use or extend based on your needs.- Parameters:
sequence
- character sequence which must not be ambiguous within urls- Returns:
this
object for chaining- See Also:
-
getCachingStrategy
gets the resource caching strategy- Returns:
- strategy
-
setCachingStrategy
sets the resource caching strategy- Parameters:
strategy
- instance of resource caching strategy- Returns:
this
object for chaining- See Also:
-
setUseMinifiedResources
Sets whether to use pre-minified resources when available. Minified resources are detected by name. The minified version ofx.js
is expected to be calledx.min.js
. For css files, the same convention is used:x.min.css
is the minified version ofx.css
. When this is null, minified resources will only be used in deployment configuration.- Parameters:
useMinifiedResources
- The new value for the setting- Returns:
this
object for chaining
-
getUseMinifiedResources
- Returns:
- Whether pre-minified resources will be used.
-
getHeaderItemComparator
- Returns:
- The comparator used to sort header items.
-
setHeaderItemComparator
public ResourceSettings setHeaderItemComparator(Comparator<? super ResourceAggregator.RecordedHeaderItem> headerItemComparator) Sets the comparator used by the resource aggregator for sorting header items. It should be noted that sorting header items may break resource dependencies. This comparator should therefore at least respect dependencies declared by resource references. By default, items are sorted using thePriorityFirstComparator
.- Parameters:
headerItemComparator
- The comparator used to sort header items, when null, header items will not be sorted.- Returns:
this
object for chaining
-
isEncodeJSessionId
A flag indicating whether static resources should have jsessionid encoded in their url.- Returns:
true
if the jsessionid should be encoded in the url for resources implementingIStaticCacheableResource
when the cookies are disabled and there is an active http session.
-
setEncodeJSessionId
Sets a flag indicating whether the jsessionid should be encoded in the url for resources implementingIStaticCacheableResource
when the cookies are disabled and there is an active http session.- Parameters:
encodeJSessionId
-true
when the jsessionid should be encoded,false
- otherwise- Returns:
this
object for chaining
-