private static Reader createReaderFilter()

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;
        }
    }