You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2021/03/31 08:08:59 UTC

[camel-quarkus] branch master updated: docs: add xref support for adoc file sourced from javadoc #2417

This is an automated email from the ASF dual-hosted git repository.

ppalaga pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/master by this push:
     new e352db4  docs: add xref support for adoc file sourced from javadoc #2417
e352db4 is described below

commit e352db4331f686e2b41522d12ee3d5ce5b67dfc1
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Tue Mar 30 19:35:06 2021 +0200

    docs: add xref support for adoc file sourced from javadoc #2417
---
 .../ROOT/pages/reference/extensions/core.adoc      |  2 +-
 .../apache/camel/quarkus/main/CamelMainConfig.java |  4 +-
 .../quarkus/maven/UpdateExtensionDocPageMojo.java  | 64 +++++++++++++++++++++-
 .../doc-templates/extension-doc-page.adoc          | 10 ++--
 4 files changed, 71 insertions(+), 9 deletions(-)

diff --git a/docs/modules/ROOT/pages/reference/extensions/core.adoc b/docs/modules/ROOT/pages/reference/extensions/core.adoc
index 76911be..ce404f2 100644
--- a/docs/modules/ROOT/pages/reference/extensions/core.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/core.adoc
@@ -168,7 +168,7 @@ What to do if it is not possible to extract CSimple expressions from a route def
 
 |icon:lock[title=Fixed at build time] [[quarkus.camel.main.enabled]]`link:#quarkus.camel.main.enabled[quarkus.camel.main.enabled]`
 
-If `true` all `camel-main` features are enabled; otherwise no `camel-main` features are enabled. See the Bootstrap documentation on the camel webiste for more details.
+If `true` all `camel-main` features are enabled; otherwise no `camel-main` features are enabled. See described the xref:user-guide/bootstrap.adoc#_camel_main[Bootstrap] section of Camel Quarkus documentation for more details.
 | `boolean`
 | `true`
 
diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainConfig.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainConfig.java
index d69fb9f..140f125 100644
--- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainConfig.java
+++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMainConfig.java
@@ -28,7 +28,9 @@ import org.apache.camel.quarkus.core.CamelConfig.FailureRemedy;
 public class CamelMainConfig {
     /**
      * If {@code true} all {@code camel-main} features are enabled; otherwise no {@code camel-main} features are
-     * enabled. See the Bootstrap documentation on the camel webiste for more details.
+     * enabled. See described the
+     * <a href="https://camel.apache.org/camel-quarkus/latest/user-guide/bootstrap.html#_camel_main">Bootstrap</a>
+     * section of Camel Quarkus documentation for more details.
      */
     @ConfigItem(defaultValue = "true")
     public boolean enabled;
diff --git a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java
index 5d5dea6..fc7a2e5 100644
--- a/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java
+++ b/tooling/maven-plugin/src/main/java/org/apache/camel/quarkus/maven/UpdateExtensionDocPageMojo.java
@@ -29,6 +29,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -41,6 +42,7 @@ import freemarker.template.TemplateModelException;
 import freemarker.template.utility.DeepUnwrap;
 import io.quarkus.annotation.processor.Constants;
 import io.quarkus.annotation.processor.generate_doc.ConfigDocItem;
+import io.quarkus.annotation.processor.generate_doc.ConfigDocKey;
 import io.quarkus.annotation.processor.generate_doc.DocGeneratorUtil;
 import io.quarkus.annotation.processor.generate_doc.FsMap;
 import org.apache.camel.catalog.Kind;
@@ -358,7 +360,7 @@ public class UpdateExtensionDocPageMojo extends AbstractDocGeneratorMojo {
         }
     }
 
