1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.shared.filtering;
20
21 import javax.inject.Named;
22 import javax.inject.Singleton;
23
24 import java.io.Reader;
25 import java.util.Collections;
26 import java.util.List;
27
28 import org.apache.maven.execution.MavenSession;
29 import org.apache.maven.project.MavenProject;
30
31
32
33
34 @Singleton
35 @Named
36 public class DefaultMavenReaderFilter extends BaseFilter implements MavenReaderFilter {
37 @Override
38 public Reader filter(
39 Reader from,
40 boolean filtering,
41 MavenProject mavenProject,
42 List<String> filters,
43 boolean escapedBackslashesInFilePath,
44 MavenSession mavenSession)
45 throws MavenFilteringException {
46 MavenResourcesExecution mre = new MavenResourcesExecution();
47 mre.setMavenProject(mavenProject);
48 mre.setFileFilters(filters);
49 mre.setEscapeWindowsPaths(escapedBackslashesInFilePath);
50 mre.setMavenSession(mavenSession);
51 mre.setInjectProjectBuildFilters(true);
52
53 List<FilterWrapper> filterWrappers = getDefaultFilterWrappers(mre);
54 return filter(from, filtering, filterWrappers);
55 }
56
57 @Override
58 public Reader filter(MavenReaderFilterRequest mavenFileFilterRequest) throws MavenFilteringException {
59 List<FilterWrapper> filterWrappers = getDefaultFilterWrappers(mavenFileFilterRequest);
60 return filter(mavenFileFilterRequest.getFrom(), mavenFileFilterRequest.isFiltering(), filterWrappers);
61 }
62
63 @Override
64 public Reader filter(Reader from, boolean filtering, List<FilterWrapper> filterWrappers) {
65 return filterWrap(from, filtering ? filterWrappers : Collections.<FilterWrapper>emptyList());
66 }
67
68 private static Reader filterWrap(Reader from, Iterable<FilterWrapper> wrappers) {
69 Reader reader = from;
70 for (FilterWrapper wrapper : wrappers) {
71 reader = wrapper.getReader(reader);
72 }
73 return reader;
74 }
75 }