public MojoDescriptor buildComponentDescriptor()

in maven-plugin-report-plugin/src/main/java/org/apache/maven/plugins/plugin/descriptor/EnhancedPluginDescriptorBuilder.java [81:121]


    public MojoDescriptor buildComponentDescriptor(PlexusConfiguration c, PluginDescriptor pluginDescriptor)
            throws PlexusConfigurationException {
        MojoDescriptor mojoDescriptor = super.buildComponentDescriptor(c, pluginDescriptor);

        // ----------------------------------------------------------------------
        // Parameters
        // ----------------------------------------------------------------------

        PlexusConfiguration[] parameterConfigurations = c.getChild("parameters").getChildren("parameter");

        List<Parameter> parameters = new ArrayList<>(
                Optional.ofNullable(mojoDescriptor.getParameters()).orElseGet(Collections::emptyList));
        Map<String, Parameter> parameterMap = new LinkedHashMap<>(mojoDescriptor.getParameterMap());

        for (PlexusConfiguration d : parameterConfigurations) {
            String parameterName = d.getChild("name").getValue();
            // don't call getParameterMap() to not populate
            Parameter pd = parameterMap.get(parameterName);
            if (requireAddingMissingParameterSinceField) {
                addMissingParameterSinceField(pd, d);
            }
            PlexusConfiguration configTypeJavadocUrl = d.getChild("typeJavadocUrl", false);
            if (configTypeJavadocUrl != null) {
                String parameterTypeJavadocUrl = configTypeJavadocUrl.getValue();
                EnhancedParameterWrapper enhancedParameter = new EnhancedParameterWrapper(pd);
                enhancedParameter.setTypeJavadocUrl(URI.create(parameterTypeJavadocUrl));
                parameters.set(mojoDescriptor.getParameters().indexOf(pd), enhancedParameter);
                parameterMap.put(parameterName, enhancedParameter);
            }
        }

        // TODO This cruft has been resolved in Maven 3.8.9/3.9.7/4.0.0-alpha-1 with MNG-6776/MNG-7309
        if (mojoDescriptor.getParameters() != null) {
            mojoDescriptor.getParameters().clear();
        }
        // set parameters
        mojoDescriptor.setParameters(parameters);
        mojoDescriptor.getParameterMap().putAll(parameterMap);

        return mojoDescriptor;
    }