1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.owasp.maven.tools;
17
18 import java.io.File;
19 import java.util.ArrayList;
20 import java.util.Arrays;
21 import java.util.List;
22 import org.apache.commons.io.FilenameUtils;
23 import org.apache.maven.shared.filtering.DefaultMavenFileFilter;
24 import org.apache.maven.shared.filtering.MavenFileFilter;
25 import org.apache.maven.shared.filtering.MavenFilteringException;
26 import org.apache.maven.shared.utils.io.FileUtils;
27 import org.codehaus.plexus.component.annotations.Component;
28
29
30
31
32
33
34
35
36
37 @Component(role = MavenFileFilter.class, hint = "default")
38 public class VelocityWhitespaceFilter extends DefaultMavenFileFilter {
39
40
41
42
43 private final List<String> extensions = Arrays.asList("vm", "vtl", "vsl");
44
45
46
47
48
49
50
51 protected boolean shouldFilter(File from) {
52 if (from == null) {
53 return false;
54 }
55 final String ext = FilenameUtils.getExtension(from.getName());
56 return extensions.contains(ext.toLowerCase());
57 }
58
59
60
61
62
63
64 @Override
65 public void copyFile(File from, File to, boolean filtering, List<FileUtils.FilterWrapper> filterWrappers,
66 String encoding, boolean overwrite) throws MavenFilteringException {
67 List<FileUtils.FilterWrapper> wrappers = filterWrappers;
68 if (filtering && shouldFilter(from)) {
69 wrappers = new ArrayList<>(filterWrappers);
70 wrappers.add(new VelocityWhitespaceFilterWrapper());
71 }
72 super.copyFile(from, to, filtering, wrappers, encoding, overwrite);
73 }
74 }