private void createXref()

in maven-jxr-plugin/src/main/java/org/apache/maven/plugin/jxr/AbstractJxrReport.java [206:238]


    private void createXref(Locale locale, File outputDirectory, List<String> sourceDirs)
            throws IOException, JxrException {
        FileManager fileManager = new FileManager();
        PackageManager packageManager = new PackageManager(fileManager);
        JavaCodeTransform codeTransform = new JavaCodeTransform(packageManager, fileManager);

        JXR jxr = new JXR(packageManager, codeTransform);
        jxr.setDest(outputDirectory.toPath());
        jxr.setInputEncoding(getInputEncoding());
        jxr.setLocale(locale);
        jxr.setOutputEncoding(getOutputEncoding());
        jxr.setRevision("HEAD");
        jxr.setJavadocLinkDir(constructJavadocLocation());
        // Set include/exclude patterns on the jxr instance
        if (excludes != null && !excludes.isEmpty()) {
            jxr.setExcludes(excludes.toArray(new String[0]));
        }
        if (includes != null && !includes.isEmpty()) {
            jxr.setIncludes(includes.toArray(new String[0]));
        }

        // avoid winding up using Velocity in two class loaders.
        ClassLoader savedTccl = Thread.currentThread().getContextClassLoader();
        try {
            Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
            jxr.xref(sourceDirs, getTemplateDir(), windowTitle, docTitle, getBottomText());
        } finally {
            Thread.currentThread().setContextClassLoader(savedTccl);
        }

        // and finally copy the stylesheet
        copyRequiredResources(outputDirectory);
    }