You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2021/02/11 16:29:09 UTC

[myfaces-tobago] branch tobago-4.x updated: docs: demo sync with master, update versions, API links

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

bommel pushed a commit to branch tobago-4.x
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git


The following commit(s) were added to refs/heads/tobago-4.x by this push:
     new c770f7b  docs: demo sync with master, update versions, API links
c770f7b is described below

commit c770f7b6c5eb37baf2b770c2c7371aaf71c9e8f9
Author: Udo Schnurpfeil <ud...@irian.eu>
AuthorDate: Thu Feb 11 14:51:20 2021 +0100

    docs: demo sync with master, update versions, API links
---
 .../myfaces/tobago/example/demo/ApiController.java   | 20 ++++++++++++++++++++
 .../apache/myfaces/tobago/example/demo/Release.java  | 18 +++++++++---------
 .../myfaces/tobago/example/demo/ServerInfo.java      |  6 +++++-
 .../content/20-component/010-input/10-in/in.xhtml    |  2 +-
 .../20-component/010-input/20-suggest/suggest.xhtml  |  6 +++---
 .../010-input/30-textarea/textarea.xhtml             |  2 +-
 .../20-component/010-input/40-date/date.xhtml        |  2 +-
 .../010-input/50-input-group/group.xhtml             |  2 +-
 .../20-component/010-input/80-stars/stars.xhtml      |  2 +-
 .../content/20-component/020-output/10-out/out.xhtml |  2 +-
 .../20-component/020-output/20-label/label.xhtml     |  2 +-
 .../020-output/30-messages/messages.xhtml            |  2 +-
 .../20-component/020-output/45-figure/figure.xhtml   |  2 +-
 .../020-output/50-progress/progress.xhtml            |  2 +-
 .../15-selectBooleanToggle/selectBooleanToggle.xhtml |  2 +-
 .../20-selectOneChoice/selectOneChoice.xhtml         |  6 +++---
 .../30-selectOneRadio/selectOneRadio.xhtml           |  6 +++---
 .../40-selectOneListbox/selectOneListbox.xhtml       |  6 +++---
 .../50-selectManyCheckbox/selectManyCheckbox.xhtml   |  6 +++---
 .../60-selectManyListbox/selectManyListbox.xhtml     |  6 +++---
 .../70-selectManyShuttle/selectManyShuttle.xhtml     |  6 +++---
 .../040-command/00-button+link/button+link.xhtml     |  4 ++--
 .../040-command/10-default/default-command.xhtml     |  2 +-
 .../040-command/20-buttons/buttons.xhtml             |  4 ++--
 .../20-component/040-command/25-links/links.xhtml    |  6 +++---
 .../20-component/050-container/10-box/box.xhtml      |  2 +-
 .../20-component/050-container/20-panel/panel.xhtml  |  2 +-
 .../050-container/40-section/section.xhtml           |  2 +-
 .../20-component/050-container/60-bar/bar.xhtml      |  2 +-
 .../content/20-component/060-popup/popup.xhtml       |  4 ++--
 .../20-component/070-tab/00-client/tab-client.xhtml  |  6 +++---
 .../20-component/070-tab/01-ajax/tab-ajax.xhtml      |  6 +++---
 .../20-component/070-tab/02-server/tab-server.xhtml  |  6 +++---
 .../080-sheet/10-sort/sheet-sorting.xhtml            |  4 ++--
 .../080-sheet/50-filter/sheet-filter.xhtml           |  4 ++--
 .../55-staticheader/sheet-static-header.xhtml        |  4 ++--
 .../60-multiheader/sheet-multi-header.xhtml          |  6 +++---
 .../20-component/080-sheet/70-tree/sheet-tree.xhtml  |  4 ++--
 .../080-sheet/80-editable/sheet-editable.xhtml       |  4 ++--
 .../content/20-component/080-sheet/sheet.xhtml       |  4 ++--
 .../090-tree/00-command/tree-command-types.xhtml     |  2 +-
 .../090-tree/01-select/tree-select.xhtml             |  4 ++--
 .../090-tree/04-listbox/tree-listbox.xhtml           |  2 +-
 .../webapp/content/20-component/090-tree/tree.xhtml  | 10 +++++-----
 .../content/20-component/100-upload/upload.xhtml     |  2 +-
 .../06-validation/00/content-validation.xhtml        |  4 ++--
 .../08-form/10-required/form-required.xhtml          |  2 +-
 .../30-concept/08-form/20-ajax/form-ajax.xhtml       |  2 +-
 .../webapp/content/30-concept/08-form/form.xhtml     |  2 +-
 .../30-concept/16-layout/10-flow/flow-layout.xhtml   |  2 +-
 .../30-concept/16-layout/20-flex/flex-layout.xhtml   |  2 +-
 .../16-layout/30-segment/segment-layout.xhtml        |  2 +-
 .../16-layout/40-labeled/labeled-layout.xhtml        |  8 ++++----
 .../30-concept/23-transition/transition.xhtml        |  4 ++--
 .../content/30-concept/30-behavior/behavior.xhtml    |  2 +-
 .../content/30-concept/65-accessKey/accessKey.xhtml  |  8 ++++----
 .../30-concept/70-dataAttribute/dataAttribute.xhtml  |  2 +-
 57 files changed, 134 insertions(+), 110 deletions(-)

diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ApiController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ApiController.java
index 0bbf5b4..0fe4f73 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ApiController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ApiController.java
@@ -19,10 +19,14 @@
 
 package org.apache.myfaces.tobago.example.demo;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import javax.enterprise.context.RequestScoped;
 import javax.faces.event.AjaxBehaviorEvent;
 import javax.inject.Named;
 import java.io.Serializable;
+import java.lang.invoke.MethodHandles;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -31,6 +35,8 @@ import java.util.List;
 @Named
 public class ApiController implements Serializable {
 
+  private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+
   private List<Release> releases;
   private boolean onlyCurrent = true;
 
@@ -72,6 +78,20 @@ public class ApiController implements Serializable {
     return Release.v4_3_0.getVersion();
   }
 
+  public String getVersion500() {
+    return Release.v5_0_0.getVersion();
+  }
+
+  public String getCurrentRelease() {
+    for (Release release : releases) {
+      if (release.isCurrent() && release.getVersion().startsWith("4")) {
+        return release.getVersion();
+      }
+    }
+    LOG.error("No current release found!");
+    return Release.v4_5_2.getVersion(); // should not happen
+  }
+
   public String getJiraUrl(final String version) {
     final Release release = Release.valueOf("v" + version.replaceAll("\\.", "_"));
     return "https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&version=" + release.getJira();
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Release.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Release.java
index 9bc7296..e13f244 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Release.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Release.java
@@ -106,8 +106,8 @@ public enum Release {
   v2_4_0("12344409"),
   v2_4_1("12344899"),
   v2_4_2("12345177"),
-  v2_4_3("12346997", true),
-  v2_4_4("12349632", false, true),
+  v2_4_3("12346997"),
+  v2_4_4("12349632", true),
   v2_4_5("12349661", false, true),
   v2_5_0("12345962", false, true),
 
@@ -139,19 +139,19 @@ public enum Release {
   v4_4_0("12344541"),
   v4_4_1("12345061"),
   v4_5_0("12345562"),
-  v4_5_1("12348200", true),
-  v4_5_2("12349344", false, true),
+  v4_5_1("12348200"),
+  v4_5_2("12349344", true),
   v4_5_3("12349662", false, true),
 
   v5_0_0("12338729", false, true),
   v5_0_1("12344151", false, true),
   v5_1_0("12344152", false, true);
 
-  private String jira;
-  private String version;
-  private boolean tx;
-  private boolean current;
-  private boolean unreleased;
+  private final String jira;
+  private final String version;
+  private final boolean tx;
+  private final boolean current;
+  private final boolean unreleased;
 
   Release(final String jira) {
     this(jira, false, false);
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ServerInfo.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ServerInfo.java
index 1097c24..2338115 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ServerInfo.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ServerInfo.java
@@ -50,7 +50,7 @@ public class ServerInfo {
   private static final String CONFIG_FILE_DEFAULT = "/etc/tobago-example-demo.properties";
   private static final String ENABLED_KEY = "server.info.enabled";
 
-  private static final String LAST_RELEASED_VERSION = "4.5.0";
+  private static final String LAST_RELEASED_VERSION = "4.5.2";
 
   private String version;
 
@@ -109,6 +109,10 @@ public class ServerInfo {
     return enabled;
   }
 
+  /**
+   * @deprecated please use {@link ApiController#getCurrentRelease}
+   */
+  @Deprecated
   public String getStableVersion() {
     if (version == null || version.endsWith("-SNAPSHOT")) {
       return LAST_RELEASED_VERSION;
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/10-in/in.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/10-in/in.xhtml
index 854ed9b..07817dc 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/10-in/in.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/10-in/in.xhtml
@@ -24,7 +24,7 @@
                 xmlns:f="http://java.sun.com/jsf/core">
   <ui:param name="title" value="#{demoBundle.in} &lt;tc:in&gt;"/>
   <p>The <code class="language-markup">&lt;tc:in/&gt;</code> tag create a classic inputfield.</p>
-  <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/in.html"/>
+  <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/in.html"/>
   <tc:section label="Basics">
     <p>In most cases, a label should be placed in front of every inputfield. Use the attribute
       <code>label</code>.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/20-suggest/suggest.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/20-suggest/suggest.xhtml
index d1e9b46..e34222a 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/20-suggest/suggest.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/20-suggest/suggest.xhtml
@@ -26,13 +26,13 @@
     suggestions based on the already entered text.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:suggest/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/suggest.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/suggest.html"/>
     |
     <tc:link label="&lt;tc:in/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/in.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/in.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>After you type a character in the textfield, a list of suggestions is shown.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/30-textarea/textarea.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/30-textarea/textarea.xhtml
index 26cb7c9..d4b02e3 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/30-textarea/textarea.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/30-textarea/textarea.xhtml
@@ -24,7 +24,7 @@
   <ui:param name="title" value="#{demoBundle.textarea} &lt;tc:textarea&gt;"/>
   <p>The <code class="language-markup">&lt;tc:textarea/&gt;</code> tag, creates a textfield with one or more rows.
     The textarea becomes scrollable if the containing text could not displayed in the current size.</p>
-  <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/textarea.html"/>
+  <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/textarea.html"/>
   <tc:section label="Basics">
     <p>The textarea should always have a label attached. For this, use the <code>label</code> attribute.</p>
     <p>Unlike the inputfield TODO:linkToIn there is no placeholder attribute to describe the meaning of a textarea, when no label is set.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.xhtml
index 2f4beda..f447502 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/40-date/date.xhtml
@@ -27,7 +27,7 @@
     tag create an inputfield with a button to open a calendar to edit the date.
     The date can also be edited in the textfield.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:date/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/date.html"/>
+    <tc:link label="&lt;tc:date/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/date.html"/>
     |
     <tc:link label="&lt;f:convertDateTime/>"
              link="https://docs.oracle.com/javaee/6/javaserverfaces/2.0/docs/pdldocs/facelets/f/convertDateTime.html"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/50-input-group/group.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/50-input-group/group.xhtml
index 1ffe1e5..fe15b68 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/50-input-group/group.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/50-input-group/group.xhtml
@@ -30,7 +30,7 @@
     and <code class="language-markup">&lt;f:facet name="after"></code>.
     With these, you can add text and dropdown menus to an input field.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/in.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/in.html"/>
 
   <tc:section label="Text">
     <p>The following example show how to add a text-label inside an input field.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/stars.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/stars.xhtml
index 55f23cf..72e20e5 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/stars.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/010-input/80-stars/stars.xhtml
@@ -25,7 +25,7 @@
   <ui:param name="title" value="#{demoBundle.stars}"/>
   <p>Use <code class="language-markup">&lt;tc:stars/></code> to create a five star rating.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/stars.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/stars.html"/>
 
   <tc:section label="Basics">
     <tc:style marginTop="3rem"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/10-out/out.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/10-out/out.xhtml
index 90a47de..b6905ea 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/10-out/out.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/10-out/out.xhtml
@@ -24,7 +24,7 @@
   <ui:param name="title" value="#{demoBundle.out} &lt;tc:out&gt;"/>
   <p>The <code class="language-markup">&lt;tc:out/></code> display an outputtext combined with a label.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/out.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/out.html"/>
   <tc:section label="Basics">
     <p>To put a label in front of a outputtext, use the <code>label</code> attribute.</p>
     <pre><code class="language-markup">&lt;tc:out label="Output" value="Some Text"/&gt;</code></pre>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/20-label/label.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/20-label/label.xhtml
index fec6e6b..96b32e8 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/20-label/label.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/20-label/label.xhtml
@@ -26,7 +26,7 @@
     Some components already have a <code>label</code> attribute to combine it with a label,
     which should be used in general.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/label.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/label.html"/>
   <tc:section label="Basics">
     <pre><code class="language-markup">&lt;tc:label value="Single Label"/&gt;</code></pre>
     <tc:label id="l1" value="Single Label"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml
index 82fac5d..7d49c28 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml
@@ -27,7 +27,7 @@
 
   <p>Messages are displayed via <code class="language-markup">&lt;tc:messages/></code> tag.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/messages.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/messages.html"/>
 
   <tc:section label="Create Message">
     <p>To create messages, press one of the following buttons. The message will be displayed in the tabgroup.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/45-figure/figure.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/45-figure/figure.xhtml
index 53d92f1..fe64964 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/45-figure/figure.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/45-figure/figure.xhtml
@@ -25,7 +25,7 @@
   <p>Create a figure with <code class="language-markup">&lt;tc:figure/&gt;</code> around an image,
     video or something else. The label can be set via the label attribute or with the label facet.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/figure.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/figure.html"/>
 
   <tc:section label="Label attribute">
     <p>For simple captions use the <code>label</code> attribute.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml
index 7916adc..50f36d2 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/50-progress/progress.xhtml
@@ -29,7 +29,7 @@
     It could be a <code>double</code> - in that case, you need the attribute <code>max</code> as well.
     Or it is of type <code>BoundedRangeModel</code>.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:progress/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/progress.html"/>
+    <tc:link label="&lt;tc:progress/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/progress.html"/>
     |
     <tc:link label="BoundedRangeModel"
              link="https://docs.oracle.com/javase/7/docs/api/javax/swing/BoundedRangeModel.html"/></p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/selectBooleanToggle.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/selectBooleanToggle.xhtml
index 8eee7e1..462ca53 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/selectBooleanToggle.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/15-selectBooleanToggle/selectBooleanToggle.xhtml
@@ -26,7 +26,7 @@
   <p>The tag <code class="language-markup">&lt;tc:selectBooleanToggle/></code> generate a boolean
     toggle.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectBooleanToggle.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectBooleanToggle.html"/>
   <tc:section label="Basics">
     <pre><code class="language-markup">&lt;tc:selectBooleanToggle label="Toggle" value="true"/&gt;</code></pre>
     <tc:selectBooleanToggle id="s1" label="Normal Toggle" value="true"/>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/selectOneChoice.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/selectOneChoice.xhtml
index 75bf5c4..1a28eda 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/selectOneChoice.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/20-selectOneChoice/selectOneChoice.xhtml
@@ -30,13 +30,13 @@
     a controller.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectOneChoice/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectOneChoice.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectOneChoice.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>Dropdown Box with hardcoded items. The second item is disabled.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/selectOneRadio.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/selectOneRadio.xhtml
index 5f2743e..d8d0f88 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/selectOneRadio.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/30-selectOneRadio/selectOneRadio.xhtml
@@ -31,13 +31,13 @@
     <code class="language-markup">&lt;tc:selectItems value="\#{controller.list}"/></code>.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectOneRadio/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectOneRadio.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectOneRadio.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>Radiobutton group with a label. The last item is disabled.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/selectOneListbox.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/selectOneListbox.xhtml
index dbadead..9d55725 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/selectOneListbox.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/40-selectOneListbox/selectOneListbox.xhtml
@@ -28,13 +28,13 @@
     or <code class="language-markup">&lt;tc:selectItems/></code>.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectOneListbox/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectOneListbox.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectOneListbox.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>If the number of rows is not set, die height of the list depends on the number of entries.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/selectManyCheckbox.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/selectManyCheckbox.xhtml
index bdae780..c4f8499 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/selectManyCheckbox.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/50-selectManyCheckbox/selectManyCheckbox.xhtml
@@ -31,13 +31,13 @@
     controller.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectManyCheckbox/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectManyCheckbox.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectManyCheckbox.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>Checkbox Group with two items. The second one is disabled.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/selectManyListbox.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/selectManyListbox.xhtml
index 033dc4a..29a1152 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/selectManyListbox.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/60-selectManyListbox/selectManyListbox.xhtml
@@ -29,13 +29,13 @@
     <code class="language-markup">&lt;tc:selectItems value="\#{controller.list}"/></code> (from controller).</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectManyListbox/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectManyListbox.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectManyListbox.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <p>In this example, there is a list with three items. The second one is disabled with the
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/selectManyShuttle.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/selectManyShuttle.xhtml
index cb46a6d..e5d9f63 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/selectManyShuttle.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/030-select/70-selectManyShuttle/selectManyShuttle.xhtml
@@ -31,13 +31,13 @@
     <code class="language-markup">&lt;tc:selectItems></code> (dynamic).</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:selectManyShuttle/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectManyShuttle.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectManyShuttle.html"/>
     |
     <tc:link label="&lt;tc:selectItem/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItem.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItem.html"/>
     |
     <tc:link label="&lt;tc:selectItems/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/selectItems.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/selectItems.html"/></p>
 
   <tc:section label="Basics">
     <pre><code class="language-markup">&lt;tc:selectManyShuttle label="Shuttle List" size="7"></code></pre>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/button+link.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/button+link.xhtml
index bdce9b2..011ee53 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/button+link.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/00-button+link/button+link.xhtml
@@ -27,10 +27,10 @@
     The behavior of a link and a button is the same, it differs in the appearance.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/link.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/link.html"/>
     |
     <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/button.html"/></p>
 
   <tc:section label="Basics">
     <p>The next two sections show how a link and a button is set.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/10-default/default-command.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/10-default/default-command.xhtml
index 177bb5b..e20353b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/10-default/default-command.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/10-default/default-command.xhtml
@@ -28,7 +28,7 @@
   <p>A button can be made to a default button with the <code>defaultCommand</code> attribute.
     The default button is highlighted by another color.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/button.html"/>
 
   <tc:section label="Last Active Button ID">
     <p>To make the examples more clear, the ID of the last active button is displayed in the
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml
index 41e2fe2..bc2387b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/20-buttons/buttons.xhtml
@@ -25,9 +25,9 @@
   <p>Buttons can be grouped with the <code class="language-markup">&lt;tc:buttons/></code> tag.
     Just add some <code class="language-markup">&lt;tc:button/></code> tags.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:buttons/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/buttons.html"/>
+    <tc:link label="&lt;tc:buttons/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/buttons.html"/>
     |
-    <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/></p>
+    <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/button.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple example with three buttons.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml
index 37e39f2..0290b0e 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/040-command/25-links/links.xhtml
@@ -28,11 +28,11 @@
   <p>Currently there is no difference between <code class="language-markup">&lt;tc:link/></code> and
     <code class="language-markup">&lt;tc:links/></code>.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/buttons.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/buttons.html"/>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:links/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/links.html"/>
+    <tc:link label="&lt;tc:links/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/links.html"/>
     |
-    <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/link.html"/></p>
+    <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/link.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple example with three links.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/10-box/box.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/10-box/box.xhtml
index 82dca4d1..7a3a469 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/10-box/box.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/10-box/box.xhtml
@@ -26,7 +26,7 @@
   <ui:param name="title" value="#{demoBundle.box} &lt;tc:box>"/>
   <p>A content box is created with <code class="language-markup">&lt;tc:box/></code>.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/box.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/box.html"/>
   <tc:section label="Basics">
     <p>The title of the box is set by the <code>label</code> attribute or with
       <code class="language-markup">&lt;f:facet name="label"></code>.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/20-panel/panel.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/20-panel/panel.xhtml
index f544cec..7f9134e 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/20-panel/panel.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/20-panel/panel.xhtml
@@ -26,7 +26,7 @@
   <p>A <code class="language-markup">&lt;tc:panel/></code> is a simple content container.
     In the most cases it's invisible and wrapping other components.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/panel.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/panel.html"/>
 
   <tc:section label="Basics">
     <p>The panel has a custom class, which set a blue background color. The class of the panel is set via the
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml
index 588c38b..8773c19 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/40-section/section.xhtml
@@ -24,7 +24,7 @@
   <ui:param name="title" value="#{demoBundle.section} &lt;tc:section>"/>
   <p>A section can be added with <code class="language-markup">&lt;tc:section/></code> tag.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/section.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/section.html"/>
 
   <tc:section label="Basics">
     <p>A section can have a title. It is added with the <code>label</code> attribute.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/60-bar/bar.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/60-bar/bar.xhtml
index 2462d8e..8e566c5 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/60-bar/bar.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/050-container/60-bar/bar.xhtml
@@ -29,7 +29,7 @@
   <p>Additionally the facet <code class="language-markup">&lt;f:facet name="brand"/></code> can be added.
     It shows the 'brand', a logo, text or both on the left site of the bar.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/bar.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/bar.html"/>
 
   <tc:section label="Example">
     <p>This example show a dark bar with a 'brand' facet, a menu and right side content inside an 'after' facet.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml
index d59386d..7c0f3c1 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/060-popup/popup.xhtml
@@ -30,10 +30,10 @@
              outcome="/content/30-concept/53-collapsible/collapsible.xhtml"/> concept.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:popup/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/popup.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/popup.html"/>
     |
     <tc:link label="&lt;tc:operation/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/operation.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/operation.html"/></p>
 
   <tc:section label="Client Side Popup">
     <tc:form id="form2">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/00-client/tab-client.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/00-client/tab-client.xhtml
index dfa0c63..1552c0b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/00-client/tab-client.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/00-client/tab-client.xhtml
@@ -28,12 +28,12 @@
     Within a tab, content can be added like in a section or a panel.</p>
   <p>Changing tabs is client side by default.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabGroup.html"/>
+    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tabGroup.html"/>
     |
-    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tab.html"/>
+    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tab.html"/>
     |
     <tc:link label="&lt;tc:tabChangeListener/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabChangeListener.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tabChangeListener.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple tabgroup. The second tab is disabled.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml
index 12eec7b..6a26d3d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/01-ajax/tab-ajax.xhtml
@@ -29,12 +29,12 @@
   <p>To activate Ajax, the <code>switchType</code> attribute must have the value "reloadTab".
     On all tabgroups on this page, Ajax is activated.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabGroup.html"/>
+    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tabGroup.html"/>
     |
-    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tab.html"/>
+    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tab.html"/>
     |
     <tc:link label="&lt;tc:tabChangeListener/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabChangeListener.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tabChangeListener.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple tabgroup. The second tab is disabled.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/02-server/tab-server.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/02-server/tab-server.xhtml
index 9d0b8bf..a5e8e78 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/02-server/tab-server.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/070-tab/02-server/tab-server.xhtml
@@ -29,12 +29,12 @@
     To change them server side, the <code>switchType</code> attribute must have the value "reloadPage".
     All tabgroups on this page are server side.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabGroup.html"/>
+    <tc:link label="&lt;tc:tabGroup/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tabGroup.html"/>
     |
-    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tab.html"/>
+    <tc:link label="&lt;tc:tab/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tab.html"/>
     |
     <tc:link label="&lt;tc:tabChangeListener/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tabChangeListener.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tabChangeListener.html"/></p>
 
   <tc:section label="Basics">
     <p>A simple tabgroup. The second tab is disabled.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/10-sort/sheet-sorting.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/10-sort/sheet-sorting.xhtml
index 89ded18..2899b96 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/10-sort/sheet-sorting.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/10-sort/sheet-sorting.xhtml
@@ -32,10 +32,10 @@
     sorting will not be possible!</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="Basics">
     <p>In this example, the <code>sortable</code> attribute is 'true' for all columns.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/50-filter/sheet-filter.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/50-filter/sheet-filter.xhtml
index 7825a8e..694fe4f 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/50-filter/sheet-filter.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/50-filter/sheet-filter.xhtml
@@ -29,10 +29,10 @@
   <p><b>Warning:</b> Paging currently doesn't work with filters!</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="#{demoBundle.sheet_filter}">
     <p>Add a search string to the inputfield or change the value of the dropdown boxes to filter the sheet.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/55-staticheader/sheet-static-header.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/55-staticheader/sheet-static-header.xhtml
index 6cb500d..4dfaac5 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/55-staticheader/sheet-static-header.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/55-staticheader/sheet-static-header.xhtml
@@ -30,10 +30,10 @@
              outcome="/content/20-component/080-sheet/60-multiheader/sheet-multi-header.xhtml"/> section.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="Basics">
     <p>A sheet with six rows. The name of the columns is set by the <code>label</code> attribute.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/60-multiheader/sheet-multi-header.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/60-multiheader/sheet-multi-header.xhtml
index a3c9867..529ba37 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/60-multiheader/sheet-multi-header.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/60-multiheader/sheet-multi-header.xhtml
@@ -34,13 +34,13 @@
     to set a span over columns or rows.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/column.html"/>
     |
     <tc:link label="&lt;tc:span/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/gridLayoutConstraint.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/gridLayoutConstraint.html"/></p>
 
   <tc:section label="Multi-Header">
     <p>For multi-header sheets, you should consider to use <code>markup="bordered"</code> for better appearance.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/sheet-tree.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/sheet-tree.xhtml
index f7f8348..7983713 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/sheet-tree.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/70-tree/sheet-tree.xhtml
@@ -28,10 +28,10 @@
 
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:columnNode/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/columnNode.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/columnNode.html"/></p>
 
   <tc:section label="Column Tree">
     <p>There is a tree in the first column. You can expand and collapse the items.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/80-editable/sheet-editable.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/80-editable/sheet-editable.xhtml
index 80bce44..119c615 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/80-editable/sheet-editable.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/80-editable/sheet-editable.xhtml
@@ -26,10 +26,10 @@
   <p>Not only a sheet can be used to display data, it may also contain inputfields to edit the data.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="Editable Sheet" id="basics">
     <p>In this sheet you can edit the data of solar objects. Press the 'Submit' button to see the results in the
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/sheet.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/sheet.xhtml
index d91c186..89400a4 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/sheet.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/080-sheet/sheet.xhtml
@@ -28,10 +28,10 @@
     outputfields, labels, progress bars or even tab groups.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="Basics">
     <p>Two attributes should be recognized in a sheet.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/00-command/tree-command-types.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/00-command/tree-command-types.xhtml
index 6ee337e..88e8ba1 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/00-command/tree-command-types.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/00-command/tree-command-types.xhtml
@@ -26,7 +26,7 @@
     <code class="language-markup">&lt;tc:treeNode/></code> tag.
     The command can be used to execute an action or a link.</p>
   <p><tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-              link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeCommand.html"/></p>
+              link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/treeCommand.html"/></p>
 
   <tc:section label="Example">
     <p>In this example, the nodes with children are displayed as
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/01-select/tree-select.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/01-select/tree-select.xhtml
index 4737698..d7e2788 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/01-select/tree-select.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/01-select/tree-select.xhtml
@@ -27,10 +27,10 @@
     <code class="language-markup">&lt;treeLabel/></code> to add radio buttons or checkboxes in front of the nodes.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:tree/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tree.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tree.html"/>
     |
     <tc:link label="&lt;tc:treeSelect/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeSelect.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/treeSelect.html"/></p>
 
   <tc:section label="Example">
     <p>The <code class="language-markup">&lt;tc:tree/></code> tag must use the <code>selectable</code> attribute.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/04-listbox/tree-listbox.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/04-listbox/tree-listbox.xhtml
index ca65e3e..aa0b0e5 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/04-listbox/tree-listbox.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/04-listbox/tree-listbox.xhtml
@@ -25,7 +25,7 @@
   <p>The <code class="language-markup">&lt;tc:treeListbox/></code> can be used to replace a classic
     <code class="language-markup">&lt;tc:tree/></code>. It displays the tree as a number of lists.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeListbox.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/treeListbox.html"/>
 
   <tc:section label="Example">
     <pre><code class="language-markup">&lt;tc:treeListbox value="\#{treeListboxController.sample}" ...></code></pre>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/tree.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/tree.xhtml
index e01fab1..13417e6 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/tree.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/090-tree/tree.xhtml
@@ -28,19 +28,19 @@
     and as a <tc:link label="list" outcome="/content/20-component/090-tree/04-listbox/tree-listbox.xhtml"/>.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:tree/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/tree.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/tree.html"/>
     |
     <tc:link label="&lt;tc:treeNode/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeNode.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/treeNode.html"/>
     |
     <tc:link label="&lt;tc:treeIndent/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeIndent.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/treeIndent.html"/>
     |
     <tc:link label="&lt;tc:treeLabel/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeLabel.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/treeLabel.html"/>
     |
     <tc:link label="&lt;tc:treeIcon/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/treeIcon.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/treeIcon.html"/></p>
 
   <tc:section label="Basics">
     <p>The tree tag has two attributes, <code>value</code> and <code>var</code>. The attribute <code>value</code>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/upload.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/upload.xhtml
index c5721f3..44df7f1 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/upload.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/100-upload/upload.xhtml
@@ -38,7 +38,7 @@
     <code>org.apache.myfaces.tobago.internal.util.PartUtils.getSubmittedFileName(part)</code>
     to access to filename of the upload.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/file.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/file.html"/>
 
   <tc:section id="s1" label="Basics">
     <pre><code class="language-markup">&lt;tc:file label="Upload" value="\#{uploadController.file1}"/></code></pre>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml
index 6340b3f..a9c0504 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/06-validation/00/content-validation.xhtml
@@ -28,10 +28,10 @@
 
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:sheet/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/sheet.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/sheet.html"/>
     |
     <tc:link label="&lt;tc:column/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/column.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/column.html"/></p>
 
   <tc:section label="Required">
     <p>A simple way of validation is the <code>required</code> attribute in some input components.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/form-required.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/form-required.xhtml
index 15fc2f4..7bf55af 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/form-required.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/10-required/form-required.xhtml
@@ -26,7 +26,7 @@
     the validation is deactivated until the value is definitely stored into the model.</p>
   <p>For example, if only the value in 'Inner Form 1' is set, the validation of the other forms are turned off.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/form.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/form.html"/>
 
   <tc:section label="Example">
     <p>Every form in this example is surrounded by a content box.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/form-ajax.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/form-ajax.xhtml
index 501a850..addeb31 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/form-ajax.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/20-ajax/form-ajax.xhtml
@@ -28,7 +28,7 @@
     The form is only used as a naming container.</p>
 
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/form.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/form.html"/>
 
   <tc:section label="Example">
     <p>The structure of this example is similar to the
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/form.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/form.xhtml
index 23a95f6..b0c7d60 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/form.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/08-form/form.xhtml
@@ -29,7 +29,7 @@
     <tc:link label="#{demoBundle.default_command}"
              outcome="/content/20-component/040-command/10-default/default-command.xhtml"/>.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/form.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/form.html"/>
 
   <tc:section label="Example">
     <p>This small example contain two separate forms, each surrounded by a content box.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/10-flow/flow-layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/10-flow/flow-layout.xhtml
index 47eeedd..df918bf 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/10-flow/flow-layout.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/10-flow/flow-layout.xhtml
@@ -25,7 +25,7 @@
   <p>The flow layout can be used with the <code>&lt;tc:flowLayout/></code> tag.
     By default, the content is displayed in a flow layout.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/flowLayout.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/flowLayout.html"/>
 
   <tc:section label="Basics">
     <p>The buttons are displayed successively at the same line.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml
index 060c62b..178ceb5 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/20-flex/flex-layout.xhtml
@@ -26,7 +26,7 @@
     The two most important attributes are <code>columns</code> and <code>rows</code>.
     If both attributes are set, only <code>rows</code> has an effect.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/flexLayout.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/flexLayout.html"/>
 
   <tc:section label="Basics">
     <p>If no attributes set, the behavior of the flex layout is like a flow layout.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/30-segment/segment-layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/30-segment/segment-layout.xhtml
index 79f0681..724ed45 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/30-segment/segment-layout.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/30-segment/segment-layout.xhtml
@@ -27,7 +27,7 @@
     <code>extraSmall</code>, <code>small</code>, <code>medium</code>, <code>large</code> and <code>extraLarge</code>.
     The value is a space separated list. Allowed are '1seg' to '12seg', 'auto' and '1fr'.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/segmentLayout.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/segmentLayout.html"/>
 
   <tc:section label="Basics">
     <p>The following examples show a segment layout with four and three columns
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/40-labeled/labeled-layout.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/40-labeled/labeled-layout.xhtml
index 8baf35a..e4091f2 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/40-labeled/labeled-layout.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/16-layout/40-labeled/labeled-layout.xhtml
@@ -28,16 +28,16 @@
     The following examples use an inputfield to show, how this works.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:in/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/in.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/in.html"/>
     |
     <tc:link label="&lt;tc:flowLayout/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/flowLayout.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/flowLayout.html"/>
     |
     <tc:link label="&lt;tc:flexLayout/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/flexLayout.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/flexLayout.html"/>
     |
     <tc:link label="&lt;tc:segmentLayout/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/segmentLayout.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/segmentLayout.html"/></p>
 
   <tc:section label="Basics">
     <tc:section label="Default value">
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/23-transition/transition.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/23-transition/transition.xhtml
index f64cee4..777a91b 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/23-transition/transition.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/23-transition/transition.xhtml
@@ -27,9 +27,9 @@
     It shows a loading animation if the site don't respond in a certain amount of time.
     By default, the value is 'true'.</p>
   <p>Tag Library Documentation:
-    <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/link.html"/>
+    <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/link.html"/>
     |
-    <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/></p>
+    <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png" link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/button.html"/></p>
 
   <tc:section label="Basics">
     <p>By following one of the links, the site waits five seconds.
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/behavior.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/behavior.xhtml
index d233191..8dd51c4 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/behavior.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/30-behavior/behavior.xhtml
@@ -33,7 +33,7 @@
              link="http://docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/facelets/f/ajax.html"/>
     |
     <tc:link label="&lt;tc:event/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/event.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/event.html"/></p>
 
   <tc:section label="Basic examples">
     <p>Type a text into the input field. After leaving the input field, the given text is shown in the output field.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml
index 1871062..6a33a79 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/65-accessKey/accessKey.xhtml
@@ -34,16 +34,16 @@
              link="https://developer.mozilla.org/de/docs/Web/HTML/Global_attributes/accesskey"/>.</p>
   <p>Tag Library Documentation:
     <tc:link label="&lt;tc:button/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/button.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/button.html"/>
     |
     <tc:link label="&lt;tc:checkbox/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/checkbox.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/checkbox.html"/>
     |
     <tc:link label="&lt;tc:link/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/link.html"/>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/link.html"/>
     |
     <tc:link label="&lt;tc:label/>" image="#{request.contextPath}/image/feather-leaf.png"
-             link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/label.html"/></p>
+             link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/label.html"/></p>
 
   <tc:section label="Basics">
     <p>The accesskey is set to 'a'. Notice, that the 'A' in the label of the button has an underscore.</p>
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/70-dataAttribute/dataAttribute.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/70-dataAttribute/dataAttribute.xhtml
index 35d59b8..074e872 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/70-dataAttribute/dataAttribute.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/30-concept/70-dataAttribute/dataAttribute.xhtml
@@ -27,7 +27,7 @@
     <code class="language-markup">&lt;tc:dataAttribute/></code>.
     The data attribute is added to the parent and can be used by scripts.</p>
   <tc:link label="Tag Library Documentation" image="#{request.contextPath}/image/feather-leaf.png"
-           link="#{demoBundle.tagDocUrl}/#{info.stableVersion}/tld/tc/dataAttribute.html"/>
+           link="#{demoBundle.tagDocUrl}/#{apiController.currentRelease}/tld/tc/dataAttribute.html"/>
 
   <tc:section label="Example">
     <p>Each box contains a panel with a data attribute.