static void diagnose()

in src/main/java/org/apache/maven/plugins/artifact/buildinfo/AbstractBuildinfoMojo.java [229:287]


    static void diagnose(
            String outputTimestamp, Log log, MavenProject project, MavenSession session, String effective) {
        if (session.getProjects().size() > 1) {
            MavenProject root = session.getTopLevelProject();
            MavenProject first = session.getProjects().get(0);
            Path firstRelative =
                    root.getBasedir().toPath().relativize(first.getFile().toPath());
            MavenProject firstParent = first.getParent();
            log.info("reactor executionRoot = " + root.getId() + (root.equals(project) ? " (current)" : "")
                    + System.lineSeparator()
                    + "       reactor first = "
                    + (first.equals(root) ? "executionRoot" : (first.getId() + " @ " + firstRelative))
                    + System.lineSeparator()
                    + "               first.parent = " + ((firstParent == null) ? firstParent : firstParent.getId()));
            if (firstParent != null && session.getProjects().contains(firstParent)) {
                // should not happen...
                log.warn("reactor first parent = " + firstParent.getId() + " is in reactor");
            }
        }

        log.info("outputTimestamp = " + outputTimestamp
                + (effective.equals(outputTimestamp) ? "" : (" => " + effective)));

        String projectProperty = project.getProperties().getProperty("project.build.outputTimestamp");
        String modelProperty = project.getModel().getProperties().getProperty("project.build.outputTimestamp");
        String originalModelProperty =
                project.getOriginalModel().getProperties().getProperty("project.build.outputTimestamp");

        log.info("plugin outputTimestamp parameter diagnostics:" + System.lineSeparator()
                + "        - plugin outputTimestamp parameter (defaultValue=\"${project.build.outputTimestamp}\") = "
                + outputTimestamp + System.lineSeparator()
                + "        - project.build.outputTimestamp property from project = " + projectProperty
                + System.lineSeparator()
                + "        - project.build.outputTimestamp property from project model = " + modelProperty
                + System.lineSeparator()
                + "        - project.build.outputTimestamp property from project original model = "
                + originalModelProperty);

        if (outputTimestamp == null) {
            return;
        }

        MavenProject parent = project.getParent();
        if (parent != null) {
            StringBuilder sb = new StringBuilder("Inheritance analysis for property:" + System.lineSeparator()
                    + "        - current " + project.getId() + " property = " + projectProperty);
            while (parent != null) {
                String parentProperty = parent.getProperties().getProperty("project.build.outputTimestamp");
                sb.append(System.lineSeparator());
                sb.append("        - " + (session.getProjects().contains(parent) ? "reactor" : "external") + " parent "
                        + parent.getId() + " property = " + parentProperty);
                if (!projectProperty.equals(parentProperty)) {
                    break;
                }
                parent = parent.getParent();
            }
            log.info(sb.toString());
        }
    }