These Plexus components have been built from the filtering process/code in Maven Resources Plugin.
The goal is to provide a shared component for all plugins which needs to filter resources.
The release note is available here.
[MSHARED-60] something like ${foo.url} was interpolated to the value of pom url. Now pom values will interpolated only with expressions starting with pom or project (it's configurable).
This means before something like ${foo.version} or ${version} was interpolated with the current pom version. Now it won't be interpolated with a pom value.
[MSHARED-51] It's possible now to define a String which will escape interpolation.
\${java.home} will be interpolated to ${java.home}
[MSHARED-67] Add a new parameter to force file copy even if the destination file is newer.
This component will apply filtering on a List of org.apache.maven.model.Resource.
If you want to use the default List of FileUtils.FilterWrapper (see below) you should use the method without the filterWrappers parameter.
The component will not filter a predefined set of file extensions (jpg, jpeg, gif, bmp, png). Note: you can easily add extra file extensions.
This component has a method which returns the default FileUtils.FilterWrapper. These are:
The values used for interpolation are stored in a Properties object and are loaded in the following order:
Note: As it's a Properties object, the last defined key/value pair wins.
Note: When building the Properties object and reading the properties files defining the different filters, interpolation with the token ${ } is supported for these filters with limited properties values coming from project.properties and mavenSession.executionProperties. The last wins here too.