use of org.apache.wicket.request.resource.caching.FilenameWithVersionResourceCachingStrategy in project oc-explorer by devgateway.
the class FormsWebApplication method optimizeForWebPerformance.
/**
* optimize wicket for a better web performance This will be invoked if the
* application is started with -Dwicket.configuration=deployment
*/
private void optimizeForWebPerformance() {
// add javascript files at the bottom of the page
setHeaderResponseDecorator(new RenderJavaScriptToFooterHeaderResponseDecorator("scripts-bucket"));
// The default is Development, so this code is not used
if (usesDeploymentConfig()) {
getResourceSettings().setCachingStrategy(new FilenameWithVersionResourceCachingStrategy("-v-", new CachingResourceVersion(new Adler32ResourceVersion())));
getResourceSettings().setJavaScriptCompressor(new GoogleClosureJavaScriptCompressor(CompilationLevel.SIMPLE_OPTIMIZATIONS));
getResourceSettings().setCssCompressor(new YuiCssCompressor());
getFrameworkSettings().setSerializer(new DeflatedJavaSerializer(getApplicationKey()));
getMarkupSettings().setStripComments(true);
} else {
getResourceSettings().setCachingStrategy(new NoOpResourceCachingStrategy());
}
getRequestCycleSettings().setRenderStrategy(RenderStrategy.ONE_PASS_RENDER);
}
use of org.apache.wicket.request.resource.caching.FilenameWithVersionResourceCachingStrategy in project ocvn by devgateway.
the class FormsWebApplication method optimizeForWebPerformance.
/**
* optimize wicket for a better web performance This will be invoked if the
* application is started with -Dwicket.configuration=deployment
*/
private void optimizeForWebPerformance() {
// add javascript files at the bottom of the page
setHeaderResponseDecorator(new RenderJavaScriptToFooterHeaderResponseDecorator("scripts-bucket"));
// The default is Development, so this code is not used
if (usesDeploymentConfig()) {
getResourceSettings().setCachingStrategy(new FilenameWithVersionResourceCachingStrategy("-v-", new CachingResourceVersion(new Adler32ResourceVersion())));
getResourceSettings().setJavaScriptCompressor(new GoogleClosureJavaScriptCompressor(CompilationLevel.SIMPLE_OPTIMIZATIONS));
getResourceSettings().setCssCompressor(new YuiCssCompressor());
getFrameworkSettings().setSerializer(new DeflatedJavaSerializer(getApplicationKey()));
getMarkupSettings().setStripComments(true);
} else {
getResourceSettings().setCachingStrategy(new NoOpResourceCachingStrategy());
}
getRequestCycleSettings().setRenderStrategy(RenderStrategy.ONE_PASS_RENDER);
}
use of org.apache.wicket.request.resource.caching.FilenameWithVersionResourceCachingStrategy in project wicket by apache.
the class ResourceSettings method getCachingStrategy.
/**
* gets the resource caching strategy
*
* @return strategy
*/
public IResourceCachingStrategy getCachingStrategy() {
if (resourceCachingStrategy == null) {
final IResourceVersion resourceVersion;
if (application.usesDevelopmentConfig()) {
// development mode:
// use last-modified timestamp of packaged resource for resource caching
// cache the version information for the lifetime of the current http request
resourceVersion = new RequestCycleCachedResourceVersion(new LastModifiedResourceVersion());
} else {
// deployment mode:
// use message digest over resource content for resource caching
// cache the version information for the lifetime of the application
resourceVersion = new CachingResourceVersion(new MessageDigestResourceVersion());
}
// cache resource with a version string in the filename
resourceCachingStrategy = new FilenameWithVersionResourceCachingStrategy(resourceVersion);
}
return resourceCachingStrategy;
}
use of org.apache.wicket.request.resource.caching.FilenameWithVersionResourceCachingStrategy in project wicket by apache.
the class BasicResourceReferenceMapperTest method versionStringInResourceFilename.
/**
*/
@Test
public void versionStringInResourceFilename() {
final IStaticCacheableResource resource = new IStaticCacheableResource() {
private static final long serialVersionUID = 1L;
@Override
public Serializable getCacheKey() {
return null;
}
@Override
public IResourceStream getResourceStream() {
return new StringResourceStream("foo-bar");
}
@Override
public void respond(Attributes attributes) {
}
@Override
public boolean isCachingEnabled() {
return true;
}
};
IResourceCachingStrategy strategy = new FilenameWithVersionResourceCachingStrategy("-version-", new AlphaDigitResourceVersion("foobar"));
INamedParameters params = new PageParameters();
ResourceUrl url = new ResourceUrl("test.js", params);
strategy.decorateUrl(url, resource);
assertEquals("test-version-foobar.js", url.getFileName());
strategy.undecorateUrl(url);
assertEquals("test.js", url.getFileName());
url = new ResourceUrl("test", params);
strategy.decorateUrl(url, resource);
assertEquals("test-version-foobar", url.getFileName());
strategy.undecorateUrl(url);
assertEquals("test", url.getFileName());
// this behavior is o.k. since a browser could request an
// previous version of the resource. for example we
// could first have 'test-alpha.txt' which would be later replaced
// by 'test-beta.txt' but in any case will point to
// internal resource 'test.txt'
url = new ResourceUrl("test-version-older.txt", params);
strategy.undecorateUrl(url);
assertEquals("test.txt", url.getFileName());
// weird but valid
url = new ResourceUrl("test-version-.txt", params);
strategy.undecorateUrl(url);
assertEquals("test.txt", url.getFileName());
// weird but valid
url = new ResourceUrl("test-version--------", params);
strategy.undecorateUrl(url);
assertEquals("test", url.getFileName());
// weird but valid
url = new ResourceUrl("test-version-1.0.3-alpha.txt", params);
strategy.undecorateUrl(url);
assertEquals("test.txt", url.getFileName());
// check a version that contains a dot which also marks the filename
// extension
strategy = new FilenameWithVersionResourceCachingStrategy("-version-", new StaticResourceVersion("1.0.4-beta"));
url = new ResourceUrl("test.txt", params);
strategy.decorateUrl(url, resource);
assertEquals("test-version-1.0.4-beta.txt", url.getFileName());
}
use of org.apache.wicket.request.resource.caching.FilenameWithVersionResourceCachingStrategy in project wicket by apache.
the class ResourceMapperWithDecoratedResourcesTest method newApplication.
@Override
protected WebApplication newApplication() {
return new MockApplication() {
@Override
public void init() {
super.init();
getResourceSettings().setCachingStrategy(new FilenameWithVersionResourceCachingStrategy(new CachingResourceVersion(new MessageDigestResourceVersion())));
mountResource("stylesheet.css", new CssResourceReference(ResourceMapperWithDecoratedResourcesTest.class, "decorated-resource.css"));
mountPage("/", HomePage.class);
}
};
}
Aggregations