in src/main/java/org/apache/maven/plugins/assembly/format/ReaderFormatter.java [44:88]
private static Reader createReaderFilter(
Reader source,
String escapeString,
List<String> delimiters,
AssemblerConfigurationSource configSource,
boolean isPropertiesFile,
Properties additionalProperties)
throws IOException {
try {
MavenReaderFilterRequest filterRequest = new MavenReaderFilterRequest(
source,
true,
configSource.getProject(),
configSource.getFilters(),
isPropertiesFile,
configSource.getMavenSession(),
additionalProperties);
filterRequest.setEscapeString(escapeString);
// if these are NOT set, just use the defaults, which are '${*}' and '@'.
if (delimiters != null && !delimiters.isEmpty()) {
LinkedHashSet<String> delims = new LinkedHashSet<>();
for (String delim : delimiters) {
if (delim == null) {
// FIXME: ${filter:*} could also trigger this condition. Need a better long-term solution.
delims.add("${*}");
} else {
delims.add(delim);
}
}
filterRequest.setDelimiters(delims);
} else {
filterRequest.setDelimiters(filterRequest.getDelimiters());
}
filterRequest.setInjectProjectBuildFilters(configSource.isIncludeProjectBuildFilters());
return configSource.getMavenReaderFilter().filter(filterRequest);
} catch (MavenFilteringException e) {
IOException ioe = new IOException("Error filtering file '" + source + "': " + e.getMessage(), e);
throw ioe;
}
}