[ https://issues.apache.org/jira/browse/MPLUGIN-442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17768429#comment-17768429 ]
ASF GitHub Bot commented on MPLUGIN-442: ---------------------------------------- michael-o commented on code in PR #225: URL: https://github.com/apache/maven-plugin-tools/pull/225#discussion_r1335222721 ########## maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginOverviewRenderer.java: ########## @@ -0,0 +1,392 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.plugin.plugin.report; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Optional; + +import org.apache.commons.lang3.StringUtils; +import org.apache.maven.doxia.markup.Markup; +import org.apache.maven.doxia.sink.Sink; +import org.apache.maven.model.Plugin; +import org.apache.maven.model.Prerequisites; +import org.apache.maven.plugin.descriptor.MojoDescriptor; +import org.apache.maven.plugin.descriptor.PluginDescriptor; +import org.apache.maven.project.MavenProject; +import org.apache.maven.tools.plugin.ExtendedPluginDescriptor; +import org.apache.maven.tools.plugin.util.PluginUtils; +import org.codehaus.plexus.i18n.I18N; +import org.codehaus.plexus.util.xml.Xpp3Dom; + +/** + * Generates an overview page with the list of goals + * and a link to the goal's page. + */ +class PluginOverviewRenderer extends AbstractPluginReportRenderer { + + private final List<RequirementsHistory> requirementsHistories; + + private final PluginDescriptor pluginDescriptor; + + private final boolean hasExtensionsToLoad; + + /** + * @param sink not null + * @param i18n not null + * @param locale not null + * @param project not null + * @param requirementsHistories not null + * @param pluginDescriptor not null + */ + PluginOverviewRenderer( + Sink sink, + I18N i18n, + Locale locale, + MavenProject project, + List<RequirementsHistory> requirementsHistories, + PluginDescriptor pluginDescriptor, + boolean hasExtensionsToLoad) { + super(sink, locale, i18n, project); + + this.requirementsHistories = requirementsHistories; + + this.pluginDescriptor = pluginDescriptor; + + this.hasExtensionsToLoad = hasExtensionsToLoad; + } + + @Override + public String getTitle() { + return getI18nString("title"); + } + + /** + * {@inheritDoc} + */ + @Override + protected void renderBody() { + startSection(getTitle()); + + if (!(pluginDescriptor.getMojos() != null && pluginDescriptor.getMojos().size() > 0)) { + paragraph(getI18nString("goals.nogoal")); + endSection(); + return; + } + + paragraph(getI18nString("goals.intro")); + + boolean hasMavenReport = false; + for (MojoDescriptor mojo : pluginDescriptor.getMojos()) { + if (PluginUtils.isMavenReport(mojo.getImplementation(), project)) { + hasMavenReport = true; + } + } + + startTable(); + + String goalColumnName = getI18nString("goals.column.goal"); + String isMavenReport = getI18nString("goals.column.isMavenReport"); + String descriptionColumnName = getI18nString("goals.column.description"); + if (hasMavenReport) { + tableHeader(new String[] {goalColumnName, isMavenReport, descriptionColumnName}); + } else { + tableHeader(new String[] {goalColumnName, descriptionColumnName}); + } + + List<MojoDescriptor> mojos = new ArrayList<>(); + mojos.addAll(pluginDescriptor.getMojos()); + PluginUtils.sortMojos(mojos); + for (MojoDescriptor mojo : mojos) { + String goalName = mojo.getFullGoalName(); + + /* + * Added ./ to define a relative path + * @see AbstractMavenReportRenderer#getValidHref(java.lang.String) + */ + String goalDocumentationLink = "./" + mojo.getGoal() + "-mojo.html"; + + String description; + if (StringUtils.isNotEmpty(mojo.getDeprecated())) { + description = "<strong>" + getI18nString("goal.deprecated") + "</strong> " + mojo.getDeprecated(); Review Comment: Agreed. Please make a note. ########## maven-plugin-report-plugin/src/main/java/org/apache/maven/plugin/plugin/report/PluginOverviewRenderer.java: ########## @@ -0,0 +1,392 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.maven.plugin.plugin.report; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Optional; + +import org.apache.commons.lang3.StringUtils; +import org.apache.maven.doxia.markup.Markup; +import org.apache.maven.doxia.sink.Sink; +import org.apache.maven.model.Plugin; +import org.apache.maven.model.Prerequisites; +import org.apache.maven.plugin.descriptor.MojoDescriptor; +import org.apache.maven.plugin.descriptor.PluginDescriptor; +import org.apache.maven.project.MavenProject; +import org.apache.maven.tools.plugin.ExtendedPluginDescriptor; +import org.apache.maven.tools.plugin.util.PluginUtils; +import org.codehaus.plexus.i18n.I18N; +import org.codehaus.plexus.util.xml.Xpp3Dom; + +/** + * Generates an overview page with the list of goals + * and a link to the goal's page. + */ +class PluginOverviewRenderer extends AbstractPluginReportRenderer { + + private final List<RequirementsHistory> requirementsHistories; + + private final PluginDescriptor pluginDescriptor; + + private final boolean hasExtensionsToLoad; + + /** + * @param sink not null + * @param i18n not null + * @param locale not null + * @param project not null + * @param requirementsHistories not null + * @param pluginDescriptor not null + */ + PluginOverviewRenderer( + Sink sink, + I18N i18n, + Locale locale, + MavenProject project, + List<RequirementsHistory> requirementsHistories, + PluginDescriptor pluginDescriptor, + boolean hasExtensionsToLoad) { + super(sink, locale, i18n, project); + + this.requirementsHistories = requirementsHistories; + + this.pluginDescriptor = pluginDescriptor; + + this.hasExtensionsToLoad = hasExtensionsToLoad; + } + + @Override + public String getTitle() { + return getI18nString("title"); + } + + /** + * {@inheritDoc} + */ + @Override + protected void renderBody() { + startSection(getTitle()); + + if (!(pluginDescriptor.getMojos() != null && pluginDescriptor.getMojos().size() > 0)) { + paragraph(getI18nString("goals.nogoal")); + endSection(); + return; + } + + paragraph(getI18nString("goals.intro")); + + boolean hasMavenReport = false; + for (MojoDescriptor mojo : pluginDescriptor.getMojos()) { + if (PluginUtils.isMavenReport(mojo.getImplementation(), project)) { + hasMavenReport = true; + } + } + + startTable(); + + String goalColumnName = getI18nString("goals.column.goal"); + String isMavenReport = getI18nString("goals.column.isMavenReport"); + String descriptionColumnName = getI18nString("goals.column.description"); + if (hasMavenReport) { + tableHeader(new String[] {goalColumnName, isMavenReport, descriptionColumnName}); + } else { + tableHeader(new String[] {goalColumnName, descriptionColumnName}); + } + + List<MojoDescriptor> mojos = new ArrayList<>(); + mojos.addAll(pluginDescriptor.getMojos()); + PluginUtils.sortMojos(mojos); + for (MojoDescriptor mojo : mojos) { + String goalName = mojo.getFullGoalName(); + + /* + * Added ./ to define a relative path + * @see AbstractMavenReportRenderer#getValidHref(java.lang.String) + */ + String goalDocumentationLink = "./" + mojo.getGoal() + "-mojo.html"; + + String description; + if (StringUtils.isNotEmpty(mojo.getDeprecated())) { + description = "<strong>" + getI18nString("goal.deprecated") + "</strong> " + mojo.getDeprecated(); + } else if (StringUtils.isNotEmpty(mojo.getDescription())) { + description = mojo.getDescription(); + } else { + description = getI18nString("goal.nodescription"); + } + + sink.tableRow(); + tableCell(createLinkPatternedText(goalName, goalDocumentationLink)); + if (hasMavenReport) { + if (PluginUtils.isMavenReport(mojo.getImplementation(), project)) { + tableCell(getI18nString("isReport")); + } else { + tableCell(getI18nString("isNotReport")); + } + } + tableCell(description, true); Review Comment: Agreed. Please make a note. > Get rid of deprecated XDoc format > --------------------------------- > > Key: MPLUGIN-442 > URL: https://issues.apache.org/jira/browse/MPLUGIN-442 > Project: Maven Plugin Tools > Issue Type: Bug > Components: Plugin Plugin > Reporter: Konrad Windszus > Assignee: Konrad Windszus > Priority: Major > > At some time in the future m-site-p/doxia will no longer support XDoc > (compare with > https://issues.apache.org/jira/browse/DOXIA-569?focusedCommentId=17634481&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17634481). > Therefore the "report" goal should be converted to create "markdown" for the > plugin goal documentation pages instead of "XDoc" in > https://github.com/apache/maven-plugin-tools/blob/master/maven-plugin-tools-generators/src/main/java/org/apache/maven/tools/plugin/generator/PluginXdocGenerator.java. -- This message was sent by Atlassian Jira (v8.20.10#820010)