private ChangesXML getChangesFromFile()

in src/main/java/org/apache/maven/plugins/changes/ChangesReport.java [319:357]


    private ChangesXML getChangesFromFile(File changesXml, MavenProject project, Properties additionalProperties)
            throws MavenReportException {
        if (!changesXml.exists()) {
            getLog().warn("changes.xml file " + changesXml.getAbsolutePath() + " does not exist.");
            return null;
        }

        if (filteringChanges) {
            if (!filteredOutputDirectory.exists()) {
                filteredOutputDirectory.mkdirs();
            }
            try {
                // so we get encoding from the file itself
                try (XmlStreamReader xmlStreamReader =
                        XmlStreamReader.builder().setFile(changesXml).get()) {
                    String encoding = xmlStreamReader.getEncoding();
                    File resultFile = new File(
                            filteredOutputDirectory,
                            project.getGroupId() + "." + project.getArtifactId() + "-changes.xml");

                    final MavenFileFilterRequest mavenFileFilterRequest = new MavenFileFilterRequest(
                            changesXml,
                            resultFile,
                            true,
                            project,
                            Collections.emptyList(),
                            false,
                            encoding,
                            mavenSession,
                            additionalProperties);
                    mavenFileFilter.copyFile(mavenFileFilterRequest);
                    changesXml = resultFile;
                }
            } catch (IOException | MavenFilteringException e) {
                throw new MavenReportException("Exception during filtering changes file : " + e.getMessage(), e);
            }
        }
        return new ChangesXML(changesXml, getLog());
    }