List of usage examples for org.springframework.util StringUtils getFilenameExtension
@Nullable public static String getFilenameExtension(@Nullable String path)
From source file:org.springframework.mock.web.MockServletContext.java
@Override @Nullable/*from ww w. j av a2s.co m*/ public String getMimeType(String filePath) { String extension = StringUtils.getFilenameExtension(filePath); if (this.mimeTypes.containsKey(extension)) { return this.mimeTypes.get(extension).toString(); } else { return MediaTypeFactory.getMediaType(filePath).map(MimeType::toString).orElse(null); } }
From source file:org.springframework.mock.web.test.MockServletContext.java
@Override public String getMimeType(String filePath) { String extension = StringUtils.getFilenameExtension(filePath); if (this.mimeTypes.containsKey(extension)) { return this.mimeTypes.get(extension).toString(); } else {//from w ww. java2s. c om return MediaTypeFactory.getMediaType(filePath).map(MimeType::toString).orElse(null); } }
From source file:org.springframework.web.accept.PathExtensionContentNegotiationStrategy.java
@Override protected String getMediaTypeKey(NativeWebRequest webRequest) { HttpServletRequest servletRequest = webRequest.getNativeRequest(HttpServletRequest.class); if (servletRequest == null) { logger.warn("An HttpServletRequest is required to determine the media type key"); return null; }// w w w.j ava 2s .c om String path = urlPathHelper.getLookupPathForRequest(servletRequest); String filename = WebUtils.extractFullFilenameFromUrlPath(path); String extension = StringUtils.getFilenameExtension(filename); return (StringUtils.hasText(extension)) ? extension.toLowerCase(Locale.ENGLISH) : null; }
From source file:org.springframework.web.reactive.resource.AbstractFileNameVersionStrategy.java
@Override public String addVersion(String requestPath, String version) { String baseFilename = StringUtils.stripFilenameExtension(requestPath); String extension = StringUtils.getFilenameExtension(requestPath); return (baseFilename + '-' + version + '.' + extension); }
From source file:org.springframework.web.reactive.resource.AppCacheManifestTransformer.java
@Override public Mono<Resource> transform(ServerWebExchange exchange, Resource inputResource, ResourceTransformerChain chain) { return chain.transform(exchange, inputResource).flatMap(outputResource -> { String name = outputResource.getFilename(); if (!this.fileExtension.equals(StringUtils.getFilenameExtension(name))) { return Mono.just(outputResource); }//from w w w .j a va 2s . c o m DataBufferFactory bufferFactory = exchange.getResponse().bufferFactory(); Flux<DataBuffer> flux = DataBufferUtils.read(outputResource, bufferFactory, StreamUtils.BUFFER_SIZE); return DataBufferUtils.join(flux).flatMap(dataBuffer -> { CharBuffer charBuffer = DEFAULT_CHARSET.decode(dataBuffer.asByteBuffer()); DataBufferUtils.release(dataBuffer); String content = charBuffer.toString(); return transform(content, outputResource, chain, exchange); }); }); }
From source file:org.springframework.web.reactive.resource.CssLinkResourceTransformer.java
@Override public Mono<Resource> transform(ServerWebExchange exchange, Resource inputResource, ResourceTransformerChain transformerChain) { return transformerChain.transform(exchange, inputResource).flatMap(ouptputResource -> { String filename = ouptputResource.getFilename(); if (!"css".equals(StringUtils.getFilenameExtension(filename)) || inputResource instanceof GzipResourceResolver.GzippedResource) { return Mono.just(ouptputResource); }// w ww . j av a2 s. co m if (logger.isTraceEnabled()) { logger.trace("Transforming resource: " + ouptputResource); } DataBufferFactory bufferFactory = exchange.getResponse().bufferFactory(); Flux<DataBuffer> flux = DataBufferUtils.read(ouptputResource, bufferFactory, StreamUtils.BUFFER_SIZE); return DataBufferUtils.join(flux).flatMap(dataBuffer -> { CharBuffer charBuffer = DEFAULT_CHARSET.decode(dataBuffer.asByteBuffer()); DataBufferUtils.release(dataBuffer); String cssContent = charBuffer.toString(); return transformContent(cssContent, ouptputResource, transformerChain, exchange); }); }); }
From source file:org.springframework.web.servlet.resource.AppCacheManifestTransfomer.java
@Override public Resource transform(HttpServletRequest request, Resource resource, ResourceTransformerChain transformerChain) throws IOException { resource = transformerChain.transform(request, resource); String filename = resource.getFilename(); if (!this.fileExtension.equals(StringUtils.getFilenameExtension(filename))) { return resource; }/*from www. j a v a2 s . c om*/ byte[] bytes = FileCopyUtils.copyToByteArray(resource.getInputStream()); String content = new String(bytes, DEFAULT_CHARSET); if (!content.startsWith(MANIFEST_HEADER)) { if (logger.isTraceEnabled()) { logger.trace("AppCache manifest does not start with 'CACHE MANIFEST', skipping: " + resource); } return resource; } if (logger.isTraceEnabled()) { logger.trace("Transforming resource: " + resource); } StringWriter contentWriter = new StringWriter(); HashBuilder hashBuilder = new HashBuilder(content.length()); Scanner scanner = new Scanner(content); SectionTransformer currentTransformer = this.sectionTransformers.get(MANIFEST_HEADER); while (scanner.hasNextLine()) { String line = scanner.nextLine(); if (this.sectionTransformers.containsKey(line.trim())) { currentTransformer = this.sectionTransformers.get(line.trim()); contentWriter.write(line + "\n"); hashBuilder.appendString(line); } else { contentWriter .write(currentTransformer.transform(line, hashBuilder, resource, transformerChain) + "\n"); } } String hash = hashBuilder.build(); contentWriter.write("\n" + "# Hash: " + hash); if (logger.isTraceEnabled()) { logger.trace("AppCache file: [" + resource.getFilename() + "] Hash: [" + hash + "]"); } return new TransformedResource(resource, contentWriter.toString().getBytes(DEFAULT_CHARSET)); }
From source file:org.springframework.web.servlet.resource.AppCacheManifestTransformer.java
@Override public Resource transform(HttpServletRequest request, Resource resource, ResourceTransformerChain chain) throws IOException { resource = chain.transform(request, resource); if (!this.fileExtension.equals(StringUtils.getFilenameExtension(resource.getFilename()))) { return resource; }//from w w w . ja v a 2 s . com byte[] bytes = FileCopyUtils.copyToByteArray(resource.getInputStream()); String content = new String(bytes, DEFAULT_CHARSET); if (!content.startsWith(MANIFEST_HEADER)) { if (logger.isTraceEnabled()) { logger.trace("Manifest should start with 'CACHE MANIFEST', skip: " + resource); } return resource; } if (logger.isTraceEnabled()) { logger.trace("Transforming resource: " + resource); } Scanner scanner = new Scanner(content); LineInfo previous = null; LineAggregator aggregator = new LineAggregator(resource, content); while (scanner.hasNext()) { String line = scanner.nextLine(); LineInfo current = new LineInfo(line, previous); LineOutput lineOutput = processLine(current, request, resource, chain); aggregator.add(lineOutput); previous = current; } return aggregator.createResource(); }
From source file:org.springframework.web.servlet.resource.CssLinkResourceTransformer.java
@Override public Resource transform(HttpServletRequest request, Resource resource, ResourceTransformerChain transformerChain) throws IOException { resource = transformerChain.transform(request, resource); String filename = resource.getFilename(); if (!"css".equals(StringUtils.getFilenameExtension(filename)) || resource instanceof GzipResourceResolver.GzippedResource) { return resource; }//from ww w . j a va2 s .c o m if (logger.isTraceEnabled()) { logger.trace("Transforming resource: " + resource); } byte[] bytes = FileCopyUtils.copyToByteArray(resource.getInputStream()); String content = new String(bytes, DEFAULT_CHARSET); SortedSet<ContentChunkInfo> links = new TreeSet<>(); for (LinkParser parser : this.linkParsers) { parser.parse(content, links); } if (links.isEmpty()) { if (logger.isTraceEnabled()) { logger.trace("No links found."); } return resource; } int index = 0; StringWriter writer = new StringWriter(); for (ContentChunkInfo linkContentChunkInfo : links) { writer.write(content.substring(index, linkContentChunkInfo.getStart())); String link = content.substring(linkContentChunkInfo.getStart(), linkContentChunkInfo.getEnd()); String newLink = null; if (!hasScheme(link)) { String absolutePath = toAbsolutePath(link, request); newLink = resolveUrlPath(absolutePath, request, resource, transformerChain); } if (logger.isTraceEnabled()) { if (newLink != null && !newLink.equals(link)) { logger.trace("Link modified: " + newLink + " (original: " + link + ")"); } else { logger.trace("Link not modified: " + link); } } writer.write(newLink != null ? newLink : link); index = linkContentChunkInfo.getEnd(); } writer.write(content.substring(index)); return new TransformedResource(resource, writer.toString().getBytes(DEFAULT_CHARSET)); }
From source file:org.springframework.web.servlet.resource.FingerprintResourceResolver.java
@Override public String getPublicUrlPath(String resourceUrlPath, List<Resource> locations, ResourceResolverChain chain) { String baseUrl = chain.resolveUrlPath(resourceUrlPath, locations); if (StringUtils.hasText(baseUrl)) { Resource original = chain.resolveResource(null, resourceUrlPath, locations); String hash = calculateHash(original); return StringUtils.stripFilenameExtension(baseUrl) + "-" + hash + "." + StringUtils.getFilenameExtension(baseUrl); }/*from w w w. ja va2 s . c o m*/ return baseUrl; }