|
22 | 22 | import java.net.URI; |
23 | 23 | import java.net.URL; |
24 | 24 | import java.util.ArrayList; |
| 25 | +import java.util.Arrays; |
25 | 26 | import java.util.Collections; |
26 | 27 | import java.util.Comparator; |
27 | 28 | import java.util.LinkedHashMap; |
28 | 29 | import java.util.List; |
29 | 30 | import java.util.Map; |
| 31 | + |
30 | 32 | import javax.servlet.http.HttpServletRequest; |
31 | 33 |
|
32 | 34 | import org.springframework.core.io.AbstractResource; |
@@ -109,14 +111,26 @@ public VersionResourceResolver addContentVersionStrategy(String... pathPatterns) |
109 | 111 | * fetched from a git commit sha, a property file, or environment variable |
110 | 112 | * and set with SpEL expressions in the configuration (e.g. see {@code @Value} |
111 | 113 | * in Java config). |
| 114 | + * <p>If not done already, variants of the given {@code pathPatterns}, prefixed with |
| 115 | + * the {@code version} will be also configured. For example, adding a {@code "/js/**"} path pattern |
| 116 | + * will also cofigure automatically a {@code "/v1.0.0/js/**"} with {@code "v1.0.0"} the |
| 117 | + * {@code version} String given as an argument. |
112 | 118 | * @param version a version string |
113 | 119 | * @param pathPatterns one or more resource URL path patterns |
114 | 120 | * @return the current instance for chained method invocation |
115 | 121 | * @see FixedVersionStrategy |
116 | 122 | */ |
117 | 123 | public VersionResourceResolver addFixedVersionStrategy(String version, String... pathPatterns) { |
118 | | - addVersionStrategy(new FixedVersionStrategy(version), pathPatterns); |
119 | | - return this; |
| 124 | + List<String> patternsList = Arrays.asList(pathPatterns); |
| 125 | + List<String> prefixedPatterns = new ArrayList<String>(pathPatterns.length); |
| 126 | + String versionPrefix = "/" + version; |
| 127 | + for(String pattern : patternsList) { |
| 128 | + prefixedPatterns.add(pattern); |
| 129 | + if(!pattern.startsWith(versionPrefix) && !patternsList.contains(versionPrefix + pattern)) { |
| 130 | + prefixedPatterns.add(versionPrefix + pattern); |
| 131 | + } |
| 132 | + } |
| 133 | + return addVersionStrategy(new FixedVersionStrategy(version), prefixedPatterns.toArray(new String[0])); |
120 | 134 | } |
121 | 135 |
|
122 | 136 | /** |
|
0 commit comments