1 package org.apache.maven.shared.filtering;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.io.IOException;
24 import java.util.List;
25
26 import org.apache.maven.execution.MavenSession;
27 import org.apache.maven.project.MavenProject;
28 import org.apache.maven.shared.utils.io.FileUtils;
29 import org.apache.maven.shared.utils.io.FileUtils.FilterWrapper;
30 import org.codehaus.plexus.component.annotations.Component;
31 import org.codehaus.plexus.component.annotations.Requirement;
32 import org.sonatype.plexus.build.incremental.BuildContext;
33
34
35
36
37 @Component( role = org.apache.maven.shared.filtering.MavenFileFilter.class, hint = "default" )
38 public class DefaultMavenFileFilter
39 extends BaseFilter
40 implements MavenFileFilter
41 {
42
43 @Requirement
44 private MavenReaderFilter readerFilter;
45
46 @Requirement
47 private BuildContext buildContext;
48
49 @Override
50 public void copyFile( File from, File to, boolean filtering, MavenProject mavenProject, List<String> filters,
51 boolean escapedBackslashesInFilePath, String encoding, MavenSession mavenSession )
52 throws MavenFilteringException
53 {
54 MavenResourcesExecution mre = new MavenResourcesExecution();
55 mre.setMavenProject( mavenProject );
56 mre.setFileFilters( filters );
57 mre.setEscapeWindowsPaths( escapedBackslashesInFilePath );
58 mre.setMavenSession( mavenSession );
59 mre.setInjectProjectBuildFilters( true );
60
61 List<FileUtils.FilterWrapper> filterWrappers = getDefaultFilterWrappers( mre );
62 copyFile( from, to, filtering, filterWrappers, encoding );
63 }
64
65 @Override
66 public void copyFile( MavenFileFilterRequest mavenFileFilterRequest )
67 throws MavenFilteringException
68 {
69 List<FilterWrapper> filterWrappers = getDefaultFilterWrappers( mavenFileFilterRequest );
70
71 copyFile( mavenFileFilterRequest.getFrom(), mavenFileFilterRequest.getTo(),
72 mavenFileFilterRequest.isFiltering(), filterWrappers, mavenFileFilterRequest.getEncoding() );
73 }
74
75 @Override
76 public void copyFile( File from, File to, boolean filtering, List<FileUtils.FilterWrapper> filterWrappers,
77 String encoding )
78 throws MavenFilteringException
79 {
80
81 copyFile( from, to, filtering, filterWrappers, encoding, false );
82 }
83
84 @Override
85 public void copyFile( File from, File to, boolean filtering, List<FileUtils.FilterWrapper> filterWrappers,
86 String encoding, boolean overwrite )
87 throws MavenFilteringException
88 {
89 try
90 {
91 if ( filtering )
92 {
93 if ( getLogger().isDebugEnabled() )
94 {
95 getLogger().debug( "filtering " + from.getPath() + " to " + to.getPath() );
96 }
97 FilterWrapper[] array = filterWrappers.toArray( new FilterWrapper[0] );
98 FileUtils.copyFile( from, to, encoding, array, false );
99 }
100 else
101 {
102 if ( getLogger().isDebugEnabled() )
103 {
104 getLogger().debug( "copy " + from.getPath() + " to " + to.getPath() );
105 }
106 FileUtils.copyFile( from, to, encoding, new FileUtils.FilterWrapper[0], overwrite );
107 }
108
109 buildContext.refresh( to );
110 }
111 catch ( IOException e )
112 {
113 throw new MavenFilteringException( e.getMessage(), e );
114 }
115 }
116 }