Example usage for org.springframework.util StringUtils getFilenameExtension

List of usage examples for org.springframework.util StringUtils getFilenameExtension

Introduction

In this page you can find the example usage for org.springframework.util StringUtils getFilenameExtension.

Prototype

@Nullable
public static String getFilenameExtension(@Nullable String path) 

Source Link

Document

Extract the filename extension from the given Java resource path, e.g.

Usage

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;
}