@Test public void resourceChainWithoutCaching() throws Exception { this.registration.resourceChain(false); ResourceHttpRequestHandler handler = getHandler("/resources/**"); List<ResourceResolver> resolvers = handler.getResourceResolvers(); assertThat(resolvers, Matchers.hasSize(2)); assertThat(resolvers.get(0), Matchers.instanceOf(WebJarsResourceResolver.class)); assertThat(resolvers.get(1), Matchers.instanceOf(PathResourceResolver.class)); List<ResourceTransformer> transformers = handler.getResourceTransformers(); assertThat(transformers, Matchers.hasSize(0)); }
@Test public void resourceChain() throws Exception { ResourceResolver mockResolver = Mockito.mock(ResourceResolver.class); ResourceTransformer mockTransformer = Mockito.mock(ResourceTransformer.class); this.registration.resourceChain(true).addResolver(mockResolver).addTransformer(mockTransformer); ResourceHttpRequestHandler handler = getHandler("/resources/**"); List<ResourceResolver> resolvers = handler.getResourceResolvers(); assertThat(resolvers.toString(), resolvers, Matchers.hasSize(4)); assertThat(resolvers.get(0), Matchers.instanceOf(CachingResourceResolver.class)); CachingResourceResolver cachingResolver = (CachingResourceResolver) resolvers.get(0); assertThat(cachingResolver.getCache(), Matchers.instanceOf(ConcurrentMapCache.class)); assertThat(resolvers.get(1), Matchers.equalTo(mockResolver)); assertThat(resolvers.get(2), Matchers.instanceOf(WebJarsResourceResolver.class)); assertThat(resolvers.get(3), Matchers.instanceOf(PathResourceResolver.class)); List<ResourceTransformer> transformers = handler.getResourceTransformers(); assertThat(transformers, Matchers.hasSize(2)); assertThat(transformers.get(0), Matchers.instanceOf(CachingResourceTransformer.class)); assertThat(transformers.get(1), Matchers.equalTo(mockTransformer)); }
@Test public void urlResourceWithCharset() throws Exception { this.registration.addResourceLocations("[charset=ISO-8859-1]file:///tmp"); this.registration.resourceChain(true); ResourceHttpRequestHandler handler = getHandler("/resources/**"); UrlResource resource = (UrlResource) handler.getLocations().get(1); assertEquals("file:/tmp", resource.getURL().toString()); assertNotNull(handler.getUrlPathHelper()); List<ResourceResolver> resolvers = handler.getResourceResolvers(); PathResourceResolver resolver = (PathResourceResolver) resolvers.get(resolvers.size()-1); Map<Resource, Charset> locationCharsets = resolver.getLocationCharsets(); assertEquals(1, locationCharsets.size()); assertEquals(StandardCharsets.ISO_8859_1, locationCharsets.values().iterator().next()); }
@Test public void resourceChainWithVersionResolver() throws Exception { VersionResourceResolver versionResolver = new VersionResourceResolver() .addFixedVersionStrategy("fixed", "/**/*.js") .addContentVersionStrategy("/**"); this.registration.resourceChain(true).addResolver(versionResolver) .addTransformer(new AppCacheManifestTransformer()); ResourceHttpRequestHandler handler = getHandler("/resources/**"); List<ResourceResolver> resolvers = handler.getResourceResolvers(); assertThat(resolvers.toString(), resolvers, Matchers.hasSize(4)); assertThat(resolvers.get(0), Matchers.instanceOf(CachingResourceResolver.class)); assertThat(resolvers.get(1), Matchers.sameInstance(versionResolver)); assertThat(resolvers.get(2), Matchers.instanceOf(WebJarsResourceResolver.class)); assertThat(resolvers.get(3), Matchers.instanceOf(PathResourceResolver.class)); List<ResourceTransformer> transformers = handler.getResourceTransformers(); assertThat(transformers, Matchers.hasSize(3)); assertThat(transformers.get(0), Matchers.instanceOf(CachingResourceTransformer.class)); assertThat(transformers.get(1), Matchers.instanceOf(CssLinkResourceTransformer.class)); assertThat(transformers.get(2), Matchers.instanceOf(AppCacheManifestTransformer.class)); }
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**") .addResourceLocations("classpath:org/springframework/web/servlet/resource/test/") .resourceChain(true).addResolver(new VersionResourceResolver().addContentVersionStrategy("/**")); } }
.resourceChain(false) .addResolver(cachingResolver) .addResolver(versionResolver)
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/ui/**") .addResourceLocations("classpath:/META-INF/spring-boot-admin-server-ui/") .resourceChain(true); } }
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { String[] locations = new String[]{"classpath:/static/"}; if (NzbHydra.getDataFolder() != null) { File staticFolderFile = new File(new File(NzbHydra.getDataFolder()).getParentFile(), "static"); try { String fileStatic = staticFolderFile.toURI().toURL().toString(); locations = (fileStatic != null && staticFolderFile.exists()) ? new String[]{fileStatic, "classpath:/static/"} : new String[]{"classpath:/static/"}; logger.info("Found folder {}. Will load UI resources from there", staticFolderFile.getAbsolutePath()); } catch (MalformedURLException e) { logger.error("Unable to build path for local static files"); } } registry.addResourceHandler("/static/**") .addResourceLocations(locations) .setCacheControl(CacheControl.noCache()) .resourceChain(false); registry.setOrder(0); }
log.info("Serving {} as plugin ui content.", absPluginUi); registry.addResourceHandler("/static/tosca/{csarName:.+}/{csarVersion:.+}/**").addResourceLocations(absToscaRepo).resourceChain(false) .addResolver(new ResourceResolver() { @Override
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**") .addResourceLocations("classpath:static/") .resourceChain(false) .addResolver(new VersionResourceResolver().addContentVersionStrategy("/**")); }
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**") .addResourceLocations("classpath:/static/") .setCacheControl(CacheControl.noCache()) .resourceChain(false) //.addResolver(new VersionResourceResolver().addContentVersionStrategy("/static/js/**", "/static/css/**")) ; registry.setOrder(0); }
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler(adminServerProperties.getContextPath() + "/**") .addResourceLocations("classpath:/META-INF/spring-boot-admin-server-ui/") .resourceChain(true) .addResolver(new PreferMinifiedFilteringResourceResolver(".min")); registry.addResourceHandler(adminServerProperties.getContextPath() + "/all-modules.css") .resourceChain(true) .addResolver(new ResourcePatternResolvingResourceResolver(resourcePatternResolver, "classpath*:/META-INF/spring-boot-admin-server-ui/*/module.css")) .addResolver(new ConcatenatingResourceResolver("\n".getBytes())); registry.addResourceHandler(adminServerProperties.getContextPath() + "/all-modules.js") .resourceChain(true) .addResolver(new ResourcePatternResolvingResourceResolver(resourcePatternResolver, "classpath*:/META-INF/spring-boot-admin-server-ui/*/module.js")) .addResolver(new PreferMinifiedFilteringResourceResolver(".min")) .addResolver(new ConcatenatingResourceResolver(";\n".getBytes())); }
private void addResourceHandlers(ResourceHandlerRegistry registry, String pattern, String locations, ResourceResolver customResourceResolver) { //@formatter:off ResourceChainRegistration chain = registry .addResourceHandler(pattern) .addResourceLocations(locations) .resourceChain(false); if (customResourceResolver != null) { chain.addResolver(customResourceResolver); } chain .addResolver(minifiedResourceResolver) .addResolver(gzipResourceResolver) .addTransformer(cwfResourceTransformer) .addTransformer(appCacheManifestTransformer); //@formatter:on }
private void addResourceHandlers(ResourceHandlerRegistry registry, String pattern, String locations, ResourceResolver... resolvers) { //@formatter:off ResourceChainRegistration chain = registry .addResourceHandler(pattern) .addResourceLocations(locations) .resourceChain(false); for (ResourceResolver resolver: resolvers) { chain.addResolver(resolver); } chain .addResolver(minifiedResourceResolver) .addResolver(gzipResourceResolver) .addTransformer(fujionResourceTransformer) .addTransformer(appCacheManifestTransformer); //@formatter:on }
.addResourceLocations("classpath:/META-INF/resources/webjars/") .setCachePeriod(3600) .resourceChain(true);