You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by rm...@apache.org on 2021/01/12 13:57:44 UTC

svn commit: r1070059 - in /websites/production/geronimo/content/arthur: api.html community.html downloads.html knights.html maven.html openwebbeans-knight.html slf4j-knight.html winegrower-knight.html

Author: rmannibucau
Date: Tue Jan 12 13:57:44 2021
New Revision: 1070059

Log:
Site checkin for project Arthur :: Documentation

Added:
    websites/production/geronimo/content/arthur/openwebbeans-knight.html
    websites/production/geronimo/content/arthur/slf4j-knight.html
Modified:
    websites/production/geronimo/content/arthur/api.html
    websites/production/geronimo/content/arthur/community.html
    websites/production/geronimo/content/arthur/downloads.html
    websites/production/geronimo/content/arthur/knights.html
    websites/production/geronimo/content/arthur/maven.html
    websites/production/geronimo/content/arthur/winegrower-knight.html

Modified: websites/production/geronimo/content/arthur/api.html
==============================================================================
--- websites/production/geronimo/content/arthur/api.html (original)
+++ websites/production/geronimo/content/arthur/api.html Tue Jan 12 13:57:44 2021
@@ -153,6 +153,20 @@ public class All {
 <p>Previous: <a href="documentation.html">Documentation</a> Next: <a href="spi.html">Arthur SPI</a></p>
 </div>
 </div>
+</div>
+<div class="sect1">
+<h2 id="_custom_annotation_marker">Custom annotation marker</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>You can set <code>extension.annotation.custom.annotations.class</code> to a list of custom annotations set on classes to replace <code>RegisterClass</code>.
+Exact configuration value follows this pattern: <code>&lt;custom annotation fully qualified name&gt;[:[&lt;RegisterClass attribute&gt;=value]|*]?</code>.
+A common example is: <code>com.foo.MyAnnot1:all=true,com.foo.MyAnnot2:allPublicMethods=true|allPublicFields=true</code>.</p>
+</div>
+<div class="paragraph">
+<p>Similarly <code>extension.annotation.custom.annotations.properties</code> enables to configure the same thing but to find classes from marked fields or methods.
+It is very common with unmanaged <code>@ConfigProperty</code> classes for example.</p>
+</div>
+</div>
 </div></div>
 
 <div id="footer">

Modified: websites/production/geronimo/content/arthur/community.html
==============================================================================
--- websites/production/geronimo/content/arthur/community.html (original)
+++ websites/production/geronimo/content/arthur/community.html Tue Jan 12 13:57:44 2021
@@ -173,7 +173,7 @@ You can find the manifest in <code>.gith
 </td>
 <td class="content">
 part of the website is generated. This is the case of the Maven plugin documentation which relies on parsing sources to extract the documentation from the source.
-These generated documentation sources can be found - once generated - in <code>documentation/target/generated_documentation</code> and can be included in the <code>documentation/src/content</code> using the variable <code>/media/data/home/rmannibucau/1_dev/geronimo-arthur/documentation/target/generated_documentation</code>.
+These generated documentation sources can be found - once generated - in <code>documentation/target/generated_documentation</code> and can be included in the <code>documentation/src/content</code> using the variable <code>/opt/rmannibucau/dev/geronimo-arthur/documentation/target/generated_documentation</code>.
 </td>
 </tr>
 </table>

Modified: websites/production/geronimo/content/arthur/downloads.html
==============================================================================
--- websites/production/geronimo/content/arthur/downloads.html (original)
+++ websites/production/geronimo/content/arthur/downloads.html Tue Jan 12 13:57:44 2021
@@ -110,7 +110,7 @@
 </thead>
 <tbody>
 <tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">Arthur Source Release</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">arthur Source Release</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">1.0.0</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">2019-12-05 08:44:02</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">502 kB</p></td>

Modified: websites/production/geronimo/content/arthur/knights.html
==============================================================================
--- websites/production/geronimo/content/arthur/knights.html (original)
+++ websites/production/geronimo/content/arthur/knights.html Tue Jan 12 13:57:44 2021
@@ -102,6 +102,15 @@ The extensions are generally responsible
 <li>
 <p><a href="jsch-knight.html">JSch</a>: it contains some end user API integrated with built-in extensions to simplify application graal-ification,</p>
 </li>
+<li>
+<p><a href="winegrower-knight.html">Winegrower</a>: Apache winegrower (Cloud OSGi runtime) support.</p>
+</li>
+<li>
+<p><a href="openwebbeans-knight.html">OpenWebBeans</a>: Apache OpenWebBeans (CDI SE runtime) support.</p>
+</li>
+<li>
+<p><a href="slf4j-knight.html">SLF4J</a>: SLF4J (JUL) integration.</p>
+</li>
 </ul>
 </div>
 </div>

Modified: websites/production/geronimo/content/arthur/maven.html
==============================================================================
--- websites/production/geronimo/content/arthur/maven.html (original)
+++ websites/production/geronimo/content/arthur/maven.html Tue Jan 12 13:57:44 2021
@@ -452,7 +452,7 @@ Here is the full list of available confi
 <p>In case Graal must be downloaded to get native-image, where to take it from.</p>
 </div>
 <div class="paragraph">
-<p><strong>Default value</strong>: <a href="https://api.sdkman.io/2/broker/download/java/${graalVersion}-grl/${platform}" class="bare">https://api.sdkman.io/2/broker/download/java/${graalVersion}-grl/${platform}</a></p>
+<p><strong>Default value</strong>: <a href="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${graalSimpleVersion}/graalvm-ce-java${graalJavaVersion}-${githubPlatform}-${graalSimpleVersion}.tar.gz" class="bare">https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${graalSimpleVersion}/graalvm-ce-java${graalJavaVersion}-${githubPlatform}-${graalSimpleVersion}.tar.gz</a></p>
 </div>
 <div class="paragraph">
 <p><strong>User property</strong>: arthur.graalDownloadUrl</p>
@@ -488,10 +488,10 @@ Here is the full list of available confi
 <td class="tableblock halign-left valign-top"><p class="tableblock">graalVersion</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
-<p>In case Graal must be downloaded to get native-image, which version to download.</p>
+<p>In case Graal must be downloaded to get native-image, which version to download.It contains the graal version and can be suffixed by the graal java version prefixed with "r" (as on sdkman).</p>
 </div>
 <div class="paragraph">
-<p><strong>Default value</strong>: 19.3.0.r8</p>
+<p><strong>Default value</strong>: 20.3.0.r8</p>
 </div>
 <div class="paragraph">
 <p><strong>User property</strong>: arthur.graalVersion</p>
@@ -732,6 +732,19 @@ Here is the full list of available confi
 </div></div></td>
 </tr>
 <tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">scanningClassesOrPackagesExcludes</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">List</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p>Classes or packages (startsWith is used to test entries).</p>
+</div>
+<div class="paragraph">
+<p><strong>Default value</strong>: -</p>
+</div>
+<div class="paragraph">
+<p><strong>User property</strong>: arthur.scanningClassesOrPackagesExcludes</p>
+</div></div></td>
+</tr>
+<tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">scanningExcludedArtifacts</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">List</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
@@ -784,19 +797,6 @@ Here is the full list of available confi
 </div></div></td>
 </tr>
 <tr>
-<td class="tableblock halign-left valign-top"><p class="tableblock">traceClassInitialization</p></td>
-<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
-<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
-<p>Should class initialition be tracked.</p>
-</div>
-<div class="paragraph">
-<p><strong>Default value</strong>: true</p>
-</div>
-<div class="paragraph">
-<p><strong>User property</strong>: arthur.traceClassInitialization</p>
-</div></div></td>
-</tr>
-<tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">usePackagedArtifact</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
@@ -1085,6 +1085,43 @@ Its usage is close to jib - with a simpl
 </div>
 </div>
 <div class="sect3">
+<h4 id="_ldd_or_not">LDD or not</h4>
+<div class="paragraph">
+<p>By default Arthur maven docker/image plugins assume the binary is self executable by itself (statically linked).
+If it is not the case, you need to ensure the from/base image has the needed libraries.
+It is not always trivial nor convenient so we have a mode using the build machine <code>ldd</code> to detect which libs are needed and add them in the image parsing <code>ldd</code> output.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+this mode enables to build very light native images using <code>scratch</code> virtual base image (empty) but it can conflict with other base images since it sets <code>LD_LIBRARY_PATH</code> if not present int he <code>environment</code> configuration.
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Here is what the <code>ldd</code> output look like - if not the case ensure to set a PATH before running the plugin which has a compliant ldd:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code>$ ldd doc.graal.bin
+        linux-vdso.so.1 (0x00007ffcc41ba000)
+        libpthread.so.0 =&gt; /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4ad85e7000)
+        libdl.so.2 =&gt; /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4ad85e1000)
+        libc.so.6 =&gt; /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4ad83ef000)
+        /lib64/ld-linux-x86-64.so.2 (0x00007f4adba6b000)</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>The parser will take all line containing a <code>/</code> and the first string without any space starting by a <code>/</code> will be considered as a path of a library to include.
+With previous output, the image will get <code>libpthread.so.0</code>, <code>libdl.so.2</code>, <code>libc.so.6</code> and <code>ld-linux-x86-64.so.2</code> included (but not <code>linux-vdso.so.1</code> since it is not a path / it has no slash in the line).</p>
+</div>
+</div>
+<div class="sect3">
 <h4 id="_configuration">Configuration</h4>
 <table class="tableblock frame-all grid-all stretch table table-bordered">
 <colgroup>