-    static List<ConfigDocItem> listConfigOptions(Path basePath, Path multiModuleProjectDirectory) {
+    static List<ConfigItem> listConfigOptions(Path basePath, Path multiModuleProjectDirectory) {
         final List<String> configRootClasses = loadConfigRoots(basePath);
         if (configRootClasses.isEmpty()) {
             return Collections.emptyList();
@@ -389,7 +391,7 @@ public class UpdateExtensionDocPageMojo extends AbstractDocGeneratorMojo {
 
         }
         DocGeneratorUtil.sort(configDocItems);
-        return configDocItems;
+        return configDocItems.stream().map(ConfigItem::of).collect(Collectors.toList());
     }
 
     static List<String> loadConfigRoots(Path basePath) {
@@ -408,4 +410,62 @@ public class UpdateExtensionDocPageMojo extends AbstractDocGeneratorMojo {
         }
     }
 
+    public static class ConfigItem {
+        private static final Pattern LINK_PATTERN = Pattern
+                .compile("\\Qlink:http\\Es?\\Q://camel.apache.org/camel-quarkus/latest/\\E([^\\[]+).html");
+
+        private final String key;
+        private final String illustration;
+        private final String configDoc;
+        private final String type;
+        private final String defaultValue;
+        private final boolean optional;
+
+        public static ConfigItem of(ConfigDocItem configDocItem) {
+            final ConfigDocKey configDocKey = configDocItem.getConfigDocKey();
+            final String adocSource = LINK_PATTERN.matcher(configDocKey.getConfigDoc()).replaceAll("xref:$1.adoc");
+            return new ConfigItem(
+                    configDocKey.getKey(),
+                    configDocKey.getConfigPhase().getIllustration(),
+                    adocSource,
+                    configDocKey.getType(),
+                    configDocKey.getDefaultValue(),
+                    configDocKey.isOptional());
+        }
+
+        public ConfigItem(String key, String illustration, String configDoc, String type, String defaultValue,
+                boolean optional) {
+            this.key = key;
+            this.illustration = illustration;
+            this.configDoc = configDoc;
+            this.type = type;
+            this.defaultValue = defaultValue;
+            this.optional = optional;
+        }
+
+        public String getKey() {
+            return key;
+        }
+
+        public String getIllustration() {
+            return illustration;
+        }
+
+        public String getConfigDoc() {
+            return configDoc;
+        }
+
+        public String getType() {
+            return type;
+        }
+
+        public String getDefaultValue() {
+            return defaultValue;
+        }
+
+        public boolean isOptional() {
+            return optional;
+        }
+    }
+
 }
diff --git a/tooling/maven-plugin/src/main/resources/doc-templates/extension-doc-page.adoc b/tooling/maven-plugin/src/main/resources/doc-templates/extension-doc-page.adoc
index 28e8bf4..2b6846a 100644
--- a/tooling/maven-plugin/src/main/resources/doc-templates/extension-doc-page.adoc
+++ b/tooling/maven-plugin/src/main/resources/doc-templates/extension-doc-page.adoc
@@ -75,13 +75,13 @@ The `allowContextMapAll` option is not supported in native mode as it requires r
 |===
 | Configuration property | Type | Default
 
-[#list configOptions as configDocItem][#assign anchor = toAnchor(configDocItem.configDocKey.key)]
+[#list configOptions as configDocItem][#assign anchor = toAnchor(configDocItem.key)]
 
-|[=configDocItem.configDocKey.configPhase.illustration] [[[=anchor]]]`link:#[=anchor][[=configDocItem.configDocKey.key]]`
+|[=configDocItem.illustration] [[[=anchor]]]`link:#[=anchor][[=configDocItem.key]]`
 
-[=configDocItem.configDocKey.configDoc]
-| `[=configDocItem.configDocKey.type]`
-| [#if configDocItem.configDocKey.defaultValue?has_content]`[=configDocItem.configDocKey.defaultValue]`[#elseif ! configDocItem.configDocKey.optional]required icon:exclamation-circle[title=Configuration property is required][/#if]
+[=configDocItem.configDoc]
+| `[=configDocItem.type]`
+| [#if configDocItem.defaultValue?has_content]`[=configDocItem.defaultValue]`[#elseif ! configDocItem.optional]required icon:exclamation-circle[title=Configuration property is required][/#if]
 [/#list]
 |===