private void compareExecutions()

in src/main/java/org/apache/maven/buildcache/CacheDiff.java [220:258]


    private void compareExecutions(List<CompletedExecution> current, List<CompletedExecution> baseline) {
        Map<String, CompletedExecution> baselineExecutionsByKey = new HashMap<>();
        for (CompletedExecution completedExecutionType : baseline) {
            baselineExecutionsByKey.put(completedExecutionType.getExecutionKey(), completedExecutionType);
        }

        Map<String, CompletedExecution> currentExecutionsByKey = new HashMap<>();
        for (CompletedExecution e1 : current) {
            currentExecutionsByKey.put(e1.getExecutionKey(), e1);
        }

        // such situation normally means different poms and mismatch in effective poms,
        // but in any case it is helpful to report
        for (CompletedExecution baselineExecution : baseline) {
            if (!currentExecutionsByKey.containsKey(baselineExecution.getExecutionKey())) {
                addNewMismatch(
                        baselineExecution.getExecutionKey(),
                        "Baseline build contains excessive plugin " + baselineExecution.getExecutionKey(),
                        "Different set of plugins produces different build results. "
                                + "Exclude non-critical plugins or make sure plugin sets match");
            }
        }

        for (CompletedExecution currentExecution : current) {
            if (!baselineExecutionsByKey.containsKey(currentExecution.getExecutionKey())) {
                addNewMismatch(
                        currentExecution.getExecutionKey(),
                        "Cached build doesn't contain plugin " + currentExecution.getExecutionKey(),
                        "Different set of plugins produces different build results. "
                                + "Filter out non-critical plugins or make sure remote cache always run full build "
                                + "with all plugins");
                continue;
            }

            final CompletedExecution baselineExecution =
                    baselineExecutionsByKey.get(currentExecution.getExecutionKey());
            comparePlugins(currentExecution, baselineExecution);
        }
    }