private void renderLocale()

in src/main/java/org/apache/maven/plugins/site/render/SiteMojo.java [128:179]


    private void renderLocale(Locale locale, List<MavenReportExecution> reports, List<Locale> supportedLocales)
            throws IOException, RendererException, MojoFailureException, MojoExecutionException {
        SiteRenderingContext context = createSiteRenderingContext(locale);
        context.addSiteLocales(supportedLocales);
        if (!locale.equals(SiteTool.DEFAULT_LOCALE)) {
            context.addSiteDirectory(new File(generatedSiteDirectory, locale.toString()));
        } else {
            context.addSiteDirectory(generatedSiteDirectory);
        }

        context.setInputEncoding(getInputEncoding());
        context.setOutputEncoding(getOutputEncoding());
        context.setValidate(validate);
        if (validate) {
            getLog().info("Validation is switched on, xml input documents will be validated!");
        }

        File outputDir = getOutputDirectory(locale);

        Map<String, DocumentRenderer> documents = locateDocuments(context, reports, locale);

        // copy resources
        siteRenderer.copyResources(context, outputDir);

        // 1. render Doxia documents first
        List<DocumentRenderer> nonDoxiaDocuments = renderDoxiaDocuments(documents, context, outputDir, false);

        // prepare external reports
        for (MavenReportExecution mavenReportExecution : reports) {
            MavenReport report = mavenReportExecution.getMavenReport();
            report.setReportOutputDirectory(outputDir);
        }

        // 2. then non-Doxia documents (e.g., reports)
        renderNonDoxiaDocuments(nonDoxiaDocuments, context, outputDir);

        // 3. Generated docs must be (re-)done afterwards as they are often generated by reports
        context.getSiteDirectories().clear();
        if (!locale.equals(SiteTool.DEFAULT_LOCALE)) {
            context.addSiteDirectory(new File(generatedSiteDirectory, locale.toString()));
        } else {
            context.addSiteDirectory(generatedSiteDirectory);
        }

        Map<String, DocumentRenderer> generatedDocuments =
                siteRenderer.locateDocumentFiles(context, false /* not editable */);

        renderDoxiaDocuments(generatedDocuments, context, outputDir, true);

        // copy generated resources also
        siteRenderer.copyResources(context, outputDir);
    }