@@ -1146,7 +1183,7 @@ Its usage is close to jib - with a simpl
 <p>Where is the binary to include. It defaults on native-image output if done before in the same execution</p>
 </div>
 <div class="paragraph">
-<p><strong>Default value</strong>: -</p>
+<p><strong>Default value</strong>: ${project.build.directory}/${project.artifactId}.graal.bin</p>
 </div>
 <div class="paragraph">
 <p><strong>User property</strong>: arthur.binarySource</p>
@@ -1221,7 +1258,7 @@ Its usage is close to jib - with a simpl
 <td class="tableblock halign-left valign-top"><p class="tableblock">from</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
-<p>Base image to use. Scratch will ensure it starts from an empty image.</p>
+<p>Base image to use. Scratch will ensure it starts from an empty image and is the most minimal option.For a partially linked use busybox:glibc.Note that using scratch can require you to turn on useLDD flag (not by default since it depends in your build OS).On the opposite, using an existing distribution (debian, fedora, &#8230;&#8203;) enables to not do that at the cost of a bigger overall image.However, not only the overall image size is important, the reusable layers can save network time so pick what fits the best your case.</p>
 </div>
 <div class="paragraph">
 <p><strong>Default value</strong>: scratch</p>
@@ -1237,7 +1274,7 @@ Its usage is close to jib - with a simpl
 <p>In case Graal must be downloaded to get native-image, where to take it from.</p>
 </div>
 <div class="paragraph">
-<p><strong>Default value</strong>: <a href="https://api.sdkman.io/2/broker/download/java/${graalVersion}-grl/${platform}" class="bare">https://api.sdkman.io/2/broker/download/java/${graalVersion}-grl/${platform}</a></p>
+<p><strong>Default value</strong>: <a href="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${graalSimpleVersion}/graalvm-ce-java${graalJavaVersion}-${githubPlatform}-${graalSimpleVersion}.tar.gz" class="bare">https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${graalSimpleVersion}/graalvm-ce-java${graalJavaVersion}-${githubPlatform}-${graalSimpleVersion}.tar.gz</a></p>
 </div>
 <div class="paragraph">
 <p><strong>User property</strong>: arthur.graalDownloadUrl</p>
@@ -1260,10 +1297,10 @@ Its usage is close to jib - with a simpl
 <td class="tableblock halign-left valign-top"><p class="tableblock">graalVersion</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
-<p>In case Graal must be downloaded to get native-image, which version to download.</p>
+<p>In case Graal must be downloaded to get native-image, which version to download.It contains the graal version and can be suffixed by the graal java version prefixed with "r" (as on sdkman).</p>
 </div>
 <div class="paragraph">
-<p><strong>Default value</strong>: 19.3.0.r8</p>
+<p><strong>Default value</strong>: 20.3.0.r8</p>
 </div>
 <div class="paragraph">
 <p><strong>User property</strong>: arthur.graalVersion</p>
@@ -1400,6 +1437,19 @@ Its usage is close to jib - with a simpl
 </div></div></td>
 </tr>
 <tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">skipLdLinuxInEntrypoint</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p>If true, and even if useLDD is true, ld-linux will not be in entrypoint.</p>
+</div>
+<div class="paragraph">
+<p><strong>Default value</strong>: false</p>
+</div>
+<div class="paragraph">
+<p><strong>User property</strong>: arthur.skipLdLinuxInEntrypoint</p>
+</div></div></td>
+</tr>
+<tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">threads</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
@@ -1439,6 +1489,19 @@ Its usage is close to jib - with a simpl
 </div></div></td>
 </tr>
 <tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">useLDD</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p>If true, the created binary will be passed to ldd to detect the needed libraries.It enables to use FROM scratch even when the binary requires dynamic linking.Note that if ld-linux libraries is found by that processing it is set as first argument of the entrypointuntil skipLdLinuxInEntrypoint is set to true.</p>
+</div>
+<div class="paragraph">
+<p><strong>Default value</strong>: false</p>
+</div>
+<div class="paragraph">
+<p><strong>User property</strong>: arthur.useLDD</p>
+</div></div></td>
+</tr>
+<tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">workdir</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">File</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
@@ -1473,6 +1536,19 @@ this goal does <strong>not</strong> need
 </tr>
 </table>
 </div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+if you use <code>static</code> build you can use <code>scratch</code> as base image (empty) but if you use <code>-H:+StaticExecutableWithDynamicLibC</code> which statically link everything but glic you should switch to <code>busybox:glic</code> for example.
+Also note that some applications will require more libraries like libdl so ensure to adjust your base image on your usage.
+</td>
+</tr>
+</table>
+</div>
 <div class="sect3">
 <h4 id="_configuration_2">Configuration</h4>
 <table class="tableblock frame-all grid-all stretch table table-bordered">
@@ -1535,7 +1611,7 @@ this goal does <strong>not</strong> need
 <p>Where is the binary to include. It defaults on native-image output if done before in the same execution</p>
 </div>
 <div class="paragraph">
-<p><strong>Default value</strong>: -</p>
+<p><strong>Default value</strong>: ${project.build.directory}/${project.artifactId}.graal.bin</p>
 </div>
 <div class="paragraph">
 <p><strong>User property</strong>: arthur.binarySource</p>
@@ -1610,7 +1686,7 @@ this goal does <strong>not</strong> need
 <td class="tableblock halign-left valign-top"><p class="tableblock">from</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
-<p>Base image to use. Scratch will ensure it starts from an empty image.</p>
+<p>Base image to use. Scratch will ensure it starts from an empty image and is the most minimal option.For a partially linked use busybox:glibc.Note that using scratch can require you to turn on useLDD flag (not by default since it depends in your build OS).On the opposite, using an existing distribution (debian, fedora, &#8230;&#8203;) enables to not do that at the cost of a bigger overall image.However, not only the overall image size is important, the reusable layers can save network time so pick what fits the best your case.</p>
 </div>
 <div class="paragraph">
 <p><strong>Default value</strong>: scratch</p>
@@ -1626,7 +1702,7 @@ this goal does <strong>not</strong> need
 <p>In case Graal must be downloaded to get native-image, where to take it from.</p>
 </div>
 <div class="paragraph">
-<p><strong>Default value</strong>: <a href="https://api.sdkman.io/2/broker/download/java/${graalVersion}-grl/${platform}" class="bare">https://api.sdkman.io/2/broker/download/java/${graalVersion}-grl/${platform}</a></p>
+<p><strong>Default value</strong>: <a href="https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${graalSimpleVersion}/graalvm-ce-java${graalJavaVersion}-${githubPlatform}-${graalSimpleVersion}.tar.gz" class="bare">https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-${graalSimpleVersion}/graalvm-ce-java${graalJavaVersion}-${githubPlatform}-${graalSimpleVersion}.tar.gz</a></p>
 </div>
 <div class="paragraph">
 <p><strong>User property</strong>: arthur.graalDownloadUrl</p>
@@ -1649,10 +1725,10 @@ this goal does <strong>not</strong> need
 <td class="tableblock halign-left valign-top"><p class="tableblock">graalVersion</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
-<p>In case Graal must be downloaded to get native-image, which version to download.</p>
+<p>In case Graal must be downloaded to get native-image, which version to download.It contains the graal version and can be suffixed by the graal java version prefixed with "r" (as on sdkman).</p>
 </div>
 <div class="paragraph">
-<p><strong>Default value</strong>: 19.3.0.r8</p>
+<p><strong>Default value</strong>: 20.3.0.r8</p>
 </div>
 <div class="paragraph">
 <p><strong>User property</strong>: arthur.graalVersion</p>
@@ -1802,6 +1878,19 @@ this goal does <strong>not</strong> need
 </div></div></td>
 </tr>
 <tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">skipLdLinuxInEntrypoint</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p>If true, and even if useLDD is true, ld-linux will not be in entrypoint.</p>
+</div>
+<div class="paragraph">
+<p><strong>Default value</strong>: false</p>
+</div>
+<div class="paragraph">
+<p><strong>User property</strong>: arthur.skipLdLinuxInEntrypoint</p>
+</div></div></td>
+</tr>
+<tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">threads</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">int</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
@@ -1841,6 +1930,19 @@ this goal does <strong>not</strong> need
 </div></div></td>
 </tr>
 <tr>
+<td class="tableblock halign-left valign-top"><p class="tableblock">useLDD</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p>If true, the created binary will be passed to ldd to detect the needed libraries.It enables to use FROM scratch even when the binary requires dynamic linking.Note that if ld-linux libraries is found by that processing it is set as first argument of the entrypointuntil skipLdLinuxInEntrypoint is set to true.</p>
+</div>
+<div class="paragraph">
+<p><strong>Default value</strong>: false</p>
+</div>
+<div class="paragraph">
+<p><strong>User property</strong>: arthur.useLDD</p>
+</div></div></td>
+</tr>
+<tr>
 <td class="tableblock halign-left valign-top"><p class="tableblock">workdir</p></td>
 <td class="tableblock halign-left valign-top"><p class="tableblock">File</p></td>
 <td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
@@ -1905,7 +2007,7 @@ It configure some resource bundle, setup
 </div>
 </div>
 <div class="paragraph">
-<p>Then you can just run <code>mvn arthur:native-image arthur:docker</code> to get a ready to deploy image.</p>
+<p>Then you can just run <code>mvn [package] arthur:native-image arthur:docker</code> to get a ready to deploy image.</p>
 </div>
 <hr>
 <div class="paragraph">

Added: websites/production/geronimo/content/arthur/openwebbeans-knight.html
==============================================================================
--- websites/production/geronimo/content/arthur/openwebbeans-knight.html (added)
+++ websites/production/geronimo/content/arthur/openwebbeans-knight.html Tue Jan 12 13:57:44 2021
@@ -0,0 +1,312 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8"/>
+    <title>Arthur OpenWebBeans Knights</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="Apache Geronimo Arthur Site">
+    <meta name="author" content="Apache">
+    <meta name="keywords" content="Apache Geronimo Arthur">
+    <meta name="generator" content="Arthur Site Generator">
+
+    <link rel="apple-touch-icon" sizes="57x57" href="favicon/apple-icon-57x57.png">
+    <link rel="apple-touch-icon" sizes="60x60" href="favicon/apple-icon-60x60.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="favicon/apple-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="76x76" href="favicon/apple-icon-76x76.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="favicon/apple-icon-114x114.png">
+    <link rel="apple-touch-icon" sizes="120x120" href="favicon/apple-icon-120x120.png">
+    <link rel="apple-touch-icon" sizes="144x144" href="favicon/apple-icon-144x144.png">
+    <link rel="apple-touch-icon" sizes="152x152" href="favicon/apple-icon-152x152.png">
+    <link rel="apple-touch-icon" sizes="180x180" href="favicon/apple-icon-180x180.png">
+    <link rel="icon" type="image/png" sizes="192x192"  href="favicon/android-icon-192x192.png">
+    <link rel="icon" type="image/png" sizes="32x32" href="favicon/favicon-32x32.png">
+    <link rel="icon" type="image/png" sizes="96x96" href="favicon/favicon-96x96.png">
+    <link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png">
+    <link rel="manifest" href="favicon/manifest.json">
+    <meta name="msapplication-TileColor" content="#2C3E50">
+    <meta name="msapplication-TileImage" content="favicon/ms-icon-144x144.png">
+    <meta name="theme-color" content="#2C3E50">
+
+    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" rel="stylesheet"
+          integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B" crossorigin="anonymous">
+    <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"
+          integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.css"
+          integrity="sha256-IPtNBA1od/cGBfXTxYDxuT5+Y2BKy14o6j0FaIXDmYk=" crossorigin="anonymous"/>
+    <link href="https://stackpath.bootstrapcdn.com/bootswatch/4.3.1/flatly/bootstrap.min.css" rel="stylesheet"
+          integrity="sha384-T5jhQKMh96HMkXwqVMSjF3CmLcL1nT9//tCqu9By5XSdj7CwR0r+F3LTzUdfkkQf" crossorigin="anonymous">
+    <link rel="stylesheet" href="css/arthur.css"/>
+
+    <!--[if lt IE 9]>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"
+            integrity="sha256-3Jy/GbSLrg0o9y5Z5n1uw0qxZECH7C6OQpVBgNFYa0g=" crossorigin="anonymous"></script>
+    <![endif]-->
+</head>
+<body cz-shortcut-listen="true">
+
+<div class="navbar navbar-expand-lg fixed-top navbar-dark bg-primary">
+    <div class="container">
+        <a href="index.html" class="navbar-brand">
+            <img src="image/logo.png" alt="Arthur Logo" class="d-inline-block align-top" width="32" height="32" style="margin-top: -7px;margin-right: 3px;">
+            Apache Geronimo Arthur
+        </a>
+        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive"
+                aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
+            <span class="navbar-toggler-icon"></span>
+        </button>
+        <div class="collapse navbar-collapse justify-content-end" id="navbarResponsive">
+            <ul class="navbar-nav">
+                <li class="nav-item">
+                    <a class="nav-link" href="https://www.apache.org/">Apache</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link" href="documentation.html">Documentation</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link" href="community.html">Community</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link" href="downloads.html">Downloads</a>
+                </li>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" id="asf-links">ASF <span
+                            class="caret"></span></a>
+                    <div class="dropdown-menu" aria-labelledby="asf-links">
+                        <a class="dropdown-item" href="https://www.apache.org/licenses/">License</a>
+                        <a class="dropdown-item"
+                           href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a>
+                        <div class="dropdown-divider"></div>
+                        <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                    </div>
+                </li>
+            </ul>
+        </div>
+    </div>
+</div>
+
+<div class="container page-header"><h1>Arthur OpenWebBeans Knights</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Arthur OpenWebBeans knight is responsible to support Apache OpenWebBeans.
+It preconfigures the most of the reflection and resource inclusion.</p>
+</div>
+<div class="paragraph">
+<p>It assumes you use <code>openwebbeans-se</code> in your project.
+Here is a sample dependencies block for a simple SCR application:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;dependencies&gt;
+  &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
+      &lt;artifactId&gt;geronimo-jcdi_2.0_spec&lt;/artifactId&gt;
+      &lt;version&gt;1.3&lt;/version&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
+      &lt;artifactId&gt;geronimo-el_2.2_spec&lt;/artifactId&gt;
+      &lt;version&gt;1.1&lt;/version&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
+      &lt;artifactId&gt;geronimo-annotation_1.3_spec&lt;/artifactId&gt;
+      &lt;version&gt;1.3&lt;/version&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
+      &lt;artifactId&gt;geronimo-atinject_1.0_spec&lt;/artifactId&gt;
+      &lt;version&gt;1.2&lt;/version&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.geronimo.specs&lt;/groupId&gt;
+      &lt;artifactId&gt;geronimo-interceptor_1.2_spec&lt;/artifactId&gt;
+      &lt;version&gt;1.2&lt;/version&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+      &lt;groupId&gt;org.apache.openwebbeans&lt;/groupId&gt;
+      &lt;artifactId&gt;openwebbeans-se&lt;/artifactId&gt;
+      &lt;version&gt;2.0.21&lt;/version&gt;
+    &lt;/dependency&gt;
+&lt;/dependencies&gt;</code></pre>
+</div>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+this only works out of the box with OpenWebBeans 2.0.21 or later. You&#8217;ll need to tune the scanner service yourself for older versions.
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_coordinates">Coordinates</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.geronimo.arthur.knights&lt;/groupId&gt;
+  &lt;artifactId&gt;openwebbeans-knight&lt;/artifactId&gt;
+  &lt;version&gt;${arthur.version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_usage">Usage</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>To make a CDI application compatible with <code>native-image</code> there are a few necessary steps to do:</p>
+</div>
+<div class="olist arabic">
+<ol class="arabic">
+<li>
+<p>Generate all CDI proxies (normal scope beans, intercepted/decorated beans)</p>
+</li>
+<li>
+<p>Include the proxies in the final image</p>
+</li>
+<li>
+<p>Include OpenWebBeans log resource bundle</p>
+</li>
+<li>
+<p>Register bean classes for reflection</p>
+</li>
+</ol>
+</div>
+<div class="paragraph">
+<p>The <code>openwebbeans-knight</code> handles most of that even if you can need to tune a few details in the Arthur configuration.</p>
+</div>
+<div class="paragraph">
+<p>Finally, you must register the openwebbeans knight in <code>arthur-maven-plugin</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
+  &lt;groupId&gt;org.apache.geronimo.arthur&lt;/groupId&gt;
+  &lt;artifactId&gt;arthur-maven-plugin&lt;/artifactId&gt;
+  &lt;version&gt;${arthur.version}&lt;/version&gt;
+  &lt;configuration&gt;
+    &lt;main&gt;org.company.cdi.Main&lt;/main&gt;
+    &lt;graalExtensions&gt;
+      &lt;graalExtension&gt;openwebbeans&lt;/graalExtension&gt;
+    &lt;/graalExtensions&gt;
+  &lt;/configuration&gt;
+&lt;/plugin&gt;</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_configuration">Configuration</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This knight has several configuration options:</p>
+</div>
+<table class="tableblock frame-all grid-all stretch table table-bordered">
+<colgroup>
+<col style="width: 33.3333%;">
+<col style="width: 16.6666%;">
+<col style="width: 50.0001%;">
+</colgroup>
+<thead>
+<tr>
+<th class="tableblock halign-left valign-top">Name</th>
+<th class="tableblock halign-left valign-top">Type</th>
+<th class="tableblock halign-left valign-top">Description</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p><code>extension.openwebbeans.classes.filter.[includes|excludes]</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Comma separated values for scanning filter (packages).</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p><code>extension.openwebbeans.classes.includeAsResources</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should classes be included as resources (.class) too.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p><code>extension.openwebbeans.container.se.disableDiscovery</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Should CDI SE container auto discover the beans or not.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p><code>extension.openwebbeans.container.se.properties</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Properties</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">CDI SE properties.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p><code>extension.openwebbeans.container.se.services</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Properties</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">OpenWebBeans services as properties (SPI=IMPL).</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p><code>extension.openwebbeans.container.se.classes</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String list</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Bean classes to register.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p><code>extension.openwebbeans.extension.excludes</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">String list</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">Extension fully qualified name prefixes to exclude undesired extensions.</p></td>
+</tr>
+<tr>
+<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
+<p><code>extension.openwebbeans.runtime.properties.skipOptimizations</code></p>
+</div></div></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">boolean</p></td>
+<td class="tableblock halign-left valign-top"><p class="tableblock">By default the knight will enable some optimization properties like skipping validation and <code>@Vetoed</code> on packages. If undesired set it to <code>true</code>.</p></td>
+</tr>
+</tbody>
+</table>
+<hr>
+<div class="paragraph">
+<p>Previous: <a href="knights.html">Knights</a></p>
+</div>
+</div>
+</div></div>
+
+<div id="footer">
+    <div class="container">
+        Copyright &copy; 1999-2019 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        Apache Geronimo, Geronimo, Apache, the Apache feather logo, and the Apache Geronimo project logo are trademarks
+        of
+        The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their
+        respective owners.
+    </div>
+</div>
+
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
+        integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js"
+        integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em"
+        crossorigin="anonymous"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js"
+        integrity="sha256-SHXnnZAbgSEf+OBhDLR7I2mx9vNZAIzPeCGhxRV+VQw=" crossorigin="anonymous"></script>
+<script src="js/arthur.js"></script>
+</body>
+</html>
\ No newline at end of file

Added: websites/production/geronimo/content/arthur/slf4j-knight.html
==============================================================================
--- websites/production/geronimo/content/arthur/slf4j-knight.html (added)
+++ websites/production/geronimo/content/arthur/slf4j-knight.html Tue Jan 12 13:57:44 2021
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8"/>
+    <title>Arthur SLF4J Knights</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="description" content="Apache Geronimo Arthur Site">
+    <meta name="author" content="Apache">
+    <meta name="keywords" content="Apache Geronimo Arthur">
+    <meta name="generator" content="Arthur Site Generator">
+
+    <link rel="apple-touch-icon" sizes="57x57" href="favicon/apple-icon-57x57.png">
+    <link rel="apple-touch-icon" sizes="60x60" href="favicon/apple-icon-60x60.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="favicon/apple-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="76x76" href="favicon/apple-icon-76x76.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="favicon/apple-icon-114x114.png">
+    <link rel="apple-touch-icon" sizes="120x120" href="favicon/apple-icon-120x120.png">
+    <link rel="apple-touch-icon" sizes="144x144" href="favicon/apple-icon-144x144.png">
+    <link rel="apple-touch-icon" sizes="152x152" href="favicon/apple-icon-152x152.png">
+    <link rel="apple-touch-icon" sizes="180x180" href="favicon/apple-icon-180x180.png">
+    <link rel="icon" type="image/png" sizes="192x192"  href="favicon/android-icon-192x192.png">
+    <link rel="icon" type="image/png" sizes="32x32" href="favicon/favicon-32x32.png">
+    <link rel="icon" type="image/png" sizes="96x96" href="favicon/favicon-96x96.png">
+    <link rel="icon" type="image/png" sizes="16x16" href="favicon/favicon-16x16.png">
+    <link rel="manifest" href="favicon/manifest.json">
+    <meta name="msapplication-TileColor" content="#2C3E50">
+    <meta name="msapplication-TileImage" content="favicon/ms-icon-144x144.png">
+    <meta name="theme-color" content="#2C3E50">
+
+    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" rel="stylesheet"
+          integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B" crossorigin="anonymous">
+    <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"
+          integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.css"
+          integrity="sha256-IPtNBA1od/cGBfXTxYDxuT5+Y2BKy14o6j0FaIXDmYk=" crossorigin="anonymous"/>
+    <link href="https://stackpath.bootstrapcdn.com/bootswatch/4.3.1/flatly/bootstrap.min.css" rel="stylesheet"
+          integrity="sha384-T5jhQKMh96HMkXwqVMSjF3CmLcL1nT9//tCqu9By5XSdj7CwR0r+F3LTzUdfkkQf" crossorigin="anonymous">
+    <link rel="stylesheet" href="css/arthur.css"/>
+
+    <!--[if lt IE 9]>
+    <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"
+            integrity="sha256-3Jy/GbSLrg0o9y5Z5n1uw0qxZECH7C6OQpVBgNFYa0g=" crossorigin="anonymous"></script>
+    <![endif]-->
+</head>
+<body cz-shortcut-listen="true">
+
+<div class="navbar navbar-expand-lg fixed-top navbar-dark bg-primary">
+    <div class="container">
+        <a href="index.html" class="navbar-brand">
+            <img src="image/logo.png" alt="Arthur Logo" class="d-inline-block align-top" width="32" height="32" style="margin-top: -7px;margin-right: 3px;">
+            Apache Geronimo Arthur
+        </a>
+        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive"
+                aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
+            <span class="navbar-toggler-icon"></span>
+        </button>
+        <div class="collapse navbar-collapse justify-content-end" id="navbarResponsive">
+            <ul class="navbar-nav">
+                <li class="nav-item">
+                    <a class="nav-link" href="https://www.apache.org/">Apache</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link" href="documentation.html">Documentation</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link" href="community.html">Community</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link" href="downloads.html">Downloads</a>
+                </li>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" id="asf-links">ASF <span
+                            class="caret"></span></a>
+                    <div class="dropdown-menu" aria-labelledby="asf-links">
+                        <a class="dropdown-item" href="https://www.apache.org/licenses/">License</a>
+                        <a class="dropdown-item"
+                           href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a>
+                        <div class="dropdown-divider"></div>
+                        <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                    </div>
+                </li>
+            </ul>
+        </div>
+    </div>
+</div>
+
+<div class="container page-header"><h1>Arthur SLF4J Knights</h1>
+<div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>Arthur Slf4j knight is responsible to force some SLF4j and SLF4J-JUL class initialization at build time.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_coordinates">Coordinates</h2>
+<div class="sectionbody">
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;dependency&gt;
+  &lt;groupId&gt;org.apache.geronimo.arthur.knights&lt;/groupId&gt;
+  &lt;artifactId&gt;slf4j-knight&lt;/artifactId&gt;
+  &lt;version&gt;${arthur.version}&lt;/version&gt;
+&lt;/dependency&gt;</code></pre>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_usage">Usage</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>slf4j-knight</code> handles some build time initialization to make <code>slf4j-jdk14</code> working with graalvm compilation.</p>
+</div>
+<div class="paragraph">
+<p>You must register the slf4j knight in <code>arthur-maven-plugin</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
+  &lt;groupId&gt;org.apache.geronimo.arthur&lt;/groupId&gt;
+  &lt;artifactId&gt;arthur-maven-plugin&lt;/artifactId&gt;
+  &lt;version&gt;${arthur.version}&lt;/version&gt;
+  &lt;configuration&gt;
+    &lt;main&gt;org.company.Main&lt;/main&gt;
+    &lt;graalExtensions&gt;
+      &lt;graalExtension&gt;slf4j&lt;/graalExtension&gt;
+    &lt;/graalExtensions&gt;
+  &lt;/configuration&gt;
+&lt;/plugin&gt;</code></pre>
+</div>
+</div>
+<hr>
+<div class="paragraph">
+<p>Previous: <a href="knights.html">Knights</a></p>
+</div>
+</div>
+</div></div>
+
+<div id="footer">
+    <div class="container">
+        Copyright &copy; 1999-2019 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        Apache Geronimo, Geronimo, Apache, the Apache feather logo, and the Apache Geronimo project logo are trademarks
+        of
+        The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their
+        respective owners.
+    </div>
+</div>
+
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
+        integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
+<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/js/bootstrap.min.js"
+        integrity="sha384-o+RDsa0aLu++PJvFqy8fFScvbHFLtbvScb8AjopnFD+iEQ7wo/CG0xlczd+2O/em"
+        crossorigin="anonymous"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js"
+        integrity="sha256-SHXnnZAbgSEf+OBhDLR7I2mx9vNZAIzPeCGhxRV+VQw=" crossorigin="anonymous"></script>
+<script src="js/arthur.js"></script>
+</body>
+</html>
\ No newline at end of file

Modified: websites/production/geronimo/content/arthur/winegrower-knight.html
==============================================================================
--- websites/production/geronimo/content/arthur/winegrower-knight.html (original)
+++ websites/production/geronimo/content/arthur/winegrower-knight.html Tue Jan 12 13:57:44 2021
@@ -242,7 +242,7 @@ If you decide to use the plugin you must
 <pre class="highlight"><code class="language-xml" data-lang="xml">&lt;plugin&gt;
   &lt;groupId&gt;org.apache.geronimo.arthur&lt;/groupId&gt;
   &lt;artifactId&gt;arthur-maven-plugin&lt;/artifactId&gt;
-  &lt;version&gt;1.0.0-SNAPSHOT&lt;/version&gt;
+  &lt;version&gt;${arthur.version}&lt;/version&gt;
   &lt;configuration&gt;
     &lt;main&gt;org.company.osgi.ScrMain&lt;/main&gt;
     &lt;graalExtensions&gt;