use of org.apache.wicket.core.util.resource.locator.caching.CachingResourceStreamLocator in project wicket by apache.
the class ResourceSettings method getResourceStreamLocator.
public IResourceStreamLocator getResourceStreamLocator() {
if (resourceStreamLocator == null) {
// Create compound resource locator using source path from
// application settings
resourceStreamLocator = new ResourceStreamLocator(getResourceFinders());
resourceStreamLocator = new CachingResourceStreamLocator(resourceStreamLocator);
}
return resourceStreamLocator;
}
use of org.apache.wicket.core.util.resource.locator.caching.CachingResourceStreamLocator in project wicket by apache.
the class CachingResourceStreamLocatorTest method strictBeforeNonStrictMatchingWithoutLocaleDoesntResultInInvalidNonStrictMatch.
/**
* Tests strict before non-strict matching without a specific locale.
*/
@Test
public void strictBeforeNonStrictMatchingWithoutLocaleDoesntResultInInvalidNonStrictMatch() {
IResourceStreamLocator resourceStreamLocator = new ResourceStreamLocator(new ClassPathResourceFinder(""));
CachingResourceStreamLocator cachingLocator = new CachingResourceStreamLocator(resourceStreamLocator);
String style = null;
String variation = null;
Locale locale = null;
String extension = null;
String filename = "org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js";
// a strict lookup for the resource with no specific locale results in a match
IResourceStream strictLocate = cachingLocator.locate(AbstractDefaultAjaxBehavior.class, filename, style, variation, locale, extension, true);
assertThat(strictLocate, is(not(nullValue())));
// followed by a non-strict search for the same resource also finds it
IResourceStream nonStrictLocate = cachingLocator.locate(AbstractDefaultAjaxBehavior.class, filename, style, variation, locale, extension, false);
assertThat(nonStrictLocate, is(not(nullValue())));
}
use of org.apache.wicket.core.util.resource.locator.caching.CachingResourceStreamLocator in project wicket by apache.
the class CachingResourceStreamLocatorTest method nonStrictMatchingDoesntResultInInvalidStrictMatch.
/**
* Tests non-strict before strict matching with a specific locale.
*/
@Test
public void nonStrictMatchingDoesntResultInInvalidStrictMatch() {
IResourceStreamLocator resourceStreamLocator = new ResourceStreamLocator(new ClassPathResourceFinder(""));
CachingResourceStreamLocator cachingLocator = new CachingResourceStreamLocator(resourceStreamLocator);
String style = null;
String variation = null;
Locale locale = new Locale("nl", "NL");
String extension = null;
String filename = "org/apache/wicket/ajax/res/js/wicket-ajax-jquery-debug.js";
// a non-strict lookup with a specific locale should find the non-localized resource
IResourceStream nonStrictLocate = cachingLocator.locate(AbstractDefaultAjaxBehavior.class, filename, style, variation, locale, extension, false);
assertThat(nonStrictLocate, is(not(nullValue())));
// but a strict lookup with a specific locale should not fall back to the non-localized
// resource
IResourceStream strictLocate = cachingLocator.locate(AbstractDefaultAjaxBehavior.class, filename, style, variation, locale, extension, true);
assertThat(strictLocate, is(nullValue()));
}
use of org.apache.wicket.core.util.resource.locator.caching.CachingResourceStreamLocator in project wicket by apache.
the class CachingResourceStreamLocatorTest method lightweightResource.
/**
* Tests light weight resource streams (everything but FileResourceStream and
* UrlResourceStream). These should <strong>not</strong> be cached.
*/
@Test
public void lightweightResource() {
IResourceStreamLocator resourceStreamLocator = mock(IResourceStreamLocator.class);
StringResourceStream srs = new StringResourceStream("anything");
when(resourceStreamLocator.locate(String.class, "path", "style", "variation", null, "extension", true)).thenReturn(srs);
CachingResourceStreamLocator cachingLocator = new CachingResourceStreamLocator(resourceStreamLocator);
cachingLocator.locate(String.class, "path", "style", "variation", null, "extension", true);
cachingLocator.locate(String.class, "path", "style", "variation", null, "extension", true);
// lightweight resource streams should not be cached so expect just a call to the delegate
// for each call to the caching locator
verify(resourceStreamLocator, times(2)).locate(String.class, "path", "style", "variation", null, "extension", true);
}
Aggregations