public void populatePluginDescriptor()

in maven-plugin-tools-api/src/main/java/org/apache/maven/tools/plugin/scanner/DefaultMojoScanner.java [77:135]


    public void populatePluginDescriptor(PluginToolsRequest request)
            throws ExtractionException, InvalidPluginDescriptorException {

        int numMojoDescriptors = 0;

        List<MojoDescriptorExtractor> orderedExtractors = getOrderedExtractors();

        LOGGER.debug("Using " + orderedExtractors.size() + " mojo extractors.");

        HashMap<String, Integer> groupStats = new HashMap<>();

        for (MojoDescriptorExtractor extractor : orderedExtractors) {
            GroupKey groupKey = extractor.getGroupKey();
            String extractorId = extractor.getName();

            LOGGER.debug("Applying " + extractorId + " mojo extractor");

            List<MojoDescriptor> extractorDescriptors = extractor.execute(request);

            int extractorDescriptorsCount = extractorDescriptors.size();

            LOGGER.info(extractorId + " mojo extractor found " + extractorDescriptorsCount + " mojo descriptor"
                    + (extractorDescriptorsCount > 1 ? "s" : "") + ".");
            numMojoDescriptors += extractorDescriptorsCount;

            if (extractor.isDeprecated() && extractorDescriptorsCount > 0) {
                LOGGER.warn("");
                LOGGER.warn("Deprecated extractor " + extractorId
                        + " extracted " + extractorDescriptorsCount
                        + " descriptor" + (extractorDescriptorsCount > 1 ? "s" : "")
                        + ". Upgrade your Mojo definitions.");
                if (GroupKey.JAVA_GROUP.equals(groupKey.getGroup())) {
                    LOGGER.warn("You should use Mojo Annotations instead of Javadoc tags.");
                }
                LOGGER.warn("");
            }

            if (groupStats.containsKey(groupKey.getGroup())) {
                groupStats.put(groupKey.getGroup(), groupStats.get(groupKey.getGroup()) + extractorDescriptorsCount);
            } else {
                groupStats.put(groupKey.getGroup(), extractorDescriptorsCount);
            }

            for (MojoDescriptor descriptor : extractorDescriptors) {
                LOGGER.debug("Adding mojo: " + descriptor + " to plugin descriptor.");

                descriptor.setPluginDescriptor(request.getPluginDescriptor());

                request.getPluginDescriptor().addMojo(descriptor);
            }
        }

        LOGGER.debug("Discovered descriptors by groups: " + groupStats);

        if (numMojoDescriptors == 0 && !request.isSkipErrorNoDescriptorsFound()) {
            throw new InvalidPluginDescriptorException("No mojo definitions were found for plugin: "
                    + request.getPluginDescriptor().getPluginLookupKey() + ".");
        }
    }