[ 
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)

Reply via email to