private void executeCpd()

in src/main/java/org/apache/maven/plugins/pmd/CpdReport.java [173:224]


    private void executeCpd() throws MavenReportException {
        if (cpdResult != null) {
            // CPD has already been run
            getLog().debug("CPD has already been run - skipping redundant execution.");
            return;
        }

        Properties languageProperties = new Properties();
        if (ignoreLiterals) {
            languageProperties.setProperty(JavaTokenizer.IGNORE_LITERALS, "true");
        }
        if (ignoreIdentifiers) {
            languageProperties.setProperty(JavaTokenizer.IGNORE_IDENTIFIERS, "true");
        }
        if (ignoreAnnotations) {
            languageProperties.setProperty(JavaTokenizer.IGNORE_ANNOTATIONS, "true");
        }
        try {
            filesToProcess = getFilesToProcess();

            CpdRequest request = new CpdRequest();
            request.setMinimumTokens(minimumTokens);
            request.setLanguage(language);
            request.setLanguageProperties(languageProperties);
            request.setSourceEncoding(getInputEncoding());
            request.addFiles(filesToProcess.keySet());

            request.setShowPmdLog(showPmdLog);
            request.setLogLevel(determineCurrentRootLogLevel());

            request.setExcludeFromFailureFile(excludeFromFailureFile);
            request.setTargetDirectory(targetDirectory.getAbsolutePath());
            request.setOutputEncoding(getOutputEncoding());
            request.setFormat(format);
            request.setIncludeXmlInSite(includeXmlInSite);
            request.setReportOutputDirectory(getReportOutputDirectory().getAbsolutePath());

            Toolchain tc = getToolchain();
            if (tc != null) {
                getLog().info("Toolchain in maven-pmd-plugin: " + tc);
                String javaExecutable = tc.findTool("java"); // NOI18N
                request.setJavaExecutable(javaExecutable);
            }

            getLog().info("PMD version: " + AbstractPmdReport.getPmdVersion());
            cpdResult = CpdExecutor.execute(request);
        } catch (UnsupportedEncodingException e) {
            throw new MavenReportException("Encoding '" + getInputEncoding() + "' is not supported.", e);
        } catch (IOException e) {
            throw new MavenReportException(e.getMessage(), e);
        }
    }