You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by gi...@apache.org on 2020/02/03 14:52:20 UTC

[celix-site] branch asf-site updated: Updated site from master (6d0706cc0147563bbbac61fb5ec3031dafe3eb74)

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

git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/celix-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 5bc3dae  Updated site from master (6d0706cc0147563bbbac61fb5ec3031dafe3eb74)
5bc3dae is described below

commit 5bc3dae02ef60d2d8d140ba153f76e8854407a8c
Author: jenkins <bu...@apache.org>
AuthorDate: Mon Feb 3 14:52:15 2020 +0000

    Updated site from master (6d0706cc0147563bbbac61fb5ec3031dafe3eb74)
---
 content/404.html                                   |  19 +-
 content/contributing.html                          |  23 +-
 content/contributing/index.xml                     |  49 +-
 content/contributing/releasing.html                | 166 ++--
 .../source-and-builds.html}                        | 109 ++-
 content/contributing/submitting-patches.html       |  93 +-
 content/contributing/volunteers.html               |  54 +-
 content/contributing/youatcelix.html               |  36 +-
 content/docs.html                                  |  23 +-
 content/docs/{ => 2.1.0}/celix/CHANGES.html        |  54 +-
 content/docs/{ => 2.1.0}/celix/README.html         |  44 +-
 .../{ => 2.1.0}/celix/config_admin/readme.html     |  57 +-
 .../celix/dependency_manager/readme.html           | 100 +--
 .../celix/dependency_manager_cxx/readme.html       |  60 +-
 .../{ => 2.1.0}/celix/deployment_admin/README.html |  43 +-
 .../{ => 2.1.0}/celix/device_access/README.html    |  42 +-
 .../celix/documents/building/readme.html           | 108 ++-
 .../celix/documents/cmake_commands/readme.html     | 160 ++--
 .../getting_started/creating_a_simple_bundle.html  | 250 +++---
 .../celix/documents/getting_started/readme.html    |  43 +-
 .../getting_started/using_services_with_c.html     | 346 ++++---
 .../getting_started/using_services_with_cxx.html   | 442 +++++----
 .../{ => 2.1.0}/celix/documents/intro/readme.html  |  94 +-
 .../celix/documents/roadmap/api_v3/readme.html     | 127 +--
 .../celix/documents/roadmap/improvement_ideas.html |  54 +-
 .../celix/documents/roadmap/roadmap.html           | 103 +--
 .../celix/documents/subprojects/readme.html        |  45 +-
 content/docs/{ => 2.1.0}/celix/etcdlib/README.html |  83 +-
 .../docs/{ => 2.1.0}/celix/launcher/README.html    |  43 +-
 .../docs/{ => 2.1.0}/celix/log_service/README.html |  43 +-
 .../docs/{ => 2.1.0}/celix/log_writer/README.html  |  40 +-
 content/docs/{ => 2.1.0}/celix/pubsub/README.html  |  68 +-
 .../celix/pubsub/examples/keys/README.html         |  60 +-
 .../celix/pubsub/pubsub_admin_udp_mc/README.html   |  70 +-
 .../{ => 2.1.0}/celix/remote_services/README.html  | 214 +++--
 .../remote_services/discovery_etcd/README.html     |  42 +-
 .../remote_service_admin/README.html               |  44 +-
 .../remote_services/topology_manager/README.html   |  40 +-
 .../{ => 2.1.0}/celix/remote_shell/README.html     |  42 +-
 content/docs/{ => 2.1.0}/celix/shell/README.html   |  45 +-
 .../docs/{ => 2.1.0}/celix/shell_tui/README.html   |  42 +-
 content/docs/{ => 2.1.0}/celix/utils/README.html   |  41 +-
 .../celix/utils/docs/thpool/Design.html            |  41 +-
 .../{ => 2.1.0}/celix/utils/docs/thpool/FAQ.html   |  47 +-
 .../celix/utils/docs/thpool/README.html            |  72 +-
 .../utils/public/include/memstream/README.html     |  63 +-
 content/docs/{ => 2.1.0}/docs.html                 |  49 +-
 content/docs/2.2.0/celix/CHANGES.html              | 432 +++++++++
 content/docs/{ => 2.2.0}/celix/README.html         |  54 +-
 .../celix/bundles}/deployment_admin/README.html    |  65 +-
 .../celix/bundles}/device_access/README.html       |  57 +-
 .../device_access/example/base_driver}/README.html |  56 +-
 .../example/consuming_driver}/README.html          |  61 +-
 .../example/refining_driver}/README.html           |  77 +-
 .../celix/bundles/http_admin}/README.html          |  75 +-
 .../celix/bundles/logging}/log_service/README.html |  74 +-
 .../celix/bundles/logging}/log_writer/README.html  |  66 +-
 .../celix/bundles}/pubsub/README.html              |  76 +-
 .../bundles}/pubsub/examples/keys/README.html      |  62 +-
 .../pubsub/pubsub_admin_udp_mc/README.html         |  82 +-
 .../celix/bundles}/remote_services/README.html     | 241 ++---
 .../remote_services/discovery_etcd/README.html     |  56 +-
 .../remote_service_admin_dfi}/README.html          |  60 +-
 .../remote_services_api}/README.html               |  66 +-
 .../bundles/remote_services/rsa_spi}/README.html   |  66 +-
 .../remote_services/topology_manager/README.html   |  42 +-
 .../celix/bundles/shell}/remote_shell/README.html  |  44 +-
 .../celix/bundles/shell}/shell/README.html         |  61 +-
 .../celix/bundles/shell}/shell_tui/README.html     |  51 +-
 .../celix/bundles/shell/shell_wui}/README.html     |  57 +-
 .../celix/documents/building/README.html}          | 124 +--
 .../celix/documents/cmake_commands/README.html     | 534 +++++++++++
 .../celix/documents/getting_started/README.html}   |  47 +-
 .../getting_started/creating_a_simple_bundle.html  | 309 +++----
 .../getting_started/using_services_with_c.html     | 352 ++++----
 .../getting_started/using_services_with_cxx.html   | 466 +++++-----
 .../celix/documents/intro/README.html}             | 108 +--
 .../celix/documents/subprojects/README.html}       |  81 +-
 .../celix/examples/celix-examples}/README.html     |  58 +-
 .../celix-examples/http_example}/README.html       |  64 +-
 .../celix-examples/services_example_c}/README.html |  99 ++-
 .../celix/libs/dependency_manager/README.html}     | 120 ++-
 .../celix/libs/dependency_manager/TODO.html}       |  75 +-
 .../celix/libs/dependency_manager_cxx/README.html} |  74 +-
 .../celix/libs/dependency_manager_cxx/TODO.html}   |  75 +-
 .../celix/libs}/etcdlib/README.html                |  87 +-
 .../celix/libs}/launcher/README.html               |  67 +-
 .../{celix => 2.2.0/celix/libs}/utils/README.html  |  46 +-
 .../celix/libs}/utils/docs/thpool/Design.html      |  43 +-
 .../celix/libs}/utils/docs/thpool/FAQ.html         |  55 +-
 .../celix/libs}/utils/docs/thpool/README.html      |  74 +-
 .../libs/utils}/include/memstream/README.html      |  65 +-
 .../celix/misc/experimental}/README.html           |  58 +-
 .../experimental/bundles/config_admin/README.html} |  63 +-
 content/docs/{ => 2.2.0}/docs.html                 |  53 +-
 content/docs/index.xml                             | 895 +++++++++++++++----
 content/download.html                              |  41 +-
 content/index.html                                 |  23 +-
 content/index.xml                                  | 989 ++++++++++++++++-----
 content/robots.txt                                 |   2 +-
 content/sitemap.xml                                | 443 ++++++---
 content/support.html                               |  23 +-
 content/support/index.xml                          |  20 +-
 content/support/issue-tracking.html                |  51 +-
 content/support/mailing-list.html                  |  49 +-
 105 files changed, 7010 insertions(+), 4637 deletions(-)

diff --git a/content/404.html b/content/404.html
index de538df..38be0cb 100644
--- a/content/404.html
+++ b/content/404.html
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
diff --git a/content/contributing.html b/content/contributing.html
index 5e11e7e..1904d0b 100644
--- a/content/contributing.html
+++ b/content/contributing.html
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,7 +98,9 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                    <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/" title="Edit this page on GitHub">Edit on GitHub</a>
+                    
+                        <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/" title="Edit this page on GitHub">Edit on GitHub</a>
+                    
 
                     
 	
diff --git a/content/contributing/index.xml b/content/contributing/index.xml
index 47307ec..761c8f0 100644
--- a/content/contributing/index.xml
+++ b/content/contributing/index.xml
@@ -1,57 +1,64 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
   <channel>
     <title>Contributings on Apache Celix</title>
-    <link>http://celix.apache.org/contributing.html</link>
+    <link>https://celix.apache.org/contributing.html</link>
     <description>Recent content in Contributings on Apache Celix</description>
     <generator>Hugo -- gohugo.io</generator>
     <language>en</language>
     
-	<atom:link href="http://celix.apache.org/contributing/index.xml" rel="self" type="application/rss+xml" />
+	<atom:link href="https://celix.apache.org/contributing/index.xml" rel="self" type="application/rss+xml" />
     
     
     <item>
       <title>Releasing Process</title>
-      <link>http://celix.apache.org/contributing/releasing.html</link>
+      <link>https://celix.apache.org/contributing/releasing.html</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
-      <guid>http://celix.apache.org/contributing/releasing.html</guid>
+      <guid>https://celix.apache.org/contributing/releasing.html</guid>
       <description>Releasing Apache Celix Note: This information is only of use to Apache Celix Release Managers!
 Steps to follow:
-HAHAHUGOSHORTCODE-TOC0-HBHB
-Interesting links:
- Apache Release Guide Apache Release Signing Apache RAT Apache OpenPGP HowTo  Create signing KEYS Each Release Manager must have his own signing keys. Information about and instruction for the generation of these keys can be found on the Signing Releases page and How To OpenPGP. Be sure to follow the information provided on that site and its references.</description>
+ Create signing KEYS Create release branch Update release related files Compile and test Create, sign and publish artifacts Run the vote Post the vote results Vote Passed  Merge to master and create GIT tag Roll out release artifacts Announce the release     Interesting links:
+ Apache Release Guide Apache Release Signing Apache RAT Apache OpenPGP HowTo  Create signing KEYS Each Release Manager must have his own signing keys.</description>
+    </item>
+    
+    <item>
+      <title>Source code and builds</title>
+      <link>https://celix.apache.org/contributing/source-and-builds.html</link>
+      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
+      
+      <guid>https://celix.apache.org/contributing/source-and-builds.html</guid>
+      <description>Source code and builds  Celix source repository  Building and using Celix   Website source repository  Building the website     Celix source repository Besides the archives offered on the download page, Celix uses a source code repository hosted on both Apache and GitHub environments for development. This repository is mirrored and is our one-and-only development repository.
+With Git installed, obtaining a working copy of the Celix codebase is as simple as</description>
     </item>
     
     <item>
       <title>Submitting patches</title>
-      <link>http://celix.apache.org/contributing/submitting-patches.html</link>
+      <link>https://celix.apache.org/contributing/submitting-patches.html</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
-      <guid>http://celix.apache.org/contributing/submitting-patches.html</guid>
-      <description>Submitting patches HAHAHUGOSHORTCODE-TOC0-HBHB
-Contributing with GitHub Using the GitHub mirror is the simplest way to contribute to Apache Celix if you are not a member of the Celix Committers group.
-First you must have an account created at GitHub to be able perform the next step. If you don&amp;rsquo;t, go ahead and create one just right now! Please remember to setup SSH keys and test them! You don&amp;rsquo;t have to use SSH Keys if you are using the HTTPS url.</description>
+      <guid>https://celix.apache.org/contributing/submitting-patches.html</guid>
+      <description>Submitting patches  Contributing with GitHub Committers Non-committers Further reading   Contributing with GitHub Using the GitHub mirror is the simplest way to contribute to Apache Celix if you are not a member of the Celix Committers group.
+First you must have an account created at GitHub to be able perform the next step. If you don&amp;rsquo;t, go ahead and create one just right now! Please remember to setup SSH keys and test them!</description>
     </item>
     
     <item>
       <title>Volunteers</title>
-      <link>http://celix.apache.org/contributing/volunteers.html</link>
+      <link>https://celix.apache.org/contributing/volunteers.html</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
-      <guid>http://celix.apache.org/contributing/volunteers.html</guid>
-      <description>Volunteers HAHAHUGOSHORTCODE-TOC0-HBHB
-The project consists of a diverse group of volunteers who share common values regarding collaborative, community-based open source development.
-Project Management Committee Members Committee members are listed in the chronological order, according to the date each person become a committer or committee member.
- Alexander Broekhuis (abroekhuis at apache.org) Marcel Offermans (marss at apache.org) Konstantin I Boudnik (cos at apache.org) Pepijn Noltes, Chairman (pnoltes at apache.org) Roman Shaposhnik (rvs at apache.</description>
+      <guid>https://celix.apache.org/contributing/volunteers.html</guid>
+      <description>Volunteers  Project Management Committee Members Committers   The project consists of a diverse group of volunteers who share common values regarding collaborative, community-based open source development.
+Project Management Committee Members Committee members are listed in the chronological order, according to the date each person became a committee member.
+ Alexander Broekhuis (abroekhuis at apache.org) Marcel Offermans (marss at apache.org) Konstantin I Boudnik (cos at apache.org) Pepijn Noltes (pnoltes at apache.</description>
     </item>
     
     <item>
       <title>You at Celix</title>
-      <link>http://celix.apache.org/contributing/youatcelix.html</link>
+      <link>https://celix.apache.org/contributing/youatcelix.html</link>
       <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
       
-      <guid>http://celix.apache.org/contributing/youatcelix.html</guid>
+      <guid>https://celix.apache.org/contributing/youatcelix.html</guid>
       <description>You at Apache Celix We are happy you are considering to contribute to Apache Celix and we are definitely looking forward to your work.
 We all are a happy group of volunteers and much often work on Celix in our free time. We are not getting any money for our work from the Apache Software Foundation (nor does any other project receive money) and most of us are not paid by a company for working on Celix.</description>
     </item>
diff --git a/content/contributing/releasing.html b/content/contributing/releasing.html
index 244452f..f1604ec 100644
--- a/content/contributing/releasing.html
+++ b/content/contributing/releasing.html
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown active">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,107 +98,88 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                    <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/contributing/releasing.md" title="Edit this page on GitHub">Edit on GitHub</a>
-
                     
-	
-
-<h1 id="releasing-apache-celix">Releasing Apache Celix</h1>
+                        <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/contributing/releasing.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                    
 
+                    
+	<h1 id="releasing-apache-celix">Releasing Apache Celix</h1>
 <p>Note: This information is only of use to Apache Celix Release Managers!</p>
-
 <p>Steps to follow:</p>
-
 <nav id="TableOfContents">
-<ul>
-<li><a href="#releasing-apache-celix">Releasing Apache Celix</a>
-<ul>
-<li><a href="#create-signing-keys">Create signing KEYS</a></li>
-<li><a href="#create-release-branch">Create release branch</a></li>
-<li><a href="#update-release-related-files">Update release related files</a></li>
-<li><a href="#compile-and-test">Compile and test</a></li>
-<li><a href="#create-sign-and-publish-artifacts">Create, sign and publish artifacts</a></li>
-<li><a href="#run-the-vote">Run the vote</a></li>
-<li><a href="#post-the-vote-results">Post the vote results</a></li>
-<li><a href="#vote-passed">Vote Passed</a>
-<ul>
-<li><a href="#merge-to-master-and-create-git-tag">Merge to master and create GIT tag</a></li>
-<li><a href="#roll-out-release-artifacts">Roll out release artifacts</a></li>
-<li><a href="#announce-the-release">Announce the release</a></li>
-</ul></li>
-</ul></li>
-</ul>
+  <ul>
+    <li><a href="#create-signing-keys">Create signing KEYS</a></li>
+    <li><a href="#create-release-branch">Create release branch</a></li>
+    <li><a href="#update-release-related-files">Update release related files</a></li>
+    <li><a href="#compile-and-test">Compile and test</a></li>
+    <li><a href="#create-sign-and-publish-artifacts">Create, sign and publish artifacts</a></li>
+    <li><a href="#run-the-vote">Run the vote</a></li>
+    <li><a href="#post-the-vote-results">Post the vote results</a></li>
+    <li><a href="#vote-passed">Vote Passed</a>
+      <ul>
+        <li><a href="#merge-to-master-and-create-git-tag">Merge to master and create GIT tag</a></li>
+        <li><a href="#roll-out-release-artifacts">Roll out release artifacts</a></li>
+        <li><a href="#announce-the-release">Announce the release</a></li>
+      </ul>
+    </li>
+  </ul>
 </nav>
-
 <p>Interesting links:</p>
-
 <ul>
 <li><a href="http://www.apache.org/dev/release.html">Apache Release Guide</a></li>
 <li><a href="http://www.apache.org/dev/release-signing.html">Apache Release Signing</a></li>
 <li><a href="http://creadur.apache.org/rat/apache-rat/index.html">Apache RAT</a></li>
 <li><a href="http://www.apache.org/dev/openpgp.html">Apache OpenPGP HowTo</a></li>
 </ul>
-
 <h2 id="create-signing-keys">Create signing KEYS</h2>
-
 <p>Each Release Manager must have his own signing keys. Information about and instruction for the generation
 of these keys can be found on the <a href="http://www.apache.org/dev/release-signing.html#generate">Signing Releases page</a>
 and <a href="http://www.apache.org/dev/openpgp.html#generate-key">How To OpenPGP</a>. Be sure to follow the information
 provided on that site and its references.</p>
-
 <p>The generated key can be uploaded to the <a href="http://pgp.mit.edu/">MIT PGP Public Key Server</a>.</p>
-
 <p>Next, the public key signature must be added to the KEYS file. Again, read the <a href="http://www.apache.org/dev/release-signing.html#keys-policy">Signing Releases page</a>
 for more information. This updated file needs to be uploaded to GIT, be sure to upload it to:</p>
-
 <ul>
 <li><a href="https://dist.apache.org/repos/dist/dev/celix/KEYS">Apache Celix release development area KEYS</a></li>
 <li><a href="https://dist.apache.org/repos/dist/release/celix/KEYS">Apache Celix release distribution area KEYS</a></li>
 </ul>
-
 <h2 id="create-release-branch">Create release branch</h2>
-
 <p>A release will be prepared in a release branch. Normally this is branch created from the develop.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">git checkout develop
 git checkout -b release/celix-X.Y.Z
-git push origin release/celix-X.Y.Z</code></pre></div>
-<h2 id="update-release-related-files">Update release related files</h2>
-
+git push origin release/celix-X.Y.Z
+</code></pre></div><h2 id="update-release-related-files">Update release related files</h2>
 <p>For every release the related files must be updated. The following files are relevant:</p>
-
 <ul>
 <li>CHANGES
-
 <ul>
 <li>Add a list of fixed issues which can be created using JIRA.</li>
-</ul></li>
+</ul>
+</li>
 <li>RELEASE_NOTES
-
 <ul>
 <li>Add additional notes regarding this release, eg known short comings.</li>
-</ul></li>
+</ul>
+</li>
 <li>BUILDING
-
 <ul>
 <li>Even though the BUILDING file doesn&rsquo;t have any specific release information, it should be verified before making a release.</li>
-</ul></li>
+</ul>
+</li>
 <li>NOTICE
-
 <ul>
 <li>If needed, add any new license related information to this file.</li>
-</ul></li>
 </ul>
-
+</li>
+</ul>
 <p>Besides this information, the version needs to be bumped. Even though every bundle has its own version, a release is made with one
 overall version. This version is defined in the top-level CMakeLists.txt file. Update the following pieces:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C">set(CELIX_MAJOR <span style="color:#b44">&#34;X&#34;</span>)
-set(CELIX_MINOR <span style="color:#b44">&#34;Y&#34;</span>)
-set(CELIX_MICRO <span style="color:#b44">&#34;Z&#34;</span>)</code></pre></div>
-<p class="alert alert-primary">Note: The DEFAULT_VERSION property is used as default version for new bundles and as 
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C">set(CELIX_MAJOR <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">X</span><span style="color:#b44">&#34;</span>)
+set(CELIX_MINOR <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Y</span><span style="color:#b44">&#34;</span>)
+set(CELIX_MICRO <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Z</span><span style="color:#b44">&#34;</span>)
+</code></pre></div><p class="alert alert-primary">Note: The DEFAULT_VERSION property is used as default version for new bundles and as 
 such does not need to be updated when making a release.</p>
-
 <h2 id="compile-and-test">Compile and test</h2>
-
 <p>Before creating a branch, be sure that the source compiles and tests run successfully. If there are any known shortcomings,
 make sure they are listed in the RELEASE_NOTES. Details for compiling and testing are available in the BUILDING file.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#080;font-style:italic"># Create a directory as sibling of the celix release directory</span>
@@ -200,8 +190,8 @@ $ <span style="color:#a2f">cd</span> celix-build
 $ ccmake ../celix
 $ make
 $ make deploy
-$ make test</code></pre></div>
-<p>Also verify that the provides examples work as expected. If needed ask other committers to test parts.</p>
+$ make <span style="color:#a2f">test</span>
+</code></pre></div><p>Also verify that the provides examples work as expected. If needed ask other committers to test parts.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#080;font-style:italic"># Go to the deploy directory to see all examples</span>
 $ <span style="color:#a2f">cd</span> deploy
 
@@ -211,19 +201,17 @@ $ sh run.sh
 
 <span style="color:#080;font-style:italic"># Depending on the example the output might be different. Most examples provide a shell to inspect the framework.</span>
 <span style="color:#080;font-style:italic"># To list the commands use the &#34;help&#34; command.</span>
--&gt; help</code></pre></div>
-<p>After verifying the build, run Apache RAT to check for any licensing problems. If Apache RAT is configured in the CMake build the &ldquo;rat&rdquo; target can be used to run the check.</p>
+-&gt; <span style="color:#a2f">help</span>
+</code></pre></div><p>After verifying the build, run Apache RAT to check for any licensing problems. If Apache RAT is configured in the CMake build the &ldquo;rat&rdquo; target can be used to run the check.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#080;font-style:italic"># From the celix-build directory</span>
 <span style="color:#080;font-style:italic"># Run CMake to set the APACHE_RAT library (path to the JAR file).</span>
 $ ccmake ../celix
 <span style="color:#080;font-style:italic"># Run RAT</span>
-$ make rat</code></pre></div>
-<p>Apache RAT should not raise any concerns, if there are, check the source files for a license header. If it is a false positive update
+$ make rat
+</code></pre></div><p>Apache RAT should not raise any concerns, if there are, check the source files for a license header. If it is a false positive update
 the rat-excludes.txt file in the root of the project. Be sure it is a false positive! If in doubt, ask the mailing list! Third party
 licenses may need to be mentioned in the NOTICE file.</p>
-
 <h2 id="create-sign-and-publish-artifacts">Create, sign and publish artifacts</h2>
-
 <p>Since Celix only releases source artifacts, creating the artifact is simple and straightforward
 First verify that all changes are committed to the release branch and the branch is pushed to github</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#080;font-style:italic"># Create symbolic link so the archive has a directory with version information</span>
@@ -233,8 +221,8 @@ $ ln -s celix celix-X.Y.Z
 $ tar --exclude<span style="color:#666">=</span><span style="color:#b44">&#34;.*&#34;</span> -hczf celix-X.Y.Z.tar.gz celix-X.Y.Z
 
 <span style="color:#080;font-style:italic"># The create symbolic link can be removed</span>
-$ celix celix-X.Y.Z</code></pre></div>
-<p>After creating the artifact, the file has to be signed. More information about signing can be found at
+$ celix celix-X.Y.Z
+</code></pre></div><p>After creating the artifact, the file has to be signed. More information about signing can be found at
 <a href="http://www.apache.org/dev/release-signing.html">Release signing</a>.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#080;font-style:italic"># Generate MD5 checksum</span>
 $ md5 celix-X.Y.Z.tar.gz &gt; celix-X.Y.Z.tar.gz.md5
@@ -243,15 +231,11 @@ $ md5 celix-X.Y.Z.tar.gz &gt; celix-X.Y.Z.tar.gz.md5
 $ gpg --print-md SHA512 celix-X.Y.Z.tar.gz &gt; celix-X.Y.Z.tar.gz.sha
 
 <span style="color:#080;font-style:italic"># Generate ASCII signature</span>
-$ gpg --armor --output celix-X.Y.Z.tar.gz.asc --detach-sig celix-X.Y.Z.tar.gz</code></pre></div>
-<p>Copy the archive of the source to the <a href="https://dist.apache.org/repos/dist/dev/celix">Apache Celix release development area</a> (using SVN).</p>
-
+$ gpg --armor --output celix-X.Y.Z.tar.gz.asc --detach-sig celix-X.Y.Z.tar.gz
+</code></pre></div><p>Copy the archive of the source to the <a href="https://dist.apache.org/repos/dist/dev/celix">Apache Celix release development area</a> (using SVN).</p>
 <p>See the <a href="http://www.apache.org/dev/release.html#host-rc">Apache Release Guide</a> for more information.</p>
-
 <h2 id="run-the-vote">Run the vote</h2>
-
 <p>Before a release is official a vote has to be held. More information on voting can be found on <a href="http://www.apache.org/foundation/voting.html">Apache Voting Process</a>.</p>
-
 <p>The first vote has to be done on the public <a href="/support/mailing-list.html">mailing list</a> of the project. The following template must be used for this vote:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-text" data-lang="text">To: dev@celix.apache.org
 Subject: [VOTE] Release Celix version X.Y.Z
@@ -285,14 +269,11 @@ at-least 3 binding +1 votes and more +1 votes than -1 votes).
 If this release is approved I will promote it to an official release
 (e.g. move from dist/dev to dist/release and tagging the release in git)
 
-This vote will be open for at least 72 hours.</code></pre></div>
-<p>After this first vote the results must be posted to the &ldquo;dev&rdquo; list, see below for more information.</p>
-
+This vote will be open for at least 72 hours.
+</code></pre></div><p>After this first vote the results must be posted to the &ldquo;dev&rdquo; list, see below for more information.</p>
 <p class="alert alert-primary">Note: Be sure to use the [VOTE] tag, this is used by the automated vote tracking 
 system to keep track of outstanding vote threads.</p>
-
 <h2 id="post-the-vote-results">Post the vote results</h2>
-
 <p>As mentioned before, after each vote the results must be posted to the corresponding list. This &ldquo;Result&rdquo; vote contains the number
 of votes made, including whether a vote is binding or not. For a successful vote the following template can be used.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-text" data-lang="text">To: dev@celix.apache.org
@@ -310,17 +291,13 @@ release branch will be merged with master and a 2.1.0 tag will be created.
 After the mirroring period the news &amp; downloads of the website will be
 updated and the release will be announced.
 
-Thanks for voting.</code></pre></div>
-<p class="alert alert-primary">Note: Be sure to post the vote result with the same topic as the original message. Also 
+Thanks for voting.
+</code></pre></div><p class="alert alert-primary">Note: Be sure to post the vote result with the same topic as the original message. Also 
 prepend the subject with [RESULT]. This is, again, needed to be able to keep track of vote threads.</p>
-
 <h2 id="vote-passed">Vote Passed</h2>
-
 <p>If the vote is passed sucessfully the release branch can be merged to master, a release tag needs to be created, the release must be moved from the &ldquo;dev&rdquo; area to the &ldquo;release&rdquo; area
 and the release can be announced.</p>
-
 <h3 id="merge-to-master-and-create-git-tag">Merge to master and create GIT tag</h3>
-
 <p>After changing all files a tag for the new release must be made. Before doing so, make sure all changed files are committed.
 The release branch needs to be merged into master, a tag - named like rel/celix-X.Y.Z - needs to created and all the changes needs to merged with develop.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">$ git checkout master
@@ -338,29 +315,20 @@ $ git tag -s rel/celix-X.Y.Z -m <span style="color:#b44">&#39;Celix release X.Y.
 $ git push origin rel/celix-X.Y.Z
 
 $ git checkout develop
-$ git merge master</code></pre></div>
-<h3 id="roll-out-release-artifacts">Roll out release artifacts</h3>
-
+$ git merge master
+</code></pre></div><h3 id="roll-out-release-artifacts">Roll out release artifacts</h3>
 <p>When a release is moved from the &ldquo;dev&rdquo; area to &ldquo;release&rdquo; area. The automated
 svnpubsub will move the artifact to the correct server for mirroring. Mirroring typically can take up to 24 hours.</p>
-
 <p>Besides uploading the new release, the old release should be archived. Since archiving is already automated,
 it is only needed to delete the previous version from the release area. See the
 <a href="http://www.apache.org/dev/release.html#when-to-archive">Apache Release Guide</a> for more information.</p>
-
 <p>See the <a href="http://www.apache.org/dev/release.html#upload-ci">Apache Release Guide</a> for more information.</p>
-
 <p>After these 24 hours the release can be announced.</p>
-
 <h3 id="announce-the-release">Announce the release</h3>
-
 <p>Update website&rsquo;s News and Download sections to include the new release.</p>
-
 <p>On the &ldquo;Download&rdquo; page, the old release can be replaced with the new one, there is no need to keep a link to archived versions.
 The &ldquo;News&rdquo; section can simply be extended with an additional entry.</p>
-
-<p>Additionally it is a good idea to post a message to &ldquo;announce@apache.org&rdquo;.</p>
-
+<p>Additionally it is a good idea to post a message to &ldquo;<a href="mailto:announce@apache.org">announce@apache.org</a>&rdquo;.</p>
 <p>The following template must be used:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-text" data-lang="text">To: announce@apache.org, dev@celix.apache.org
 Subject: [ANNOUNCE] Apache Celix X.Y.Z released
@@ -378,8 +346,8 @@ The full change log is available here:
 
 We welcome your help and feedback. For more information on how to report problems, and to get involved, visit the project website at http://celix.apache.org/
 
-The Apache Celix Team</code></pre></div>
-<p class="alert alert-primary">Note: the email must be sent from an @apache.org address</p>
+The Apache Celix Team
+</code></pre></div><p class="alert alert-primary">Note: the email must be sent from an @apache.org address</p>
 
 
                 </div>
diff --git a/content/docs/celix/remote_services/remote_service_admin/README.html b/content/contributing/source-and-builds.html
similarity index 53%
copy from content/docs/celix/remote_services/remote_service_admin/README.html
copy to content/contributing/source-and-builds.html
index 53afc9f..42eb8c8 100644
--- a/content/docs/celix/remote_services/remote_service_admin/README.html
+++ b/content/contributing/source-and-builds.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Source code and builds / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
-                </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
+                </li>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,43 +98,59 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/remote_services/remote_service_admin/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
-
                     
-	
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-   
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-<h2 id="remote-service-admin">Remote Service Admin</h2>
-
-<p>The Remote Service Admin (RSA) provides the mechanisms to import and export services when instructed to do so by the Topology Manager.</p>
-
-<p>To delegate method calls to the actual service implementation, the RSA_SHM and the RSA_HTTP are using &ldquo;endpoint/proxy&rdquo; bundles, which has all the knowledge about the marshalling and unmarshalling of data for the service. The RSA_DFI implementation combines a <a href="https://en.wikipedia.org/wiki/Foreign_function_interface">foreign function interface</a> technique together with manualy created descriptors.</p>
-
-<p>Note that this folder contains code commonly used by the RSA implementations and therefore does not include any CMAKE configuration.</p>
-
-<h6 id="properties">Properties</h6>
+                        <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/contributing/source-and-builds.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                    
 
-<pre><code>ENDPOINTS                defines the relative directory where endpoints and proxys can be found (default: endpoints)
-CELIX_FRAMEWORK_EXTENDER_PATH  Used in RSA_DFI only. Can be used to define a path to use as an extender path point for the framework bundle. For normal bundles the bundle cache is used. 
-</code></pre>
+                    
+	<h1 id="source-code-and-builds">Source code and builds</h1>
+<nav id="TableOfContents">
+  <ul>
+    <li><a href="#celix-source-repository">Celix source repository</a>
+      <ul>
+        <li><a href="#building-and-using-celix">Building and using Celix</a></li>
+      </ul>
+    </li>
+    <li><a href="#website-source-repository">Website source repository</a>
+      <ul>
+        <li><a href="#building-the-website">Building the website</a></li>
+      </ul>
+    </li>
+  </ul>
+</nav>
+<h2 id="celix-source-repository">Celix source repository</h2>
+<p>Besides the archives offered on the <a href="/download.cgi">download</a> page, Celix uses a source code repository hosted on both
+Apache and GitHub environments for development. This repository is mirrored and is our one-and-only development repository.</p>
+<p>With <a href="http://git-scm.com/">Git</a> installed, obtaining a working copy of the Celix codebase is as simple as</p>
+<pre><code>&gt; git clone https://gitbox.apache.org/repos/asf/celix.git
+</code></pre><p>or from GitHub</p>
+<pre><code>&gt; git clone https://github.com/apache/celix.git
+</code></pre><p>For more about using version control systems at Apache, see the ASF&rsquo;s
+<a href="http://www.apache.org/dev/#version-control">Source Code Repositories</a> page.</p>
+<h3 id="building-and-using-celix">Building and using Celix</h3>
+<p>How to build and use Celix is described within our &lsquo;Docs&rsquo; section which can be found <a href="/docs/2.2.0/docs.html">here</a> for the latest release.</p>
+<h2 id="website-source-repository">Website source repository</h2>
+<p>The website Celix provides - <a href="https://celix.apache.org">https://celix.apache.org</a> - is mostly written in Markdown and build using <a href="https://gohugo.io/">Hugo</a>.
+The website source code repository can be obtained using</p>
+<pre><code>&gt; git clone https://gitbox.apache.org/repos/asf/celix-site.git
+</code></pre><p>or from GitHub</p>
+<pre><code>&gt; git clone https://github.com/apache/celix-site.git
+</code></pre><h3 id="building-the-website">Building the website</h3>
+<p>To generate the static website, execute <code>hugo</code> to generate and serve the website on <code>localhost:1313</code>.</p>
+<p>During development, it may be useful to run an incremental build. For this to work, execute <code>hugo server -D</code> to
+continuously generate and serve the website on <code>localhost:1313</code>.</p>
+<p>After making some changes and being ready to submit the work a pull request against the <code>celix-site</code> repository can be
+created. The celix-site repository has <a href="https://www.netlify.com">Netlify</a> enabled meaning a bot will comment with a link
+to preview the actual site. For example the following pull request: <a href="https://github.com/apache/celix-site/pull/7#issuecomment-510947939">https://github.com/apache/celix-site/pull/7</a>.
+Per pull request a preview will be generated so new contributors are able to preview the generated site very quickly and
+reviewing new contributions will therefore be easier as well.</p>
+<a href="https://www.netlify.com">
+  <img src="https://www.netlify.com/img/global/badges/netlify-color-accent.svg"/>
+</a>
+<br/>
+<br/>
+<p>After merging the change back to the <code>master</code> branch, <a href="https://builds.apache.org/job/celix-site/">Jenkins</a>
+will be triggered for deploying the site to <a href="https://celix.apache.org">https://celix.apache.org</a>.</p>
 
 
                 </div>
diff --git a/content/contributing/submitting-patches.html b/content/contributing/submitting-patches.html
index fb4e9e3..fe273ac 100644
--- a/content/contributing/submitting-patches.html
+++ b/content/contributing/submitting-patches.html
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown active">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,142 +98,92 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                    <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/contributing/submitting-patches.md" title="Edit this page on GitHub">Edit on GitHub</a>
-
                     
-	
-
-<h1 id="submitting-patches">Submitting patches</h1>
+                        <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/contributing/submitting-patches.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                    
 
+                    
+	<h1 id="submitting-patches">Submitting patches</h1>
 <nav id="TableOfContents">
-<ul>
-<li><a href="#submitting-patches">Submitting patches</a>
-<ul>
-<li><a href="#contributing-with-github">Contributing with GitHub</a></li>
-<li><a href="#committers">Committers</a></li>
-<li><a href="#non-committers">Non-committers</a></li>
-<li><a href="#further-reading">Further reading</a></li>
-</ul></li>
-</ul>
+  <ul>
+    <li><a href="#contributing-with-github">Contributing with GitHub</a></li>
+    <li><a href="#committers">Committers</a></li>
+    <li><a href="#non-committers">Non-committers</a></li>
+    <li><a href="#further-reading">Further reading</a></li>
+  </ul>
 </nav>
-
 <h2 id="contributing-with-github">Contributing with GitHub</h2>
-
 <p>Using the GitHub mirror is the simplest way to contribute to Apache Celix if you are not a member
 of the Celix Committers group.</p>
-
 <p>First you must have an account created at GitHub to be able perform the next step. If you don&rsquo;t,
 go ahead and create one just right now! Please remember to setup
 <a href="https://help.github.com/articles/generating-ssh-keys">SSH keys</a> and test them! You don&rsquo;t have to use SSH Keys
 if you are using the HTTPS url. In this case git simply uses user/password authentication.</p>
-
 <p>When ready go to <a href="https://github.com/apache/celix">https://github.com/apache/celix</a> and click <code>Fork</code> button
 in top right corner. This will fork the Apache Celix&rsquo; repository and will create your private (but public) repository
 with the source code.</p>
-
 <p>Next step is to clone the original repo locally</p>
-
 <pre><code>git clone https://github.com/apache/celix.git
 </code></pre>
-
 <p>This will be an <code>origin</code>, you cannot push changes to the <code>origin</code> but don&rsquo;t worry, you will use your fork.</p>
-
 <p>Now is time to add your fork as a remote</p>
-
 <pre><code>git remote add fork https://github.com/my-username/celix.git 
 </code></pre>
-
 <p>Right now you should have two remotes defined for the repo, <code>origin</code> and <code>fork</code>, use below command to confirm that</p>
-
 <pre><code>git remote -v 
 </code></pre>
-
 <p>Now you are ready to work with the Apache Celix&rsquo; code base. Start with switching to <code>develop</code> branch</p>
-
 <pre><code>git checkout develop
 </code></pre>
-
 <p>now is time to fetch any changes from remote repository</p>
-
 <pre><code>git fetch
 git pull
 </code></pre>
-
 <p>you should create a branch to keep your changes and it must be done off the <code>develop</code> branch</p>
-
 <pre><code>git checkout -b my-branch
 </code></pre>
-
 <p>Do your changes and commit them to <code>my-branch</code>, when you&rsquo;re done you can push the changes to GitHub, to your fork.</p>
-
 <pre><code>git push -u fork my-branch
 </code></pre>
-
 <p>If you still need to change something, please remember to commit and push changes, but this time you can use just</p>
-
 <pre><code>git push
 </code></pre>
-
 <p>as <code>my-branch</code> was already connected with the remote branch.</p>
-
 <p>The final step is to open a Pull Request (short: PR) against the original Apache Celix repo. Go to the
 <a href="https://github.com/apache/celix">Apache Celix mirror</a>, then to <a href="https://github.com/apache/celix/pulls">Pull request</a>
 and hit <a href="https://github.com/apache/celix/compare/">New Pull Request</a> button.</p>
-
 <p>If not already selected, click on <code>compare across forks.</code> Right now you must select from the dropdowns on right
 your fork and branch to compare the differences with the Apache Celix&rsquo; <code>develop</code> branch.</p>
-
 <p>Finally hit <code>Create Pull Request</code> button and you are done!</p>
-
 <p>After your PR got accepted and merged you must clean up your local repo, please switch your current branch to <code>develop</code></p>
-
 <pre><code>git checkout develop
 </code></pre>
-
 <p>and fetch updates from remote</p>
-
 <pre><code>git fetch -p
 git pull
 </code></pre>
-
 <p>and now you can delete your local branch</p>
-
 <pre><code>git branch -d my-branch
 </code></pre>
-
 <p>and you are ready to start working on another feature/issue.</p>
-
 <h2 id="committers">Committers</h2>
-
 <p>Celix uses Git so you must install a git client locally and then you can clone the Celix repository:</p>
-
 <p>either using Apache GitBox</p>
-
 <pre><code>git clone https://gitbox.apache.org/repos/asf/celix.git    
 </code></pre>
-
 <p>or GitHub</p>
-
 <pre><code>git clone https://github.com/apache/celix.git
 </code></pre>
-
 <p>and done!</p>
-
-<p>Please remember Apache Celix is following the <a href="https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow">GitFlow Workflow</a>
-and the most recent work is on the <code>develop</code> branch.</p>
-
+<p class="alert alert-primary">Note: Remember that Apache Celix is following the <a href="https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow">GitFlow Workflow</a>
+and the most recent work is on the `develop` branch.</p>
 <h2 id="non-committers">Non-committers</h2>
-
 <p>If you are not a committer you can still clone the Gitbox repo but you won&rsquo;t be able push to any changes to it.
 At that moment, it&rsquo;s easier to use GitHub, as GitHub provides the functionality to handle Pull Requests.</p>
-
 <pre><code>git clone https://github.com/apache/celix.git
 </code></pre>
-
 <p>For more info, read <a href="#contributing-with-github">Contributing with GitHub</a> on this page.</p>
-
 <h2 id="further-reading">Further reading</h2>
-
 <ul>
 <li><a href="http://wiki.apache.org/general/GitAtApache">Git at Apache</a></li>
 </ul>
diff --git a/content/contributing/volunteers.html b/content/contributing/volunteers.html
index d0fa849..4f3e728 100644
--- a/content/contributing/volunteers.html
+++ b/content/contributing/volunteers.html
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown active">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,36 +98,27 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                    <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/contributing/volunteers.md" title="Edit this page on GitHub">Edit on GitHub</a>
-
                     
-	
-
-<h1 id="volunteers">Volunteers</h1>
+                        <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/contributing/volunteers.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                    
 
+                    
+	<h1 id="volunteers">Volunteers</h1>
 <nav id="TableOfContents">
-<ul>
-<li><a href="#volunteers">Volunteers</a>
-<ul>
-<li><a href="#project-management-committee-members">Project Management Committee Members</a></li>
-<li><a href="#committers">Committers</a></li>
-</ul></li>
-</ul>
+  <ul>
+    <li><a href="#project-management-committee-members">Project Management Committee Members</a></li>
+    <li><a href="#committers">Committers</a></li>
+  </ul>
 </nav>
-
 <p>The project consists of a diverse group of volunteers who share common values regarding collaborative,
 community-based open source development.</p>
-
 <h2 id="project-management-committee-members">Project Management Committee Members</h2>
-
-<p>Committee members are listed in the chronological order, according to the date each person become a committer
-or committee member.</p>
-
+<p>Committee members are listed in the chronological order, according to the date each person became a committee member.</p>
 <ul>
 <li>Alexander Broekhuis (abroekhuis at apache.org)</li>
 <li>Marcel Offermans (marss at apache.org)</li>
 <li>Konstantin I Boudnik (cos at apache.org)</li>
-<li>Pepijn Noltes, Chairman (pnoltes at apache.org)</li>
+<li>Pepijn Noltes (pnoltes at apache.org) <strong>(Chairman)</strong></li>
 <li>Roman Shaposhnik (rvs at apache.org)</li>
 <li>Bjoern Petri (bpetri at apache.org)</li>
 <li>Erik Jansman (ejansman at apache.org)</li>
@@ -126,14 +126,14 @@ or committee member.</p>
 <li>Roy Lenferink (rlenferink at apache.org)</li>
 <li>Erjan Altena (erjanaltena at apache.org)</li>
 </ul>
-
 <h2 id="committers">Committers</h2>
-
 <p>Other committers are listed in the chronological order, according to the date each person became a committer.</p>
-
 <ul>
 <li>Luciano Resende (lresende at apache.org)</li>
 <li>Karl Pauls (pauls at apache.org)</li>
+<li>Daan Fischer (dfischer at apache.org)</li>
+<li>Roy Bulter (rbulter at apache.org)</li>
+<li>Idzard Hoekstra (idzardh at apache.org)</li>
 </ul>
 
 
diff --git a/content/contributing/youatcelix.html b/content/contributing/youatcelix.html
index 100ba67..5e3eafe 100644
--- a/content/contributing/youatcelix.html
+++ b/content/contributing/youatcelix.html
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown active">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,25 +98,21 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                    <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/contributing/youatcelix.md" title="Edit this page on GitHub">Edit on GitHub</a>
-
                     
-	
-
-<h1 id="you-at-apache-celix">You at Apache Celix</h1>
+                        <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/contributing/youatcelix.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                    
 
+                    
+	<h1 id="you-at-apache-celix">You at Apache Celix</h1>
 <p>We are happy you are considering to contribute to Apache Celix and
 we are definitely looking forward to your work.</p>
-
 <p>We all are a happy group of volunteers and much often work on Celix
 in our free time. We are not getting any money for our work from the
 Apache Software Foundation (nor does any other project receive money)
 and most of us are not paid by a company for working on Celix.</p>
-
 <p>Still we are happy to contribute, meet up from time to time and
 provide user support. That&rsquo;s because we have formed a community
 where we know, trust, and learn from each other.</p>
-
 <p>Considering that we are a grown set of people, you must understand
 that you need to grow into the project as well if you want to join.
 While we are happy to accept your patches if they fit or discuss
@@ -115,26 +120,21 @@ technical changes on them with you, we cannot provide SCM access
 on request. But if we start to believe you have grown into the project
 and would make a great addition to our committer community we&rsquo;ll
 held a private discussion and eventually invite you to join officially.</p>
-
 <p>You can read more about this on the page <a href="http://www.apache.org/foundation/how-it-works.html">&ldquo;How the ASF works&rdquo;</a>.</p>
-
 <p>Now as you have understood that you don&rsquo;t need to ask for anything to start,
 you can simply start. It is always a good idea to first subscribe to the
 <a href="/support/mailing-list.html">Mailing list</a>. We are discussing everything
 around Celix in public (except a few things, like discussions on persons).
 With reading the developers list you&rsquo;ll get a good idea what we are planning
 and maybe even how you can help.</p>
-
 <p>Another way is to simply look through the <a href="/support/issue-tracking.html">Issue Tracker</a>
 and work on a patch. It&rsquo;s recommended to first try to understand and then discuss
 what you plan on the mailing list. This way we will find out if we are on
 the same page and of course will learn about you.</p>
-
 <p>Please note, not only code contributions are welcome. We also invite people
 to join us because they have written extraordinary examples, documentation
 or help a lot on the mailing lists. For us, &ldquo;Community is over Code&rdquo;.
 And a good community does not reduce itself to people who write code.</p>
-
 <p>Feel free to ping us on the <a href="/support/mailing-list.html">mailing list</a> if you have
 any questions.</p>
 
diff --git a/content/docs.html b/content/docs.html
index 1666cb2..2990bd8 100644
--- a/content/docs.html
+++ b/content/docs.html
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,7 +98,9 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                    <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/" title="Edit this page on GitHub">Edit on GitHub</a>
+                    
+                        <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/" title="Edit this page on GitHub">Edit on GitHub</a>
+                    
 
                     
 	
diff --git a/content/docs/celix/CHANGES.html b/content/docs/2.1.0/celix/CHANGES.html
similarity index 93%
rename from content/docs/celix/CHANGES.html
rename to content/docs/2.1.0/celix/CHANGES.html
index 470ad69..f6fe0a6 100644
--- a/content/docs/celix/CHANGES.html
+++ b/content/docs/2.1.0/celix/CHANGES.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>CHANGES.md / Apache Celix</title>
+    <title>Changes / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/CHANGES.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,11 +126,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="changes-for-2-1-0">Changes for 2.1.0</h1>
-
+<h1 id="changes-for-210">Changes for 2.1.0</h1>
 <h2 id="new-features">New Features:</h2>
-
 <pre><code>CELIX-408: Adds support for generating runtime shell scripts so that multiple Celix containers and other executable can be run with a single command.
 CELIX-418: Adds support for generating properties in the Celix container launcher.
 CELIX-407: Adds support for serializers as a service for PubSub. This way PubSubAdmin are purely focused on transport techniques.
@@ -126,9 +137,7 @@ CELIX-389: Adds the PubSub implementation. A set of bundles which together opera
 CELIX-385: Adds etcdlib as library. This libray can be used to communicate with etcd using a C abstraction.
 CELIX-370: Adds C++11 support by adding a C++ Dependency Manager library. This is moslty a header based library.
 </code></pre>
-
 <h2 id="improvements">Improvements:</h2>
-
 <pre><code>CELIX-415: Improves handling of ANSI control sequences to better support running in IDE's.
 CELIX-414: Improves support for running Celix container inside IDE's by basicly handling Celix containers as add_executable CMake target.
 CELIX-406: Improves handling of descriptor files, by allowing different directories for Remote Services and PubSub.
@@ -137,9 +146,7 @@ CELIX-396: Improves the ZMQ PubSub security so that enabling/disable of security
 CELIX-395: Improves Remote Service to use the etcdlib instead of a local etcd.c file.
 CELIX-392: Removes the use of the deprecated readdir_r function. 
 </code></pre>
-
 <h2 id="bugs">Bugs:</h2>
-
 <pre><code>CELIX-416: Fixes an issue for the Android build.
 CELIX-410: Fixes an issue where spaces and tabs are duplicated when loading properties.
 CELIX-405: Fixes an issue with crashes because of invalid DFI descriptors.
@@ -153,11 +160,8 @@ CELIX-390: Fixes an issue with cycle dependency between the Celix framework and
 CELIX-387: Fixes an issue with the travis build and OSX
 CELIX-386: Fixes an issue with the C++ dependency manager and register multiple C++ services.
 </code></pre>
-
-<h1 id="changes-for-2-0-0">Changes for 2.0.0</h1>
-
+<h1 id="changes-for-200">Changes for 2.0.0</h1>
 <h2 id="new-features-1">New Features</h2>
-
 <pre><code>[CELIX-77] Configuration Admin Implementation
 [CELIX-116] Event admin
 [CELIX-119] Remove apr usage from framework
@@ -166,9 +170,7 @@ CELIX-386: Fixes an issue with the C++ dependency manager and register multiple
 [CELIX-269] New Dependency Manager
 [CELIX-370] Add C++ support
 </code></pre>
-
 <h2 id="improvements-1">Improvements</h2>
-
 <pre><code>[CELIX-63] make cmake directory useable for custom bundle projects
 [CELIX-66] Refactor shell service struct
 [CELIX-90] add additional build options for RSA components
@@ -227,9 +229,7 @@ CELIX-386: Fixes an issue with the C++ dependency manager and register multiple
 [CELIX-353] Make bundle context retrievable form dm component
 [CELIX-365] Refactor some usage of void* to const void*
 </code></pre>
-
 <h2 id="bugs-1">Bugs</h2>
-
 <pre><code>[CELIX-104] deployment_admin bundle won't start when missing properties
 [CELIX-105] Fixed array_list_test
 [CELIX-114] Potential deadlock in log_service bundle during stop
diff --git a/content/docs/celix/README.html b/content/docs/2.1.0/celix/README.html
similarity index 76%
copy from content/docs/celix/README.html
copy to content/docs/2.1.0/celix/README.html
index 4734a0c..9b03884 100644
--- a/content/docs/celix/README.html
+++ b/content/docs/2.1.0/celix/README.html
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,21 +126,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="apache-celix-build-status-https-travis-ci-org-apache-celix-svg-branch-develop-https-travis-ci-org-apache-celix-coverage-status-https-coveralls-io-repos-apache-celix-badge-svg-branch-develop-service-github-https-coveralls-io-github-apache-celix-branch-develop-coverity-scan-build-status-https-scan-coverity-com-projects-6685-badge-svg-https-scan-coverity-com-projects-6685">Apache Celix <a href="https://travis-ci.org/apache/celix"><img src="https://travis-ci.org/apache/celix.svg?bran [...]
-
+<h1 id="apache-celix-build-statushttpstravis-ciorgapachecelixsvgbranchdevelophttpstravis-ciorgapachecelix-coverage-statushttpscoverallsioreposapachecelixbadgesvgbranchdevelopservicegithubhttpscoverallsiogithubapachecelixbranchdevelop-coverity-scan-build-statushttpsscancoveritycomprojects6685badgesvghttpsscancoveritycomprojects6685">Apache Celix <a href="https://travis-ci.org/apache/celix"><img src="https://travis-ci.org/apache/celix.svg?branch=develop" alt="Build Status"></a> <a href="ht [...]
 <p>Apache Celix is an implementation of the OSGi specification adapted to C and C++ (C++11). It is a provides a framework to develop (dynamic) modular software applications using component and/or service-oriented programming.</p>
-
 <h2 id="building">Building</h2>
-
 <p>For information how to build Apache Celix see <a href="documents/building/readme.html">Building Apache Celix</a></p>
-
 <h2 id="introduction-to-apache-celix">Introduction to Apache Celix</h2>
-
 <p>For an introduction into Apache Celix see <a href="documents/intro/readme.html">Apache Celix Intro</a></p>
-
 <h2 id="getting-started-with-apache-celix">Getting Started with Apache Celix</h2>
-
 <p>For a guide how to start writing your own bundles and services see <a href="documents/getting_started/readme.html">Getting Started Guide</a></p>
 
 
diff --git a/content/docs/celix/config_admin/readme.html b/content/docs/2.1.0/celix/config_admin/readme.html
similarity index 85%
copy from content/docs/celix/config_admin/readme.html
copy to content/docs/2.1.0/celix/config_admin/readme.html
index 3a769a6..962b41f 100644
--- a/content/docs/celix/config_admin/readme.html
+++ b/content/docs/2.1.0/celix/config_admin/readme.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>readme.md / Apache Celix</title>
+    <title>Configuration Admin / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/config_admin/readme.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,42 +126,29 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="configuration-admin">Configuration Admin</h1>
-
-<hr />
-
+<hr>
 <h2 id="introduction">Introduction</h2>
-
 <p>The configuration Admin service allows defining and deploying configuration data to bundles.
 When compared to config.properties it adds the option to update configuration data by providing a persisten storage. It also allows changing configuration data at run-time.</p>
-
-<hr />
-
+<hr>
 <h2 id="design">Design</h2>
-
 <p>The config_admin bundle implements the configuration_admin service, the interface to configuration objects and the interface of a managed service. At the moment, the implementation uses a config_admin_factory to generate config_admin services for each bundle that wants to use this service. This is an inheritance of the original design and not needed.
 The configuration data is stored persistently in a subdirectory store of the current bundle directory.
 The filenames have the name of the PID and have an extension pid, e.g. base.device1.pid
 The files contains a list of key/value pairs. At least the following keys need to be present:
 service.bundleLocation
 service.pid</p>
-
-<hr />
-
+<hr>
 <h2 id="todo">TODO</h2>
-
 <ol>
 <li>Test the configuration of a service_factory</li>
 <li>Think about the option to allow remote update of the managed_services</li>
 <li>Support configuration of multiple managed services with the same PID. At the moment, only one service is bound to a configuration object.
 To support this the getConfiguration2 function needs to be called with a location NULL according to the spec.</li>
 </ol>
-
-<hr />
-
+<hr>
 <h2 id="usage">Usage</h2>
-
 <ol>
 <li>Bundle that needs configuration data
 This bundle has to register next to its normal service a managed service that has an update method. This managed service needs to be registered with a properties object that contains the key/value pair service.pid=<PID NAME>.
diff --git a/content/docs/celix/dependency_manager/readme.html b/content/docs/2.1.0/celix/dependency_manager/readme.html
similarity index 82%
copy from content/docs/celix/dependency_manager/readme.html
copy to content/docs/2.1.0/celix/dependency_manager/readme.html
index 2a02406..87050fb 100644
--- a/content/docs/celix/dependency_manager/readme.html
+++ b/content/docs/2.1.0/celix/dependency_manager/readme.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>readme.md / Apache Celix</title>
+    <title>Dependency Manager / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/dependency_manager/readme.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,102 +126,74 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="apache-celix-dependency-manager">Apache Celix Dependency Manager</h1>
-
 <h2 id="introduction">Introduction</h2>
-
 <p>The Dependency Manager contains a static library which can be used to manage (dynamic) services on a higher abstraction level in a declarative style.
 The Apache Celix Dependency Manager is inspired by the <a href="http://felix.apache.org/documentation/subprojects/apache-felix-dependency-manager.html">Apache Felix Dependency Manager</a>.</p>
-
 <h2 id="components">Components</h2>
-
 <p>Components are the main building blocks for OSGi applications. They can publish services, and/or they can have dependencies. These dependencies will influence their life cycle as component will only be activated when all required dependencies are available.</p>
-
 <p>Within Apache Celix a component is expected to have a set of functions where the first argument is a handle to the component (e.g. self/this). How this is achieved is up the the user, for some examples how this can be done see the example in the Apache Celix Project.</p>
-
 <p>The Dependency Manager, as part of a bundle, shares the generic bundle life cycle explained in the OSGi specification.
 Each component you define gets its own life cycle. The component life cycle is depicted in the state diagram below.</p>
-
-<p><img src="doc-images/statediagram.png" alt="Component Life Cycle" /></p>
-
+<p><img src="doc-images/statediagram.png" alt="Component Life Cycle"></p>
 <p>Changes in the state of the component will trigger the following life cycle callback functions:</p>
-
 <pre><code>`init`,
 `start`,
 `stop` and
 `deinit`.
 </code></pre>
-
 <p>The callback functions can be specified by using the component_setCallbacks.</p>
-
 <h2 id="dm-parts">DM Parts</h2>
-
 <p>The Dependency Manager consist out of four main parts: <code>DM (Dependency Manager) Activator</code>, <code>Dependency Manager</code>, <code>DM Component</code> and <code>DM Service Dependency</code>.</p>
-
 <h3 id="dm-activator">DM Activator</h3>
-
 <p>The <code>DM Activator</code> implements a &ldquo;normal&rdquo; Celix bundle activator and depends on four functions which needs to be implemented by the user of the Depedency Manager:</p>
-
 <ul>
 <li><code>dm_create</code> : Should be used to allocated and initialize a dm activator structure. If needed this structure can be used to store object during the lifecycle of the bundle.</li>
 <li><code>dm_init</code> : Should be used to interact with the <code>Dependency Manager</code>. Here a user can components, service dependencies and provided services.</li>
 <li><code>dm_destroy</code> : Should be used to deinitialize and deallocate objects created in the <code>dm_create</code> function.</li>
 </ul>
-
 <h3 id="dependency-manager">Dependency Manager</h3>
-
 <p>The <code>Dependency Manager</code> act as an entry point to add or remove DM Components. The <code>Dependency Manager</code> is provided to the <code>dm_init</code> functoin.</p>
-
 <h3 id="dm-component">DM Component</h3>
-
 <p>The <code>DM Component</code> manages the life cycle of a component. For example, when all required service dependencies are available the <code>DM Component</code> will call the <code>start</code> specified callback function of the component.</p>
-
 <p>The <code>component_setImplementation</code> function can be used to specify which component handle to use.
 The <code>component_addInterface</code> can be used to specify one additional service provided by the component.
 The <code>component_addServiceDependency</code> can be used to specify one additional service dependency.</p>
-
 <h3 id="dm-service-dependency">Dm Service Dependency</h3>
-
 <p>The <code>DM Service Dependency</code> can be used to specify service dependencies for a component. i</p>
-
 <p>When these dependencies are set to required the <code>DM Component</code> will ensure that components will only be started when all required dependencies are available and stop the component if any of the required dependencies are removed.
 This feature should prevent a lot of boiler plating code compared to using a service tracker or services references directly.</p>
-
 <p>A service dependency update strategy can also be specified. Default this strategy is set to <code>DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND</code> this strategy will stop and start (suspend) a component when any of the specified service dependencies change (are removed, added or modified).
 When correctly used this strategy removes the need for locking services during updates/invocation. See the dependency manager example for more details.</p>
-
 <p>The <code>serviceDependency_setCallbacks</code> function can be used to specify the function callback used when services are added, set, removed or modified.
 The <code>serviceDependency_setRequired</code> function can be used to specify if a service dependency is required.
 The <code>serviceDependency_setStrategy</code> function can be used to specify a service dependency update strategy (suspend or locking).</p>
-
 <h3 id="snippets">Snippets</h3>
-
 <h4 id="dm-bundle-activator">DM Bundle Activator</h4>
-
 <p>The next snippet shows a dm bundle activator and how to add components to the dependency manager.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//exmpl_activator.c
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&lt;dm_activator.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C">
+<span style="color:#080;font-style:italic">//exmpl_activator.c
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;dm_activator.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 <span style="color:#a2f;font-weight:bold">struct</span> dm_exmpl_activator {
     exmpl_t<span style="color:#666">*</span> exmpl;
 };
 
-celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt context, <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">**</span>userData) {                                                                                                                                             
+celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt context, <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span><span style="color:#666">*</span>userData) {                                                                                                                                             
     <span style="color:#666">*</span>userData <span style="color:#666">=</span> calloc(<span style="color:#666">1</span>, <span style="color:#a2f;font-weight:bold">sizeof</span>(<span style="color:#a2f;font-weight:bold">struct</span> dm_exmpl_activator));
-    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#666">*</span>userData <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span> <span style="color:#666">?</span> <span style="color:#a0a000">CELIX_SUCCESS</span> : CELIX_ENOMEM;
+    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#666">*</span>userData <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span> <span style="color:#666">?</span> <span style="color:#a0a000">CELIX_SUCCESS</span> : CELIX_ENOMEM;
 }
 
 celix_status_t <span style="color:#00a000">dm_init</span>(<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span> userData, bundle_context_pt context, dm_dependency_manager_pt manager) {
     celix_status_t status <span style="color:#666">=</span> CELIX_SUCCESS;
     <span style="color:#a2f;font-weight:bold">struct</span> dm_exmpl_activator <span style="color:#666">*</span>act <span style="color:#666">=</span> (<span style="color:#a2f;font-weight:bold">struct</span> dm_exmpl_activator<span style="color:#666">*</span>)userData;
 
-    act<span style="color:#666">-&gt;</span>exmpl <span style="color:#666">=</span> exmpl_create();
-    <span style="color:#a2f;font-weight:bold">if</span> (act<span style="color:#666">-&gt;</span>exmpl <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
+    act<span style="color:#666">-</span><span style="color:#666">&gt;</span>exmpl <span style="color:#666">=</span> exmpl_create();
+    <span style="color:#a2f;font-weight:bold">if</span> (act<span style="color:#666">-</span><span style="color:#666">&gt;</span>exmpl <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
         dm_component_pt cmp;
-        component_create(context, <span style="color:#b44">&#34;Example Component&#34;</span>, <span style="color:#666">&amp;</span>cmp);
-        component_setImplementation(cmp, act<span style="color:#666">-&gt;</span>exmpl);
+        component_create(context, <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Example Component</span><span style="color:#b44">&#34;</span>, <span style="color:#666">&amp;</span>cmp);
+        component_setImplementation(cmp, act<span style="color:#666">-</span><span style="color:#666">&gt;</span>exmpl);
 
         dependencyManager_add(manager, cmp);
     } <span style="color:#a2f;font-weight:bold">else</span> {
@@ -221,27 +207,23 @@ celix_status_t <span style="color:#00a000">dm_destroy</span>(<span style="color:
     celix_status_t status <span style="color:#666">=</span> CELIX_SUCCESS;
     <span style="color:#a2f;font-weight:bold">struct</span> dm_exmpl_activator <span style="color:#666">*</span>act <span style="color:#666">=</span> (<span style="color:#a2f;font-weight:bold">struct</span> dm_exmpl_activator<span style="color:#666">*</span>)userData;
 
-    <span style="color:#a2f;font-weight:bold">if</span> (act<span style="color:#666">-&gt;</span>exmpl <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
-        exmpl_destroy(act<span style="color:#666">-&gt;</span>exmpl);
+    <span style="color:#a2f;font-weight:bold">if</span> (act<span style="color:#666">-</span><span style="color:#666">&gt;</span>exmpl <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
+        exmpl_destroy(act<span style="color:#666">-</span><span style="color:#666">&gt;</span>exmpl);
     }
     free(act);
 
     <span style="color:#a2f;font-weight:bold">return</span> CELIX_SUCCESS;
-}  </code></pre></div>
-<h3 id="dependency-manager-shell-support">Dependency Manager Shell support</h3>
-
+}  
+</code></pre></div><h3 id="dependency-manager-shell-support">Dependency Manager Shell support</h3>
 <p>There is support for retrieving information of the dm components with
 use of the <code>dm</code> command. This command will print all known dm component,
 their state, provided interfaces and required interfaces.</p>
-
 <h3 id="references">References</h3>
-
 <p>For more information examples please see</p>
-
 <ul>
 <li><a href="public/include">The Dependency Manager API</a>: The dependency manager header files</li>
 <li><a href="../documents/getting_started/using_services_with_c.html">Getting Started: Using Service with C</a>: A introduction how to work with services using the dependency manager</li>
-<li><a href="../examples/dm_example">Dm example</a>: A DM example.<br /></li>
+<li><a href="../examples/dm_example">Dm example</a>: A DM example.</li>
 </ul>
 
 
diff --git a/content/docs/celix/dependency_manager_cxx/readme.html b/content/docs/2.1.0/celix/dependency_manager_cxx/readme.html
similarity index 89%
copy from content/docs/celix/dependency_manager_cxx/readme.html
copy to content/docs/2.1.0/celix/dependency_manager_cxx/readme.html
index 7121cd2..cdb0025 100644
--- a/content/docs/celix/dependency_manager_cxx/readme.html
+++ b/content/docs/2.1.0/celix/dependency_manager_cxx/readme.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>readme.md / Apache Celix</title>
+    <title>C&#43;&#43; Dependency Manager / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/dependency_manager_cxx/readme.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,43 +126,27 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="apache-celix-c-dependency-manager">Apache Celix C++ Dependency Manager</h1>
-
 <h2 id="introduction">Introduction</h2>
-
 <p>The C++ Dependency Manager contains a static library which can be used to manage (dynamic) services on a higher abstraction level in a declarative style.
 The Apache Celix C++ Dependency Manager is inspired by the <a href="http://felix.apache.org/documentation/subprojects/apache-felix-dependency-manager.html">Apache Felix Dependency Manager</a>.</p>
-
 <p>The C++ Dependency Manager uses fluent interface to make specifying DM components and service dependencies very concise and relies on features introduced in C++11.</p>
-
 <h2 id="c-and-c-dependency-manager">C++ and C Dependency Manager</h2>
-
 <p>The C++ Dependency Manager is build on top of the C Dependency Manager.
 To get a good overview of the C++ Dependency Manager please read the <a href="../dependency_manager/README.html">Dependency Manager documentation</a></p>
-
 <h2 id="dm-parts">DM Parts</h2>
-
 <p>The C++ Dependency Manager consist out of four main parts: <code>celix::dm::DmActivator</code>, <code>celix::dm::DependencyManager</code>, <code>celix::dm::Component</code> and <code>celix::dm::ServiceDependency</code>.</p>
-
 <h3 id="dmactivator">DmActivator</h3>
-
 <p>The <code>DmActivator</code> class should be inherited by a bundle specific Activator.</p>
-
 <ul>
 <li>The static <code>DmActivator::create</code> method needs to be implemented and should return a bundle specific subclass instance of the DmActivator.</li>
 <li>The <code>DmActivator::init</code> method should be overridden and can be used to specify which components to use in the bundle.</li>
 <li>The <code>DmActivator::deinit</code> method can be overridden if some cleanup is needed when a bundle is stopped.</li>
 </ul>
-
 <h3 id="dependency-manager">Dependency Manager</h3>
-
 <p>The <code>DependencyManager</code> act as an entry point to create (DM) Components.</p>
-
 <h3 id="component">Component</h3>
-
 <p>The (DM) <code>Component</code> manages the life cycle of a component (of the template type T). For example, when all required service dependencies are available the <code>Component</code> will call the <code>start</code> specified callback function of the component.</p>
-
 <ul>
 <li>The <code>Component::setInstance</code> method can be used to set the component instance to used. If no instance is set the (DM) <code>Component</code> will (lazy) create a component instance using the default constructor.</li>
 <li>The <code>Component::addInterface</code> method can be used to specify one additional C++ service provided by the component.</li>
@@ -156,27 +154,19 @@ To get a good overview of the C++ Dependency Manager please read the <a href="..
 <li>The <code>Component::createServiceDependency</code> method can be used to specify one additional typed C++ service dependency.</li>
 <li>The <code>Component::createCServiceDependency</code> method can be used to specify one additional typed C service dependency.</li>
 </ul>
-
 <h3 id="servicedependency-and-cservicedependency">ServiceDependency and CServiceDependency</h3>
-
 <p>The (DM) <code>ServiceDependency</code> can be used to specify C++ service dependencies for a component and the (DM) <code>CServiceDependency</code> can be used to specify C service dependencies for a component.</p>
-
 <p>When these dependencies are set to required the <code>Component</code> will ensure that components will only be started when all required dependencies are available and stop the component if any of the required dependencies are removed.
 This feature should prevent a lot of boiler plating code compared to using a service tracker or services references directly.</p>
-
 <p>A service dependency update strategy can also be specified (suspend or locking. Default this strategy is set to <code>DependencyUpdateStrategy::suspend</code> this strategy will stop and start (suspend) a component when any of the specified service dependencies changes (are removed, added or modified).
 When correctly used this strategy removes the need for locking services during updates/invocation. See the dependency manager_cxx example for more details.</p>
-
 <ul>
 <li>The <code>(C)ServiceDependency::setCallbacks</code> methods can be used to specify the function callback used when services are added, set, removed or modified.</li>
 <li>The <code>(C)ServiceDependency::setRequired</code> methods can be used to specify if a service dependency is required.</li>
 <li>The <code>(C)ServiceDependency::setStrategy</code> methods can be used to specify the service dependency update strategy (suspend or locking).</li>
 </ul>
-
 <h3 id="references">References</h3>
-
 <p>For more information examples please see</p>
-
 <ul>
 <li><a href="include/celix/dm">The C++ Dependency Manager API</a>: The c++ dependency manager header files</li>
 <li><a href="../examples/dm_example_cxx">Dm C++ example</a>: A DM C++ example.</li>
diff --git a/content/docs/celix/deployment_admin/README.html b/content/docs/2.1.0/celix/deployment_admin/README.html
similarity index 84%
copy from content/docs/celix/deployment_admin/README.html
copy to content/docs/2.1.0/celix/deployment_admin/README.html
index 9424f6d..dd82d2f 100644
--- a/content/docs/celix/deployment_admin/README.html
+++ b/content/docs/2.1.0/celix/deployment_admin/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Deployment Admin / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/deployment_admin/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,23 +126,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="deployment-admin">Deployment Admin</h2>
-
 <p>The Celix Deployment Admin implements the OSGi Deployment Admin specification, which provides functionality to manage deployment packages. Deployment package are bundles and other artifacts that can be installed, updated and uninstalled as single unit.</p>
-
 <p>It can be used for example with Apache Ace, which allows you to centrally manage and distribute software components, configuration data and other artifacts.</p>
-
 <h6 id="properties">Properties</h6>
-
 <pre><code>deployment_admin_identification     id used by the deployment admin to identify itself
 deployment_admin_url                url of the deployment server
 deployment_cache_dir                possible cache dir for the deployment admin update
 deployment_tags                     tags used by the deployment admin
 </code></pre>
-
 <h6 id="cmake-option">CMake option</h6>
-
 <pre><code>BUILD_DEPLOYMENT_ADMIN=ON
 </code></pre>
 
diff --git a/content/docs/celix/device_access/README.html b/content/docs/2.1.0/celix/device_access/README.html
similarity index 83%
copy from content/docs/celix/device_access/README.html
copy to content/docs/2.1.0/celix/device_access/README.html
index 1007de0..7cbc0fe 100644
--- a/content/docs/celix/device_access/README.html
+++ b/content/docs/2.1.0/celix/device_access/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Device Access / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/device_access/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,19 +126,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="device-access">Device Access</h2>
-
 <p>The Device Access contains a for Celix adapted implementation of the OSGi Compendium Device Access Specification.</p>
-
 <h6 id="properties">Properties</h6>
-
 <pre><code>DRIVER_LOCATOR_PATH     Path to the directory containing the driver bundles, defaults to &quot;drivers&quot;.
                         The Driver Locator uses this path to find drivers.
 </code></pre>
-
 <h6 id="cmake-option">CMake option</h6>
-
 <pre><code>BUILD_DEVICE_ACCESS=ON
 </code></pre>
 
diff --git a/content/docs/celix/documents/building/readme.html b/content/docs/2.1.0/celix/documents/building/readme.html
similarity index 84%
copy from content/docs/celix/documents/building/readme.html
copy to content/docs/2.1.0/celix/documents/building/readme.html
index f040ea2..e8a0a9e 100644
--- a/content/docs/celix/documents/building/readme.html
+++ b/content/docs/2.1.0/celix/documents/building/readme.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>readme.md / Apache Celix</title>
+    <title>Building and Installing / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/building/readme.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,57 +126,48 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="apache-celix-building-and-installing">Apache Celix - Building and Installing</h1>
-
+<h1 id="apache-celix---building-and-installing">Apache Celix - Building and Installing</h1>
 <p>Apache Celix aims to be support a broad range of UNIX platforms.</p>
-
 <p>Currently the <a href="https://travis-ci.org/apache/celix">continuous integration build server</a> builds and tests Apache Celix for:</p>
-
 <ul>
 <li>Ubuntu Trusty Tahr (14.04)
-
 <ul>
 <li>GCC</li>
 <li>CLang</li>
-</ul></li>
+</ul>
+</li>
 <li>OSX
-
 <ul>
 <li>GCC</li>
 <li>CLang</li>
-</ul></li>
+</ul>
+</li>
 <li>Android (cross-compiled on Ubuntu Trusty Tahr)
-
 <ul>
 <li>GCC</li>
-</ul></li>
 </ul>
-
+</li>
+</ul>
 <h1 id="preparing">Preparing</h1>
-
 <p>The following packages (libraries + headers) should be installed on your system:</p>
-
 <ul>
 <li>Development Environment
-
 <ul>
 <li>build-essentials (gcc/g++ or clang/clang++)</li>
 <li>git</li>
 <li>java (for packaging bundles)</li>
 <li>cmake (3.2 or higher)</li>
-</ul></li>
+</ul>
+</li>
 <li>Apache Celix Dependencies
-
 <ul>
 <li>curl</li>
 <li>jansson</li>
 <li>libffi</li>
-<li>libxml2 (for remote services and bonjour shell)
-<br /></li>
-</ul></li>
+<li>libxml2 (for remote services and bonjour shell)</li>
+</ul>
+</li>
 </ul>
-
 <p>For debian based systems (apt), the following command should work:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">sudo apt-get install -yq --no-install-recommends <span style="color:#b62;font-weight:bold">\
 </span><span style="color:#b62;font-weight:bold"></span>	build-essential <span style="color:#b62;font-weight:bold">\
@@ -173,8 +178,8 @@ limitations under the License.
 </span><span style="color:#b62;font-weight:bold"></span>    java <span style="color:#b62;font-weight:bold">\
 </span><span style="color:#b62;font-weight:bold"></span>  	cmake <span style="color:#b62;font-weight:bold">\
 </span><span style="color:#b62;font-weight:bold"></span>  	libffi-dev <span style="color:#b62;font-weight:bold">\
-</span><span style="color:#b62;font-weight:bold"></span>  	libxml2-dev</code></pre></div>
-<p>For Fedora based systems (dnf), the following command should work:</p>
+</span><span style="color:#b62;font-weight:bold"></span>  	libxml2-dev
+</code></pre></div><p>For Fedora based systems (dnf), the following command should work:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">sudo dnf group install -y <span style="color:#b44">&#34;C Development Tools and Libraries&#34;</span>
 sudo dnf install <span style="color:#b62;font-weight:bold">\
 </span><span style="color:#b62;font-weight:bold"></span>    cmake <span style="color:#b62;font-weight:bold">\
@@ -185,13 +190,12 @@ sudo dnf install <span style="color:#b62;font-weight:bold">\
 </span><span style="color:#b62;font-weight:bold"></span>    jansson-devel <span style="color:#b62;font-weight:bold">\
 </span><span style="color:#b62;font-weight:bold"></span>    libffi-devel <span style="color:#b62;font-weight:bold">\
 </span><span style="color:#b62;font-weight:bold"></span>    libxml2-devel <span style="color:#b62;font-weight:bold">\
-</span><span style="color:#b62;font-weight:bold"></span>    libuuid-devel</code></pre></div>
-<p>For OSX systems with brew installed, the following command should work:</p>
+</span><span style="color:#b62;font-weight:bold"></span>    libuuid-devel
+</code></pre></div><p>For OSX systems with brew installed, the following command should work:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">    brew update <span style="color:#666">&amp;&amp;</span> <span style="color:#b62;font-weight:bold">\
 </span><span style="color:#b62;font-weight:bold"></span>    brew install lcov libffi cmake <span style="color:#666">&amp;&amp;</span> <span style="color:#b62;font-weight:bold">\
-</span><span style="color:#b62;font-weight:bold"></span>    brew link --force libffi</code></pre></div>
-<h2 id="download-the-apache-celix-sources">Download the Apache Celix sources</h2>
-
+</span><span style="color:#b62;font-weight:bold"></span>    brew link --force libffi
+</code></pre></div><h2 id="download-the-apache-celix-sources">Download the Apache Celix sources</h2>
 <p>To get started you first have to download the Apache Celix sources. This can be done by cloning the Apache Celix git repository:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#080;font-style:italic">#Create a new workspace to work in, e.g:</span>
 mkdir <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">HOME</span><span style="color:#b68;font-weight:bold">}</span>/workspace
@@ -199,38 +203,32 @@ mkdir <span style="color:#b68;font-weight:bold">${</span><span style="color:#b88
 <span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>
 
 <span style="color:#080;font-style:italic">#clone the repro</span>
-git clone --single-branch --branch master https://github.com/apache/celix.git</code></pre></div>
-<h2 id="building-apache-celix">Building Apache Celix</h2>
-
+git clone --single-branch --branch master https://github.com/apache/celix.git
+</code></pre></div><h2 id="building-apache-celix">Building Apache Celix</h2>
 <p>Apache Celix uses <a href="https://cmake.org">CMake</a> as build system. CMake can generate (among others) makefiles.</p>
-
 <h3 id="building-using-cmake-and-makefiles">Building using CMake and makefiles:</h3>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/celix
 mkdir build
 <span style="color:#a2f">cd</span> build
 cmake .. 
-make </code></pre></div>
-<h2 id="editing-build-options">Editing Build options</h2>
-
+make 
+</code></pre></div><h2 id="editing-build-options">Editing Build options</h2>
 <p>With use of CMake, Apache Celix makes it possible to edit build options. This enabled users, among other options, to configure a install location and select additional bundles.
 To edit the options use ccmake or cmake-gui. For cmake-gui an additional package install can be necessary (Fedora: <code>dnf install cmake-gui</code>).</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/celix/build
 ccmake .
 <span style="color:#080;font-style:italic">#Edit options, e.g. enable BUILD_REMOTE_SHELL to build the remote (telnet) shell</span>
-<span style="color:#080;font-style:italic">#Edit the CMAKE_INSTALL_PREFIX config to set the install location</span></code></pre></div>
-<p>For this guide we assume the CMAKE_INSTALL_PREFIX is <code>/usr/local</code>.</p>
-
+<span style="color:#080;font-style:italic">#Edit the CMAKE_INSTALL_PREFIX config to set the install location</span>
+</code></pre></div><p>For this guide we assume the CMAKE_INSTALL_PREFIX is <code>/usr/local</code>.</p>
 <h2 id="installing-apache-celix">Installing Apache Celix</h2>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/celix/build
 make
-sudo make install</code></pre></div>
-<h2 id="running-apache-celix">Running Apache Celix</h2>
-
+sudo make install
+</code></pre></div><h2 id="running-apache-celix">Running Apache Celix</h2>
 <p>If Apache Celix is succesfully installed running</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">celix</code></pre></div>
-<p>should give the following output:
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">celix
+</code></pre></div><p>should give the following output:
 &ldquo;Error: invalid or non-existing configuration file: &lsquo;config.properties&rsquo;.No such file or directory&rdquo;.</p>
-
 <p>For more info how to build your own projects and/or running the Apache Celix examples see <a href="../getting_started/readme.html">Getting Started</a>.</p>
 
 
diff --git a/content/docs/celix/documents/cmake_commands/readme.html b/content/docs/2.1.0/celix/documents/cmake_commands/readme.html
similarity index 85%
rename from content/docs/celix/documents/cmake_commands/readme.html
rename to content/docs/2.1.0/celix/documents/cmake_commands/readme.html
index 7f40d1d..257cfd2 100644
--- a/content/docs/celix/documents/cmake_commands/readme.html
+++ b/content/docs/2.1.0/celix/documents/cmake_commands/readme.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>readme.md / Apache Celix</title>
+    <title>CMake Commands / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/cmake_commands/readme.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,23 +126,16 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="apache-celix-cmake-commands">Apache Celix - CMake Commands</h1>
-
+<h1 id="apache-celix---cmake-commands">Apache Celix - CMake Commands</h1>
 <p>For Apache Celix several cmake command are added to be able to work with Apache Celix bundles and deployments.</p>
-
 <h1 id="bundles">Bundles</h1>
-
-<h2 id="add-celix-bundle">add_celix_bundle</h2>
-
+<h2 id="add_celix_bundle">add_celix_bundle</h2>
 <p>Add a Celix bundle to the project.  There are three variants:</p>
-
 <ul>
 <li>With SOURCES the bundle will be created using a list of sources files as input for the bundle activator library.</li>
 <li>With ACTIVATOR the bundle will be created using the library target or absolute path to existing library as activator library.</li>
 <li>With no SOURCES or ACTIVATOR a bundle without a activator will be created.</li>
 </ul>
-
 <p>Also available under the add_bundle CMake function (deprecated).</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">add_celix_bundle</span>(<span style="color:#b44">&lt;bundle_target_name&gt;</span> 
     <span style="color:#b44">SOURCES</span> <span style="color:#b44">source1</span> <span style="color:#b44">source2</span> <span style="color:#b44">...</span>
@@ -140,7 +147,8 @@ limitations under the License.
     <span style="color:#b44">[EXPORT_LIBRARIES</span> <span style="color:#b44">export_lib1</span> <span style="color:#b44">export_lib2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[IMPORT_LIBRARIES</span> <span style="color:#b44">import_lib1</span> <span style="color:#b44">import_lib2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[HEADERS</span> <span style="color:#b44">&#34;header1: header1_value&#34;</span> <span style="color:#b44">&#34;header2: header2_value&#34;</span> <span style="color:#b44">...]</span>
-)</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">add_celix_bundle</span>(<span style="color:#b44">&lt;bundle_target_name&gt;</span> 
+)<span style="">
+</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">add_celix_bundle</span>(<span style="color:#b44">&lt;bundle_target_name&gt;</span> 
     <span style="color:#b44">ACTIVATOR</span> <span style="color:#b44">&lt;activator_lib&gt;</span>
     <span style="color:#b44">[NAME</span> <span style="color:#b44">bundle_name]</span> 
     <span style="color:#b44">[SYMBOLIC_NAME</span> <span style="color:#b44">bundle_symbolic_name]</span>
@@ -150,7 +158,8 @@ limitations under the License.
     <span style="color:#b44">[EXPORT_LIBRARIES</span> <span style="color:#b44">export_lib1</span> <span style="color:#b44">export_lib2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[IMPORT_LIBRARIES</span> <span style="color:#b44">import_lib1</span> <span style="color:#b44">import_lib2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[HEADERS</span> <span style="color:#b44">&#34;header1: header1_value&#34;</span> <span style="color:#b44">&#34;header2: header2_value&#34;</span> <span style="color:#b44">...]</span>
-)</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">add_celix_bundle</span>(<span style="color:#b44">&lt;bundle_target_name&gt;</span> 
+)<span style="">
+</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">add_celix_bundle</span>(<span style="color:#b44">&lt;bundle_target_name&gt;</span> 
     <span style="color:#b44">[NAME</span> <span style="color:#b44">bundle_name]</span> 
     <span style="color:#b44">[SYMBOLIC_NAME</span> <span style="color:#b44">bundle_symbolic_name]</span>
     <span style="color:#b44">[DESCRIPTION</span> <span style="color:#b44">bundle_description]</span>
@@ -159,27 +168,24 @@ limitations under the License.
     <span style="color:#b44">[EXPORT_LIBRARIES</span> <span style="color:#b44">export_lib1</span> <span style="color:#b44">export_lib2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[IMPORT_LIBRARIES</span> <span style="color:#b44">import_lib1</span> <span style="color:#b44">import_lib2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[HEADERS</span> <span style="color:#b44">&#34;header1: header1_value&#34;</span> <span style="color:#b44">&#34;header2: header2_value&#34;</span> <span style="color:#b44">...]</span>
-)</code></pre></div>
-<ul>
+)<span style="">
+</span></code></pre></div><ul>
 <li>If NAME is provided that will be used as Bundle-Name. Default the bundle target name is used as symbolic name.</li>
 <li>If SYMBOLIC_NAME is provided that will be used as Bundle-SymbolicName. Default the bundle target name is used as symbolic name.</li>
 <li>If DESCRIPTION is provided that will be used as Bundle-Description. Default this is empty</li>
 <li>If VERSION is provided. That will be used for the Bundle-Version. In combination with SOURCES the version will alse be use to set the activator library target property VERSION and SOVERSION.
 For SOVERSION only the major part is used. Expected scheme is &ldquo;<major>.<minor>.<path>&rdquo;. Default version is &ldquo;0.0.0&rdquo;</li>
-<li>If PRIVATE_LIBRARIES is provided all provided lib are added to the &ldquo;Private-Library&rdquo; manifest statement and added in the root of the bundle. libraries can be cmake library targets or absolute paths to existing libraries.<br /></li>
+<li>If PRIVATE_LIBRARIES is provided all provided lib are added to the &ldquo;Private-Library&rdquo; manifest statement and added in the root of the bundle. libraries can be cmake library targets or absolute paths to existing libraries.</li>
 <li>If EXPORT_LIBRARIES is provided all provided lib are added to the &ldquo;Export-Library&rdquo; manifest statement and added in the root of the bundle. libraries can be cmake library targets or absolute paths to existing libraries. This is not yet supported by the celix framework.</li>
 <li>If IMPORT_LIBRARIES is provided all provided lib are added to the &ldquo;Import-Library&rdquo; manifest statement and added in the root of the bundle. libraries can be cmake library targets or absolute paths to existing libraries.  This is not yet supported by the celix framework</li>
 <li>If HEADERS is provided the headers values are appended to the bundle manifest.</li>
 </ul>
-
-<h2 id="celix-bundle-private-libs">celix_bundle_private_libs</h2>
-
+<h2 id="celix_bundle_private_libs">celix_bundle_private_libs</h2>
 <p>Add libraries to a bundle target. The libraries should be cmake library targets or an absolute path to a existing library.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_private_libs</span>(<span style="color:#b44">&lt;bundle_target&gt;</span>
     <span style="color:#b44">lib1</span> <span style="color:#b44">lib2</span> <span style="color:#b44">...</span>
-)</code></pre></div>
-<h2 id="celix-bundle-files">celix_bundle_files</h2>
-
+)<span style="">
+</span></code></pre></div><h2 id="celix_bundle_files">celix_bundle_files</h2>
 <p>Add files to the target bundle. DESTINATION is relative to the bundle archive root.
 The rest of the command is conform file(COPY &hellip;) cmake command.
 See cmake file(COPY &hellip;) command for more info.</p>
@@ -191,33 +197,27 @@ See cmake file(COPY &hellip;) command for more info.</p>
     <span style="color:#b44">[FILES_MATCHING]</span>
     <span style="color:#b44">[[PATTERN</span> <span style="color:#b44">&lt;pattern&gt;</span> <span style="color:#b44">|</span> <span style="color:#b44">REGEX</span> <span style="color:#b44">&lt;regex&gt;]</span>
     <span style="color:#b44">[EXCLUDE]</span> <span style="color:#b44">[PERMISSIONS</span> <span style="color:#b44">permissions...]]</span> <span style="color:#b44">[...]</span>)<span style="">
-</span><span style="">)</span></code></pre></div>
-<h2 id="celix-bundle-headers">celix_bundle_headers</h2>
-
+</span><span style=""></span><span style="">)</span><span style="">
+</span></code></pre></div><h2 id="celix_bundle_headers">celix_bundle_headers</h2>
 <p>Append the provided headers to the target bundle manifest.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_headers</span>(<span style="color:#b44">&lt;bundle_target&gt;</span>
     <span style="color:#b44">&#34;header1: header1_value&#34;</span>
     <span style="color:#b44">&#34;header2: header2_value&#34;</span>
     <span style="color:#b44">...</span>
-)</code></pre></div>
-<h2 id="celix-bundle-symbolic-name">celix_bundle_symbolic_name</h2>
-
+)<span style="">
+</span></code></pre></div><h2 id="celix_bundle_symbolic_name">celix_bundle_symbolic_name</h2>
 <p>Set bundle symbolic name</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_symbolic_name</span>(<span style="color:#b44">&lt;bundle_target&gt;</span> <span style="color:#b44">symbolic_name</span>)</code></pre></div>
-<h2 id="celix-bundle-name">celix_bundle_name</h2>
-
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_symbolic_name</span>(<span style="color:#b44">&lt;bundle_target&gt;</span> <span style="color:#b44">symbolic_name</span>)<span style="">
+</span></code></pre></div><h2 id="celix_bundle_name">celix_bundle_name</h2>
 <p>Set bundle name</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_name</span>(<span style="color:#b44">&lt;bundle_target&gt;</span> <span style="color:#b44">name</span>)</code></pre></div>
-<h2 id="celix-bundle-version">celix_bundle_version</h2>
-
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_name</span>(<span style="color:#b44">&lt;bundle_target&gt;</span> <span style="color:#b44">name</span>)<span style="">
+</span></code></pre></div><h2 id="celix_bundle_version">celix_bundle_version</h2>
 <p>Set bundle version</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_version</span>(<span style="color:#b44">&lt;bundle_target&gt;</span> <span style="color:#b44">version</span>)</code></pre></div>
-<h2 id="celix-bundle-description">celix_bundle_description</h2>
-
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_version</span>(<span style="color:#b44">&lt;bundle_target&gt;</span> <span style="color:#b44">version</span>)<span style="">
+</span></code></pre></div><h2 id="celix_bundle_description">celix_bundle_description</h2>
 <p>Set bundle description</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_description</span>(<span style="color:#b44">&lt;bundle_target&gt;</span> <span style="color:#b44">description</span>)</code></pre></div>
-<h2 id="install-celix-bundle">install_celix_bundle</h2>
-
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_description</span>(<span style="color:#b44">&lt;bundle_target&gt;</span> <span style="color:#b44">description</span>)<span style="">
+</span></code></pre></div><h2 id="install_celix_bundle">install_celix_bundle</h2>
 <p>Install bundle when &lsquo;make install&rsquo; is executed.
 Bundles are installed at <code>&lt;install-prefix&gt;/share/&lt;project_name&gt;/bundles</code>.
 Headers are installed at <code>&lt;install-prefix&gt;/include/&lt;project_name&gt;/&lt;bundle_name&gt;</code>
@@ -227,23 +227,19 @@ Resources are installed at <code>&lt;install-prefix&gt;/shared/&lt;project_name&
     <span style="color:#b44">[BUNDLE_NAME]</span> <span style="color:#b44">bundle_name</span>
     <span style="color:#b44">[HEADERS</span> <span style="color:#b44">header_file1</span> <span style="color:#b44">header_file2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[RESOURCES</span> <span style="color:#b44">resource1</span> <span style="color:#b44">resource2</span> <span style="color:#b44">...]</span>
-)</code></pre></div>
-<ul>
+)<span style="">
+</span></code></pre></div><ul>
 <li>If PROJECT_NAME is provided that will be used as project name for installing. Default is the cmake project name.</li>
 <li>If BUNDLE_NAME is provided that will be used as bundle for installing the headers. Default is the bundle target name.</li>
 <li>If HEADERS is provided the list of provided headers will be installed.</li>
 <li>If RESOURCES is provided the list of provided resources will be installed.</li>
 </ul>
-
 <h1 id="celix-containers">Celix Containers</h1>
-
-<h2 id="add-celix-container">add_celix_container</h2>
-
+<h2 id="add_celix_container">add_celix_container</h2>
 <p>Add a Celix container, consisting out of a selection of bundles and a simple Celix launcher.
 Celix containers can be used to run/test a selection of bundles in the celix framework.
 A Celix container can be found in <code>&lt;cmake_build_dir&gt;/deploy[/&lt;group_name&gt;]/&lt;celix_container_name&gt;</code>.
 Use the <code>&lt;celix_container_name&gt;</code> executable to run the deployments.</p>
-
 <p>Also available under the add_deploy CMake function (deprecated).</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">add_celix_container</span>(<span style="color:#b44">&lt;celix_container_name&gt;</span>
     <span style="color:#b44">[COPY]</span> 
@@ -254,17 +250,14 @@ Use the <code>&lt;celix_container_name&gt;</code> executable to run the deployme
     <span style="color:#b44">[DIR</span> <span style="color:#b44">dir]</span>
     <span style="color:#b44">[BUNDLES</span> <span style="color:#b44">&lt;bundle1&gt;</span> <span style="color:#b44">&lt;bundle2&gt;</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[PROPERTIES</span> <span style="color:#b44">&#34;prop1=val1&#34;</span> <span style="color:#b44">&#34;prop2=val2&#34;</span> <span style="color:#b44">...]</span>
-)</code></pre></div>
-<p>The provided bundle targets for a celix container do not have to exists (yet).
+)<span style="">
+</span></code></pre></div><p>The provided bundle targets for a celix container do not have to exists (yet).
 This removes the need for correctly ordering the add_celix_bundle commands so that all bundle target are present before an add_celix_container command.
 If the bundle target is never added CMake will give an error:</p>
-
 <pre><code>  Error evaluating generator expression:
 
     $&lt;TARGET_PROPERTY:foo,BUNDLE_FILE&gt;
-</code></pre>
-
-<ul>
+</code></pre><ul>
 <li>If the COPY option is provided the selected bundles will be copied in a bundles dir and the generated config.properties will use relative paths to the bundle locations. Default bundles will not be copied and the generated config.properties will use absolute references to the bundle locations.</li>
 <li>If CXX option is provided the celix container launcher will be build as C++ executable and as result be linked with the required C++ libraries of the used compiler</li>
 <li>If GROUP is provided the celix container will be grouped in the provided group name.</li>
@@ -274,9 +267,7 @@ If the bundle target is never added CMake will give an error:</p>
 <li>If BUNDLES is provided the list of bundles will be added the the generated config.properties for startup. Combined with COPY the bundles will also be copied to a bundles dir.</li>
 <li>If PROPERTIES is provided the list of properties will be appended to the generated config.properties</li>
 </ul>
-
-<h2 id="celix-container-bundles-dir">celix_container_bundles_dir</h2>
-
+<h2 id="celix_container_bundles_dir">celix_container_bundles_dir</h2>
 <p>Deploy a selection of bundles to the provided bundle dir. This can be used to create an endpoints / proxies bundles dir for the remote service admin or drivers bundles dir for the device access.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_container_bundles_dir</span>(<span style="color:#b44">&lt;celix_container_target_name&gt;</span>
     <span style="color:#b44">DIR_NAME</span> <span style="color:#b44">dir_name</span>
@@ -284,57 +275,46 @@ If the bundle target is never added CMake will give an error:</p>
         <span style="color:#b44">bundle1</span> 
         <span style="color:#b44">bundle2</span> 
         <span style="color:#b44">...</span>
-)</code></pre></div>
-<h2 id="celix-container-bundles">celix_container_bundles</h2>
-
+)<span style="">
+</span></code></pre></div><h2 id="celix_container_bundles">celix_container_bundles</h2>
 <p>Deploy the selected bundles. The bundles are configured for auto starting.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_container_bundles</span>(<span style="color:#b44">&lt;celix_container_target_name&gt;</span>
     <span style="color:#b44">bundle1</span> 
     <span style="color:#b44">bundle2</span> 
     <span style="color:#b44">...</span>
-)</code></pre></div>
-<h2 id="celix-container-properties">celix_container_properties</h2>
-
+)<span style="">
+</span></code></pre></div><h2 id="celix_container_properties">celix_container_properties</h2>
 <p>Add the provided properties to the target Celix container config.properties.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_container_properties</span>(<span style="color:#b44">&lt;celix_container_target_name&gt;</span>
     <span style="color:#b44">&#34;prop1=val1&#34;</span> 
     <span style="color:#b44">&#34;prop2=val2&#34;</span> 
     <span style="color:#b44">...</span>
-)</code></pre></div>
-<h2 id="celix-cotainer-embedded-properties">celix_cotainer_embedded_properties</h2>
-
+)<span style="">
+</span></code></pre></div><h2 id="celix_cotainer_embedded_properties">celix_cotainer_embedded_properties</h2>
 <p>Embeds the provided properties to the target Celix launcher as embedded properties.
 Note that these properties can be overridden by using config.properties.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_container_embedded_properties</span>(<span style="color:#b44">&lt;celix_container_target_name&gt;</span>
     <span style="color:#b44">&#34;prop1=val1&#34;</span> 
     <span style="color:#b44">&#34;prop2=val2&#34;</span> 
     <span style="color:#b44">...</span>
-)</code></pre></div>
-<h1 id="celix-docker-images">Celix Docker Images</h1>
-
+)<span style="">
+</span></code></pre></div><h1 id="celix-docker-images">Celix Docker Images</h1>
 <p>It is possible the use the <code>add_celix_docker</code> Apache Celix CMake command to create Apache Celix docker directories,
 which in turn can be used to create very small Apache Celix docker images.</p>
-
-<h2 id="add-celix-docker">add_celix_docker</h2>
-
+<h2 id="add_celix_docker">add_celix_docker</h2>
 <p>Adds a docker target dir, containing a all the required executables,
 libraries and filesystem needed to run a Apache Celix framework in a docker container.
 Also includes the selected bundles.</p>
-
 <p>The add_celix_docker target is a executable target and can be used to link libraries which are needed in the docker image.</p>
-
 <p>The docker dir can be found in <code>&lt;cmake_build_dir&gt;/docker[/&lt;group_name&gt;]/&lt;docker_name&gt;</code>.</p>
-
 <p>The provided bundle targets for a docker dir do not have to exists (yet).
 This removes the need for correctly order the add_celix_bundle commands so that all bundle target are present before
 an <code>add_celix_docker</code> command.
 If the bundle target is never added CMake will give an error:</p>
+<pre><code>  Error evaluating generator expression:
 
-<pre><code>    Error evaluating generator expression:
-  
-      $&lt;TARGET_PROPERTY:foo,BUNDLE_FILE&gt;
-</code></pre>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">add_celix_docker</span>(<span style="color:#b44">&lt;docker_target_name&gt;</span>
+    $&lt;TARGET_PROPERTY:foo,BUNDLE_FILE&gt;
+</code></pre><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">add_celix_docker</span>(<span style="color:#b44">&lt;docker_target_name&gt;</span>
     <span style="color:#b44">[CXX]</span>
     <span style="color:#b44">[GROUP</span> <span style="color:#b44">group_name]</span>
     <span style="color:#b44">[NAME</span> <span style="color:#b44">deploy_name]</span>
@@ -345,8 +325,8 @@ If the bundle target is never added CMake will give an error:</p>
     <span style="color:#b44">[BUNDLES</span> <span style="color:#b44">&lt;bundle1&gt;</span> <span style="color:#b44">&lt;bundle2&gt;</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[PROPERTIES</span> <span style="color:#b44">&#34;prop1=val1&#34;</span> <span style="color:#b44">&#34;prop2=val2&#34;</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[INSTRUCTIONS</span> <span style="color:#b44">&#34;instr1&#34;</span> <span style="color:#b44">&#34;instr2&#34;</span> <span style="color:#b44">...]</span>
-)</code></pre></div>
-<ul>
+)<span style="">
+</span></code></pre></div><ul>
 <li>If CXX is set the entrypoint executable will be created as a C++ main file, default it is a C main file.</li>
 <li>If GROUP is provided the docker will be grouped in the provided group name.</li>
 <li>If NAME is provided that name will be used for the docker dir. Default the deploy target name will be used.</li>
diff --git a/content/docs/celix/documents/getting_started/creating_a_simple_bundle.html b/content/docs/2.1.0/celix/documents/getting_started/creating_a_simple_bundle.html
similarity index 66%
copy from content/docs/celix/documents/getting_started/creating_a_simple_bundle.html
copy to content/docs/2.1.0/celix/documents/getting_started/creating_a_simple_bundle.html
index f9ad9ea..fcd767d 100644
--- a/content/docs/celix/documents/getting_started/creating_a_simple_bundle.html
+++ b/content/docs/2.1.0/celix/documents/getting_started/creating_a_simple_bundle.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>creating_a_simple_bundle.md / Apache Celix</title>
+    <title>Creating a Simple Bundle / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/getting_started/creating_a_simple_bundle.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,99 +126,82 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="apache-celix-getting-started-guide-creating-a-simple-bundle">Apache Celix - Getting Started Guide: Creating a Simple Bundle</h1>
-
+<h1 id="apache-celix---getting-started-guide-creating-a-simple-bundle">Apache Celix - Getting Started Guide: Creating a Simple Bundle</h1>
 <h2 id="intro">Intro</h2>
-
 <p>This page is intended for first time users of Apache Celix. It should guide you through building &amp; installing Apache Celix, setting up a new project, creating your first bundle, setting up the project for use with Eclipse project and finally running and debugging your bundle directly from eclipse workspace.</p>
-
 <p>If there are any uncertainties or question, don&rsquo;t hesitate to ask your questions in the <a href="https://celix.apache.org/support/mailinglist.html">Apache Celix mailing</a>.</p>
-
 <h2 id="prerequisite">Prerequisite</h2>
-
 <p>Some experience with a command line interface (xterm) is expected to be able to follow this guide.</p>
-
 <h2 id="building-and-installing">Building and Installing</h2>
-
 <p>For Apache Celix see <a href="../building/readme.html">Building And Installing</a></p>
-
 <h2 id="installing-eclipse-cdt">Installing Eclipse CDT</h2>
-
 <p>Download the latest eclipse CDT at <a href="http://www.eclipse.org">http://www.eclipse.org</a> and install it on your system. For more information on how the install eclipse on your system consult the eclipse documentation. For this getting started guide the luna version of eclipse was used (<a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/luna/R/eclipse-cpp-luna-R-linux-gtk-x86_64.tar.gz">linux</a> <a href="http://www.eclipse.org/downloads [...]
-
 <h2 id="apache-celix-bundle-project">Apache Celix Bundle project</h2>
-
 <p>Now that Apache Celix and Eclipse is installed, we are ready to create a new Apache Celix Bundle project.
 CMake is used as build tool for Apache Celix projects.</p>
-
 <p>To setup of the project, first create a new project dir to work in:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#080;font-style:italic">#Create a new workspace to work in, e.g:</span>
 mkdir <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">HOME</span><span style="color:#b68;font-weight:bold">}</span>/workspace
 <span style="color:#a2f">export</span> <span style="color:#b8860b">WS</span><span style="color:#666">=</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">HOME</span><span style="color:#b68;font-weight:bold">}</span>/workspace
 
 mkdir <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/myproject
-<span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/myproject</code></pre></div>
-<p>Then create a CMakeLists.txt file - the makefile variant of CMake -in project root directory:</p>
+<span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/myproject
+</code></pre></div><p>Then create a CMakeLists.txt file - the makefile variant of CMake -in project root directory:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-cmake" data-lang="cmake"><span style="color:#080;font-style:italic">#${WS}/myproject/CMakeLists.txt
 </span><span style="color:#080;font-style:italic"></span>	<span style="">
 </span><span style=""></span><span style="color:#080;font-style:italic">#Part 1. setup project
 </span><span style="color:#080;font-style:italic"></span><span style="color:#a2f">cmake_minimum_required</span>(<span style="color:#b44">VERSION</span> <span style="color:#b44">3.4</span>)<span style="">
 </span><span style=""></span><span style="color:#a2f">project</span>(<span style="color:#b44">myproject</span> <span style="color:#b44">C</span> <span style="color:#b44">CXX</span>)<span style="">
-</span><span style="">
+</span><span style=""></span><span style="">
 </span><span style=""></span><span style="color:#080;font-style:italic">#Part 2. setup compilers
 </span><span style="color:#080;font-style:italic"></span><span style="color:#a2f">SET</span>(<span style="color:#b44">CMAKE_C_FLAGS</span> <span style="color:#b44">&#34;-D_GNU_SOURCE -std=gnu99 -Wall -Werror -fPIC ${CMAKE_C_FLAGS}&#34;</span>)<span style="">
 </span><span style=""></span><span style="color:#a2f">SET</span>(<span style="color:#b44">CMAKE_C_FLAGS_DEBUG</span> <span style="color:#b44">&#34;-g -DDEBUG&#34;</span>)<span style="">
 </span><span style=""></span><span style="color:#a2f">SET</span>(<span style="color:#b44">CMAKE_CXX_FLAGS</span> <span style="color:#b44">&#34;-std=c++11 ${CMAKE_CXX_FLAGS}&#34;</span>)<span style="">
 </span><span style=""></span><span style="color:#a2f">SET</span>(<span style="color:#b44">CMAKE_CXX_FLAGS_DEBUG</span> <span style="color:#b44">&#34;-g -DDEBUG&#34;</span>)<span style="">
-</span><span style="">
+</span><span style=""></span><span style="">
 </span><span style=""></span><span style="color:#080;font-style:italic">#Part 3. Setup Celix cmake files, include paths, libraries and library paths
-</span><span style="color:#080;font-style:italic">#Note. If celix is not installed in /usr/local dir, change the location accordingly.
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080;font-style:italic">#Note. If celix is not installed in /usr/local dir, change the location accordingly.
 </span><span style="color:#080;font-style:italic"></span><span style="color:#a2f">set</span>(<span style="color:#b44">CMAKE_MODULE_PATH</span>  <span style="color:#666">${</span><span style="color:#b8860b">CMAKE_MODULE_PATH</span><span style="color:#666">}</span> <span style="color:#b44">&#34;/usr/local/share/celix/cmake/modules&#34;</span>)<span style="">
 </span><span style=""></span><span style="color:#a2f">find_package</span>(<span style="color:#b44">CELIX</span> <span style="color:#b44">REQUIRED</span>)<span style="">
 </span><span style=""></span><span style="color:#a2f">include_directories</span>(<span style="color:#666">${</span><span style="color:#b8860b">CELIX_INCLUDE_DIRS</span><span style="color:#666">}</span>)<span style="">
-</span><span style="">
+</span><span style=""></span><span style="">
 </span><span style=""></span><span style="color:#080;font-style:italic">#Part 4. Choose C, C++ or both
 </span><span style="color:#080;font-style:italic"></span><span style="color:#a2f">add_subdirectory</span>(<span style="color:#b44">bundles/HelloWorld_c</span>) <span style="color:#080;font-style:italic">#C
-</span><span style="color:#080;font-style:italic"></span><span style="color:#a2f">add_subdirectory</span>(<span style="color:#b44">bundles/HelloWorld_cxx</span>) <span style="">#C++</span></code></pre></div>
-<p>This CMakeLists.txt file, sets up the following:</p>
-
+</span><span style="color:#080;font-style:italic"></span><span style="color:#a2f">add_subdirectory</span>(<span style="color:#b44">bundles/HelloWorld_cxx</span>) <span style="color:#080;font-style:italic">#C++
+</span></code></pre></div><p>This CMakeLists.txt file, sets up the following:</p>
 <ul>
 <li>Part 1
-
 <ul>
 <li>The minimum cmake version required.</li>
 <li>The project name</li>
 <li>The type of source files to expect, in this case C and C++.</li>
-</ul></li>
+</ul>
+</li>
 <li>Part 2
-
 <ul>
 <li>Setup the compilers. c99 for C and C++11 for C++</li>
-</ul></li>
+</ul>
+</li>
 <li>Part 3
-
 <ul>
 <li>The Celix package should be searched, configured and that the Celix package is required.</li>
 <li>For all build targets in this CMakeLists.txt file or any sub directory CMakeLists.txt files the Apache Celix headers directory should be included.</li>
-</ul></li>
+</ul>
+</li>
 <li>Part 4
-
 <ul>
-<li>The CMakelists.txt file in the subdirectory bundles/hello_world and/or bundles/HelloWorld should also be processed.
-<br /></li>
-</ul></li>
+<li>The CMakelists.txt file in the subdirectory bundles/hello_world and/or bundles/HelloWorld should also be processed.</li>
+</ul>
+</li>
 </ul>
-
 <p>It is a good practice to create a separate CMakeLists.txt file for every bundle you want to build. For the hello_world bundle a CMakeLists.txt file should be created in the bundles/hello_world sub directory.</p>
-
 <p>Create the sub directory:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#080;font-style:italic">#Create directory structure for the hello_world bundles
-</span><span style="color:#080;font-style:italic"></span><span style="">cd</span> <span style="">${WS}/myproject
-</span><span style="">mkdir</span> <span style="">-p</span> <span style="">bundles/HelloWorld_c/src
-</span><span style="">mkdir</span> <span style="">-p</span> <span style="">bundles/HelloWorld_cxx/src
-</span><span style="">mkdir</span> <span style="">-p</span> <span style="">bundles/HelloWorld_cxx/include</span></code></pre></div>
-<p>And add the following CMakeLists.txt file for the C Bundle:</p>
+</span><span style="color:#080;font-style:italic"></span><span style="">c</span><span style="">d</span> <span style="">$</span><span style="">{</span><span style="">W</span><span style="">S</span><span style="">}</span><span style="">/</span><span style="">m</span><span style="">y</span><span style="">p</span><span style="">r</span><span style="">o</span><span style="">j</span><span style="">e</span><span style="">c</span><span style="">t</span><span style="">
+</span><span style=""></span><span style="">m</span><span style="">k</span><span style="">d</span><span style="">i</span><span style="">r</span> <span style="">-</span><span style="">p</span> <span style="">b</span><span style="">u</span><span style="">n</span><span style="">d</span><span style="">l</span><span style="">e</span><span style="">s</span><span style="">/</span><span style="">H</span><span style="">e</span><span style="">l</span><span style="">l</span><span style="">o</span>< [...]
+</span><span style=""></span><span style="">m</span><span style="">k</span><span style="">d</span><span style="">i</span><span style="">r</span> <span style="">-</span><span style="">p</span> <span style="">b</span><span style="">u</span><span style="">n</span><span style="">d</span><span style="">l</span><span style="">e</span><span style="">s</span><span style="">/</span><span style="">H</span><span style="">e</span><span style="">l</span><span style="">l</span><span style="">o</span>< [...]
+</span><span style=""></span><span style="">m</span><span style="">k</span><span style="">d</span><span style="">i</span><span style="">r</span> <span style="">-</span><span style="">p</span> <span style="">b</span><span style="">u</span><span style="">n</span><span style="">d</span><span style="">l</span><span style="">e</span><span style="">s</span><span style="">/</span><span style="">H</span><span style="">e</span><span style="">l</span><span style="">l</span><span style="">o</span>< [...]
+</span></code></pre></div><p>And add the following CMakeLists.txt file for the C Bundle:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#080;font-style:italic">#${WS}/myproject/bundles/HelloWorld_c/CMakeLists.txt
 </span><span style="color:#080;font-style:italic"></span><span style="">
 </span><span style=""></span><span style="color:#a2f">add_celix_bundle</span>(<span style="color:#b44">HelloWorld_c</span>
@@ -212,13 +209,13 @@ mkdir <span style="color:#b68;font-weight:bold">${</span><span style="color:#b88
 	<span style="color:#b44">SOURCES</span>
         <span style="color:#b44">src/HelloWorld_activator.c</span>
 )	<span style="">
-</span><span style="">
+</span><span style=""></span><span style="">
 </span><span style=""></span><span style="color:#a2f">if</span>(<span style="color:#b44">APPLE</span>)<span style="">
 </span><span style=""></span>    <span style="color:#a2f">target_link_libraries</span>(<span style="color:#b44">HelloWorld_c</span> <span style="color:#666">${</span><span style="color:#b8860b">CELIX_LIBRARIES</span><span style="color:#666">}</span> <span style="color:#b44">-Wl,-all_load</span> <span style="color:#666">${</span><span style="color:#b8860b">CELIX_DM_STATIC_LIB</span><span style="color:#666">}</span>)<span style="">
 </span><span style=""></span><span style="color:#a2f">else</span>()  <span style="">
 </span><span style=""></span>    <span style="color:#a2f">target_link_libraries</span>(<span style="color:#b44">HelloWorld_c</span> <span style="color:#b44">-Wl,--no-undefined</span> <span style="color:#b44">-Wl,--whole-archive</span> <span style="color:#666">${</span><span style="color:#b8860b">CELIX_DM_STATIC_LIB</span><span style="color:#666">}</span> <span style="color:#b44">-Wl,--no-whole-archive</span> <span style="color:#666">${</span><span style="color:#b8860b">CELIX_LIBRARIES</s [...]
-</span><span style=""></span><span style="color:#a2f">endif</span>()</code></pre></div>
-<p>And/or the following CMakeLists.txt for the C++ bundle:</p>
+</span><span style=""></span><span style="color:#a2f">endif</span>()<span style="">
+</span></code></pre></div><p>And/or the following CMakeLists.txt for the C++ bundle:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#080;font-style:italic">#${WS}/myproject/bundles/HelloWorld_cxx/CMakeLists.txt
 </span><span style="color:#080;font-style:italic"></span><span style="">
 </span><span style=""></span><span style="color:#a2f">add_celix_bundle</span>(<span style="color:#b44">HelloWorld_cxx</span>
@@ -227,37 +224,35 @@ mkdir <span style="color:#b68;font-weight:bold">${</span><span style="color:#b88
         <span style="color:#b44">src/HelloWorldActivator.cc</span>
 )<span style="">
 </span><span style=""></span><span style="color:#a2f">target_include_directories</span>(<span style="color:#b44">HelloWorld_cxx</span> <span style="color:#b44">PRIVATE</span> <span style="color:#b44">include</span>)<span style="">
-</span><span style="">
+</span><span style=""></span><span style="">
 </span><span style=""></span><span style="color:#a2f">IF</span>(<span style="color:#b44">APPLE</span>)<span style="">
 </span><span style=""></span>    <span style="color:#a2f">target_link_libraries</span>(<span style="color:#b44">HelloWorld_cxx</span> <span style="color:#666">${</span><span style="color:#b8860b">CELIX_LIBRARIES</span><span style="color:#666">}</span> <span style="color:#b44">-Wl,-all_load</span> <span style="color:#666">${</span><span style="color:#b8860b">CELIX_DM_STATIC_CXX_LIB</span><span style="color:#666">}</span>)<span style="">
 </span><span style=""></span><span style="color:#a2f">else</span>()<span style="">
 </span><span style=""></span>    <span style="color:#a2f">target_link_libraries</span>(<span style="color:#b44">HelloWorld_cxx</span> <span style="color:#b44">-Wl,--no-undefined</span> <span style="color:#b44">-Wl,--whole-archive</span> <span style="color:#666">${</span><span style="color:#b8860b">CELIX_DM_STATIC_CXX_LIB</span><span style="color:#666">}</span> <span style="color:#b44">-Wl,--no-whole-archive</span> <span style="color:#666">${</span><span style="color:#b8860b">CELIX_LIBRAR [...]
-</span><span style=""></span><span style="color:#a2f">endif</span>()</code></pre></div>
-<p>These CMakeLists.txt files declare that the bundles should be build based on the build result (shared library) of the declared sources (in this case the <code>private/src/hello_world_activator.c</code> or <code>private/src/HelloWorldActivator.cc</code> source).
+</span><span style=""></span><span style="color:#a2f">endif</span>()<span style="">
+</span></code></pre></div><p>These CMakeLists.txt files declare that the bundles should be build based on the build result (shared library) of the declared sources (in this case the <code>private/src/hello_world_activator.c</code> or <code>private/src/HelloWorldActivator.cc</code> source).
 The <code>add_celix_bundle</code> CMake function is an Apache Celix specific CMake extension.
 The library used for the bundle will also be linked against the dependency manager static library.</p>
-
 <p>The Celix framework will install the bundle, load the bundle shared library and call the bundle activator entry symbols. These entries need to be programmed by the user.
 Note that in these examples we use the dependency manager libraries (C and C++ version) instead of developing a &ldquo;vanilla&rdquo; bundle activator;
 The dependency manager uses a higher abstraction and is more simple to understand and maintain, but not part of the OSGi standard.</p>
-
 <p>The C Bundle Activator:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//${WS}/myproject/bundles/hello_world/src/HelloWorld_activator.c
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;stdio.h&gt;</span><span style="color:#080">
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdio.h&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;dm_activator.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;dm_activator.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 
 <span style="color:#a2f;font-weight:bold">struct</span> userData {
 	    <span style="color:#0b0;font-weight:bold">char</span> <span style="color:#666">*</span> word;
 };
 
-celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt context, <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">**</span>out) {
+celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt context, <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span><span style="color:#666">*</span>out) {
 	celix_status_t status <span style="color:#666">=</span> CELIX_SUCCESS;
     <span style="color:#a2f;font-weight:bold">struct</span> userData<span style="color:#666">*</span> result <span style="color:#666">=</span> calloc(<span style="color:#666">1</span>, <span style="color:#a2f;font-weight:bold">sizeof</span>(<span style="color:#666">*</span>result));
-	<span style="color:#a2f;font-weight:bold">if</span> (result <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
-            result<span style="color:#666">-&gt;</span>word <span style="color:#666">=</span> <span style="color:#b44">&#34;C World&#34;</span>;
+	<span style="color:#a2f;font-weight:bold">if</span> (result <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
+            result<span style="color:#666">-</span><span style="color:#666">&gt;</span>word <span style="color:#666">=</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">C World</span><span style="color:#b44">&#34;</span>;
             <span style="color:#666">*</span>out <span style="color:#666">=</span> result;
     } <span style="color:#a2f;font-weight:bold">else</span> {
             status <span style="color:#666">=</span> CELIX_START_ERROR;
@@ -267,49 +262,47 @@ celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt co
 
 celix_status_t <span style="color:#00a000">dm_init</span>(<span style="color:#0b0;font-weight:bold">void</span><span style="color:#666">*</span> userData, bundle_context_pt context, dm_dependency_manager_pt manager) {
     <span style="color:#a2f;font-weight:bold">struct</span> userData<span style="color:#666">*</span> data <span style="color:#666">=</span> (<span style="color:#a2f;font-weight:bold">struct</span> userData <span style="color:#666">*</span>) userData;
-    printf(<span style="color:#b44">&#34;Hello %s</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>, data<span style="color:#666">-&gt;</span>word);
+    printf(<span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Hello %s</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>, data<span style="color:#666">-</span><span style="color:#666">&gt;</span>word);
     <span style="color:#a2f;font-weight:bold">return</span> CELIX_SUCCESS;
 }
 
 celix_status_t <span style="color:#00a000">dm_destroy</span>(<span style="color:#0b0;font-weight:bold">void</span><span style="color:#666">*</span> userData, bundle_context_pt context, dm_dependency_manager_pt manager) {
     free(userData);
     <span style="color:#a2f;font-weight:bold">return</span> CELIX_SUCCESS;
-}</code></pre></div>
-<p>The C++ Bundle Activator (header + source):</p>
+}
+</code></pre></div><p>The C++ Bundle Activator (header + source):</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//${WS}/myproject/bundles/HelloWorld/include/HelloWorldActivator.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef HELLOWORLDACTIVATOR_H_
-</span><span style="color:#080">#define HELLOWORLDACTIVATOR_H_
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef HELLOWORLDACTIVATOR_H_</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define HELLOWORLDACTIVATOR_H_</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;celix/dm/DmActivator.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;celix/dm/DmActivator.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">class</span><span style=""> </span><span style="color:#00f">HelloWorldActivator</span> <span style="color:#666">:</span> <span style="color:#a2f;font-weight:bold">public</span> celix<span style="color:#666">::</span>dm<span style="color:#666">::</span>DmActivator {
+<span style="color:#a2f;font-weight:bold">class</span> <span style="color:#00f">HelloWorldActivator</span> <span style="color:#666">:</span> <span style="color:#a2f;font-weight:bold">public</span> celix<span style="color:#666">:</span><span style="color:#666">:</span>dm<span style="color:#666">:</span><span style="color:#666">:</span>DmActivator {
 <span style="color:#a2f;font-weight:bold">private</span><span style="color:#666">:</span>
-    <span style="color:#a2f;font-weight:bold">const</span> std<span style="color:#666">::</span>string word {<span style="color:#b44">&#34;C++ World&#34;</span>};
+    <span style="color:#a2f;font-weight:bold">const</span> std<span style="color:#666">:</span><span style="color:#666">:</span>string word {<span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">C++ World</span><span style="color:#b44">&#34;</span>};
 <span style="color:#a2f;font-weight:bold">public</span><span style="color:#666">:</span>
-    HelloWorldActivator(celix<span style="color:#666">::</span>dm<span style="color:#666">::</span>DependencyManager<span style="color:#666">&amp;</span> mng) <span style="color:#666">:</span> DmActivator {mng} {}
-    <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#0b0;font-weight:bold">void</span> init();
+    HelloWorldActivator(celix<span style="color:#666">:</span><span style="color:#666">:</span>dm<span style="color:#666">:</span><span style="color:#666">:</span>DependencyManager<span style="color:#666">&amp;</span> mng) <span style="color:#666">:</span> DmActivator {mng} {}
+    <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">init</span>();
     <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">deinit</span>();
 };
 
-<span style="color:#080">#endif </span><span style="color:#080;font-style:italic">//HELLOWORLDACTIVATOR_H_
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//HELLOWORLDACTIVATOR_H_
 </span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//${WS}/myproject/bundles/HelloWorld/private/src/HelloWorldActivator.cc
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;HelloWorldActivator.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;iostream&gt;</span><span style="color:#080">
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;HelloWorldActivator.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;iostream&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-DmActivator<span style="color:#666">*</span> DmActivator<span style="color:#666">::</span>create(celix<span style="color:#666">::</span>dm<span style="color:#666">::</span>DependencyManager<span style="color:#666">&amp;</span> mng) {
-    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">new</span> HelloWorldActivator(mng);
+DmActivator<span style="color:#666">*</span> DmActivator<span style="color:#666">:</span><span style="color:#666">:</span>create(celix<span style="color:#666">:</span><span style="color:#666">:</span>dm<span style="color:#666">:</span><span style="color:#666">:</span>DependencyManager<span style="color:#666">&amp;</span> mng) {
+    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">new</span> <span style="color:#00a000">HelloWorldActivator</span>(mng);
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> HelloWorldActivator<span style="color:#666">::</span>init() {
-    std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;Hello &#34;</span> <span style="color:#666">&lt;&lt;</span> <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>word <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+<span style="color:#0b0;font-weight:bold">void</span> HelloWorldActivator<span style="color:#666">:</span><span style="color:#666">:</span>init() {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Hello </span><span style="color:#b44">&#34;</span> <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>w [...]
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> HelloWorldActivator<span style="color:#666">::</span>deinit() {
+<span style="color:#0b0;font-weight:bold">void</span> HelloWorldActivator<span style="color:#666">:</span><span style="color:#666">:</span>deinit() {
     <span style="color:#080;font-style:italic">//nothing to do
 </span><span style="color:#080;font-style:italic"></span>}
-</code></pre></div>
-<h3 id="building">Building</h3>
-
+</code></pre></div><h3 id="building">Building</h3>
 <p>One of the highly recommended features of CMake is the ability to do out of source builds, the benefit is that all of the build results will go in a separate directory without cluttering the (source) project.
 CMake also needs to able to find the cmake files Celix provides. This can be achieved by providing a CMAKE_MODULE_PATH variable (or setting the CMAKE_MODULE_PATH in the top level CMakeLists.txt).
 For this example it is assumed that Celix in installed in <code>/usr/local</code>.
@@ -319,99 +312,66 @@ mkdir myproject-build
 <span style="color:#a2f">cd</span> myproject-build
 cmake ../myproject
 make all  
-<span style="color:#b44">```</span>	
-
-Hopefully you will some some build results scrolling over the screen and actual build results in the build directory.
+</code></pre></div><p>Hopefully you will some some build results scrolling over the screen and actual build results in the build directory.
 There should be a HelloWorld_c.zip in the bundles/HelloWorld_c directory and a HelloWorld_cxx.zip in the bundles/HelloWorld_cxx directory,
 these are the actual bundles.
-A bundle on its own has no real value, so lets setup a Celix container and run Celix with these bundles.
-
-<span style="color:#080;font-style:italic">### Running</span>
-
-To create a deployment <span style="color:#a2f;font-weight:bold">for</span> the hello world bundles two things are needed: 
-	
-<span style="color:#666">1</span>. Add a <span style="color:#b44">`</span>add_celix_container<span style="color:#b44">`</span> statement in the <span style="color:#666">(</span>top level<span style="color:#666">)</span> <span style="color:#b44">`</span>CMakeLists.txt<span style="color:#b44">`</span> file declaring what to deploy and under which name.
-
-<span style="color:#b44">```</span>CMake
-<span style="color:#080;font-style:italic">#${WS}/myproject/CMakeLists.txt</span>
-add_celix_container<span style="color:#666">(</span>myproject
-    CXX 
-    BUNDLES 
-	    <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">CELIX_BUNDLES_DIR</span><span style="color:#b68;font-weight:bold">}</span>/shell.zip 
-	    <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">CELIX_BUNDLES_DIR</span><span style="color:#b68;font-weight:bold">}</span>/shell_tui.zip
-	    <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">CELIX_BUNDLES_DIR</span><span style="color:#b68;font-weight:bold">}</span>/dm_shell.zip 
-	    HelloWorld_c <span style="color:#080;font-style:italic">#C bundle</span>
-	    HelloWorld_cxx <span style="color:#080;font-style:italic">#C++ bundle</span>
-<span style="color:#666">)</span>		</code></pre></div>
-<p>With the <code>add_celix_container</code> CMake function a Celix container will be configured, which bundles to use can be specified with absolute paths to
+A bundle on its own has no real value, so lets setup a Celix container and run Celix with these bundles.</p>
+<h3 id="running">Running</h3>
+<p>To create a deployment for the hello world bundles two things are needed:</p>
+<ol>
+<li>Add a <code>add_celix_container</code> statement in the (top level) <code>CMakeLists.txt</code> file declaring what to deploy and under which name.</li>
+</ol>
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#080;font-style:italic">#${WS}/myproject/CMakeLists.txt
+</span><span style="color:#080;font-style:italic"></span><span style="color:#a2f">add_celix_container</span>(<span style="color:#b44">myproject</span>
+    <span style="color:#b44">CXX</span> 
+    <span style="color:#b44">BUNDLES</span> 
+	    <span style="color:#666">${</span><span style="color:#b8860b">CELIX_BUNDLES_DIR</span><span style="color:#666">}</span><span style="color:#b44">/shell.zip</span> 
+	    <span style="color:#666">${</span><span style="color:#b8860b">CELIX_BUNDLES_DIR</span><span style="color:#666">}</span><span style="color:#b44">/shell_tui.zip</span>
+	    <span style="color:#666">${</span><span style="color:#b8860b">CELIX_BUNDLES_DIR</span><span style="color:#666">}</span><span style="color:#b44">/dm_shell.zip</span> 
+	    <span style="color:#b44">HelloWorld_c</span> <span style="color:#080;font-style:italic">#C bundle
+</span><span style="color:#080;font-style:italic"></span>	    <span style="color:#b44">HelloWorld_cxx</span> <span style="color:#080;font-style:italic">#C++ bundle
+</span><span style="color:#080;font-style:italic"></span>)		<span style="">
+</span></code></pre></div><p>With the <code>add_celix_container</code> CMake function a Celix container will be configured, which bundles to use can be specified with absolute paths to
 bundle files (e.g. the shell.zip bundle) or Celix bundle CMake target (e.g. the HelloWorld_c bundle).</p>
-
 <p>Rerun make again form the build project. the make files generated by CMake will ensure cmake is run it again to update the actual make files.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/myproject-build
 make -j
-<span style="color:#b44">```</span>	
-
-Now a deploy directory myproject should be available in the deploy directory. This directory contains - among other files - a release.sh script. This can be used to setup the required environment variables <span style="color:#666">(</span>like LD_LIBRARY_PATH<span style="color:#666">)</span>.
-
-<span style="color:#b44">```</span>bash
-<span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/myproject-build/deploy/myproject
-./myproject</code></pre></div>
-<p>The HelloWorld_c and HelloWorld_cxx bundles should be started with their own famous &ldquo;Hello World&rdquo; text variant printed. One for the C and one for the C++ bundle.
+</code></pre></div><p>Now a deploy directory myproject should be available in the deploy directory. This directory contains - among other files - a release.sh script. This can be used to setup the required environment variables (like LD_LIBRARY_PATH).</p>
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/myproject-build/deploy/myproject
+./myproject
+</code></pre></div><p>The HelloWorld_c and HelloWorld_cxx bundles should be started with their own famous &ldquo;Hello World&rdquo; text variant printed. One for the C and one for the C++ bundle.
 The shell and shell_tui bundle are also deployed and these can be used to query and control the running framework. Below some commands are shown for querying the installed bundles, listing all known shell command, showing the help of a specific command and stopping a specific bundle (note that bundle 0 is the framework &ldquo;bundle&rdquo;):</p>
-
 <pre><code>lb 
 help
 stop 0
-</code></pre>
-
-<h2 id="apache-celix-projects-in-eclipse">Apache Celix Projects in Eclipse</h2>
-
+</code></pre><h2 id="apache-celix-projects-in-eclipse">Apache Celix Projects in Eclipse</h2>
 <p>A nice feature of CMake is the ability to generate Eclipse project files, with this feature bundles can also be developed with use of Eclipse. This should help speed up the development process.
 To get started change directory to the build directory and generate a eclipse project file.</p>
-
 <pre><code>cd ${WS}/myproject-build 
 cmake -G &quot;Eclipse CDT4 - Unix Makefiles&quot; .
 </code></pre>
-
 <p>Startup the Eclipse EDI and a chose the <code>${WS}</code></p>
-
-<p><img src="getting_started_img1.png" alt="select workspace" /></p>
-
+<p><img src="getting_started_img1.png" alt="select workspace"></p>
 <p>Import the project with existing project.</p>
-
-<p><img src="getting_started_img2.png" alt="import project" /></p>
-
+<p><img src="getting_started_img2.png" alt="import project"></p>
 <p>To build the project, use Project-&gt;Build All.
 To run or debug from Eclipse navigate to the myproject deploy directory and right click on
 the &lsquo;myproject&rsquo; executable and as &ldquo;Local C/C++ Application&rdquo;</p>
-
 <h2 id="apache-celix-projects-in-clion">Apache Celix Projects in CLion</h2>
-
 <p>Using Apache Celix projects in CLion quite easy.
 Just use <code>File -&gt; Open ...</code> and select a Apache Celix project.
 Because CLion is a IDE for CMake projects and Apache Celix projects are CMake projects this works out of the box.</p>
-
 <p>To run a Celix container just select the target from CLion and press Run.</p>
-
 <h2 id="next">Next</h2>
-
 <p>The get a complete overview of the available Celix CMake commands see:</p>
-
 <ul>
 <li><a href="../cmake_commands/readme.html">Apache Celix - Celix CMake Commands</a></li>
 </ul>
-
 <p>The idea behind service oriented programming is that functionality is provided and used by abstract service, which hide implementation details.
 For a guide how to provide and use services see</p>
-
 <ul>
 <li><a href="using_services_with_c.html">Apache Celix - Getting Started Guide: Using Services with C</a></li>
-<li><a href="using_services_with_cxx.html">Apache Celix - Getting Started Guide: Using Services with C++</a>
-
-
-
-<br />
-<br /></li>
+<li><a href="using_services_with_cxx.html">Apache Celix - Getting Started Guide: Using Services with C++</a></li>
 </ul>
 
 
diff --git a/content/docs/celix/documents/getting_started/readme.html b/content/docs/2.1.0/celix/documents/getting_started/readme.html
similarity index 82%
copy from content/docs/celix/documents/getting_started/readme.html
copy to content/docs/2.1.0/celix/documents/getting_started/readme.html
index 696896a..e15ce99 100644
--- a/content/docs/celix/documents/getting_started/readme.html
+++ b/content/docs/2.1.0/celix/documents/getting_started/readme.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>readme.md / Apache Celix</title>
+    <title>Getting Started Guide / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/getting_started/readme.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,16 +126,11 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="apache-celix-getting-started-guide">Apache Celix - Getting Started Guide</h1>
-
+<h1 id="apache-celix---getting-started-guide">Apache Celix - Getting Started Guide</h1>
 <h2 id="guides">Guides</h2>
-
 <p>There are several guide to help you get started. The first guide is <a href="creating_a_simple_bundle.html">Getting Started: Creating a simple bundle</a>
 and this should get you started for your first C and/or C++ bundle.</p>
-
 <p>After that you can extend the example by using services with the following guides:</p>
-
 <ul>
 <li><a href="using_services_with_c.html">Getting Started: Using Services with C</a></li>
 <li><a href="using_services_with_cxx.html">Getting Started: Using Services with C++</a>.</li>
diff --git a/content/docs/celix/documents/getting_started/using_services_with_c.html b/content/docs/2.1.0/celix/documents/getting_started/using_services_with_c.html
similarity index 68%
copy from content/docs/celix/documents/getting_started/using_services_with_c.html
copy to content/docs/2.1.0/celix/documents/getting_started/using_services_with_c.html
index ebce291..c3f4557 100644
--- a/content/docs/celix/documents/getting_started/using_services_with_c.html
+++ b/content/docs/2.1.0/celix/documents/getting_started/using_services_with_c.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>using_services_with_c.md / Apache Celix</title>
+    <title>Using Services with C / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/getting_started/using_services_with_c.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,25 +126,19 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="apache-celix-using-services-with-c">Apache Celix - Using Services with C</h1>
-
+<h1 id="apache-celix---using-services-with-c">Apache Celix - Using Services with C</h1>
 <h2 id="intro">Intro</h2>
-
 <p>This example gives an overview for providing and using services with Apache Celix with C.</p>
-
 <h2 id="services">Services</h2>
-
 <p>To start of, C services in Celix are just a pointer to a memory location registered in the service registry using a name and an optional set of key/value pairs.</p>
-
 <p>By convention use the following service layout:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//example.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef EXAMPLE_H_
-</span><span style="color:#080">#define EXAMPLE_H_
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef EXAMPLE_H_</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define EXAMPLE_H_</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#define EXAMPLE_NAME            &#34;org.example&#34;
-</span><span style="color:#080">#define EXAMPLE_VERSION         &#34;1.0.0&#34;
-</span><span style="color:#080">#define EXAMPLE_CONSUMER_RANGE  &#34;[1.0.0,2.0.0)&#34;
+<span style="color:#080">#</span><span style="color:#080">define EXAMPLE_NAME            &#34;org.example&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define EXAMPLE_VERSION         &#34;1.0.0&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define EXAMPLE_CONSUMER_RANGE  &#34;[1.0.0,2.0.0)&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 
 <span style="color:#a2f;font-weight:bold">struct</span> example_struct {
@@ -140,32 +148,25 @@ limitations under the License.
 
 <span style="color:#a2f;font-weight:bold">typedef</span> <span style="color:#a2f;font-weight:bold">struct</span> example_struct example_t;
 
-<span style="color:#080">#endif </span><span style="color:#080;font-style:italic">/* EXAMPLE_H_ */</span></code></pre></div>
-<p>For a Celix service a service name, service provider version and service consumer range should be declared.
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">/* EXAMPLE_H_ */</span><span style="color:#080">
+</span><span style="color:#080"></span>
+</code></pre></div><p>For a Celix service a service name, service provider version and service consumer range should be declared.
 This is explicitly done with macros to prevent symbols so to that no linking dependencies are introduced.</p>
-
 <p>Then the actual struct for the service needs to be declared.
 The first element of the service struct should be a handle which can be used to store the service context, as convention we keep this pointer a void pointer to explicitly make it opaque.
 Note that also an opaque struct could be used (e.g a declared but not defined struct), but this can become problematic concerning components registering multiple services.
 In that case explicit cast are needed to prevent warning and this can be confusing for the To prevent that issues void pointers are preferred.</p>
-
 <p>The rest of the element should be function pointers, which by convention should return an celix_status_t or int (which is technically the same).
 The return value is used as a way of handling errors and is also needed to be able to make remote services (e.g. to be able to handle remote exceptions).</p>
-
 <p>The first argument of a service function should be the service handle and if there is a result the last argument should be a output parameter (either pre allocated (e.g. double *) or not (e.g. double <strong>)).
 If the caller is not the owner of the output argument, a const pointer should be used (e.g. const char</strong>).
 It is also possible to create typedef of the pointer to the service struct (e.g. typedef struct example_struct example_t), but this is not needed.</p>
-
 <p>In the Celix code base there are still service which uses a typedef with a pointer (e.g. typedef struct example_struct* example_struct_pt). This should be avoided,
 because it is not possible to create the const pointer of those typedefs and it is not possible to include those typedef inside a existing struct without the needed for an additional malloc.</p>
-
 <h3 id="semantic-versioning">Semantic Versioning</h3>
-
 <p>For versioning, semantic versioning should be used.</p>
-
 <p>A backward incompatible change should lead to a major version increase (e.g. 1.0.0 -&gt; 2.0.0).
 For a C Service versioning is used to express binary compatibility (for the same platform / compiler), change that are incompatible are:</p>
-
 <ul>
 <li>Removing a function</li>
 <li>Adding a function to before any other function</li>
@@ -173,52 +174,38 @@ For a C Service versioning is used to express binary compatibility (for the same
 <li>Changing the signature of a function</li>
 <li>Changing the semantics of a argument (e.g. changing range input from &ldquo;range in kilometer&rdquo; to &ldquo;range in meters&rdquo;)</li>
 </ul>
-
 <p>A backwards binary compatible change which extend the functionality should lead to a minor version increase (e.g. 1.0.0 -&gt; 1.1.0).
 Changes considered backwards compatible which extend the functionality are:</p>
-
 <ul>
 <li>Adding a function to the back of the service struct</li>
 </ul>
-
 <p>A backwards binary compatible change which does not extend the functionality should lead to a micro version increase (e.g. 1.0.0 -&gt; 1.0.1).
 Changes considered backwards binary compatible which does not extend the functionality are:</p>
-
 <ul>
 <li>Changes in the documentation</li>
 <li>Renaming of arguments</li>
 </ul>
-
 <p>For C services generally platform specific calling convention are used therefore binary compatibility between service provider and consumers from different compilers is possible (e.g. gcc and clang),
- but not advisable</p>
-
+but not advisable</p>
 <h2 id="components">Components</h2>
-
 <p>Component should use the ADT principle (see <a href="http://inst.eecs.berkeley.edu/~selfpace/studyguide/9C.sg/Output/ADTs.in.C.html">ADT in C</a>).
 Note that is a convention.</p>
-
 <p>Components should have a <code>&lt;cmpName&gt;_create</code> and <code>&lt;cmpName&gt;_destroy</code> function.
 Components can have a <code>&lt;cmpName&gt;_start</code> and <code>&lt;cmpName&gt;_stop</code> function to start/stop threads or invoke functionality needed a fully created component.
 The start function will only be called if all required service are available and the stop function will be called when some required are going or if the component needs to be stopped.</p>
-
 <p>Components can also have a <code>&lt;cmpName&gt;_init</code> and <code>&lt;cmpName&gt;_deinit</code> function which will be called before and after respectively the start and stop function.
 The init/deinit function can be used to include (de)initialization which is not needed/wanted every time when service dependencies are being removed/added.</p>
-
 <h2 id="code-examples">Code Examples</h2>
-
 <p>The next code blocks contains some code examples of components to indicate how to handle service dependencies, how to specify providing services and how to cope with locking/synchronizing.
 The complete example can be found <a href="../../examples/services_example_c">here</a>.</p>
-
 <p>The error checking is very minimal in these example to keep the focus on how to interact with services and how to deal with errors in C / Celix.</p>
-
 <h3 id="bar-example">Bar example</h3>
-
 <p>The bar example is a simple component providing the <code>example</code> service.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//bar.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef BAR_H_
-</span><span style="color:#080">#define BAR_H_
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef BAR_H_</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define BAR_H_</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 <span style="color:#a2f;font-weight:bold">typedef</span> <span style="color:#a2f;font-weight:bold">struct</span> bar_struct bar_t;
 
@@ -227,9 +214,10 @@ bar_t<span style="color:#666">*</span> <span style="color:#00a000">bar_create</s
 
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">bar_method</span>(bar_t <span style="color:#666">*</span>self, <span style="color:#0b0;font-weight:bold">int</span> arg1, <span style="color:#0b0;font-weight:bold">double</span> arg2, <span style="color:#0b0;font-weight:bold">double</span> <span style="color:#666">*</span>out);
 
-<span style="color:#080">#endif //BAR_H_</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//bar.c
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#define OK 0
-</span><span style="color:#080">#define ERROR 1
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//BAR_H_
+</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//bar.c
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">define OK 0</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define ERROR 1</span><span style="color:#080">
 </span><span style="color:#080"></span>
 <span style="color:#a2f;font-weight:bold">struct</span> bar_struct {
     <span style="color:#0b0;font-weight:bold">double</span> prefValue;
@@ -237,8 +225,8 @@ bar_t<span style="color:#666">*</span> <span style="color:#00a000">bar_create</s
 
 bar_t<span style="color:#666">*</span> <span style="color:#00a000">bar_create</span>(<span style="color:#0b0;font-weight:bold">void</span>) {
     bar_t <span style="color:#666">*</span>self <span style="color:#666">=</span> calloc(<span style="color:#666">1</span>, <span style="color:#a2f;font-weight:bold">sizeof</span>(<span style="color:#666">*</span>self));
-    <span style="color:#a2f;font-weight:bold">if</span> (self <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
-        self<span style="color:#666">-&gt;</span>prefValue <span style="color:#666">=</span> <span style="color:#666">42</span>;
+    <span style="color:#a2f;font-weight:bold">if</span> (self <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
+        self<span style="color:#666">-</span><span style="color:#666">&gt;</span>prefValue <span style="color:#666">=</span> <span style="color:#666">42</span>;
     } <span style="color:#a2f;font-weight:bold">else</span> {
         <span style="color:#080;font-style:italic">//log error
 </span><span style="color:#080;font-style:italic"></span>    }
@@ -250,31 +238,32 @@ bar_t<span style="color:#666">*</span> <span style="color:#00a000">bar_create</s
 }
 
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">bar_method</span>(bar_t <span style="color:#666">*</span>self, <span style="color:#0b0;font-weight:bold">int</span> arg1, <span style="color:#0b0;font-weight:bold">double</span> arg2, <span style="color:#0b0;font-weight:bold">double</span> <span style="color:#666">*</span>out) {
-    <span style="color:#0b0;font-weight:bold">double</span> update <span style="color:#666">=</span> (self<span style="color:#666">-&gt;</span>prefValue <span style="color:#666">+</span> arg1) <span style="color:#666">*</span> arg2;
-    self<span style="color:#666">-&gt;</span>prefValue <span style="color:#666">=</span> update;
+    <span style="color:#0b0;font-weight:bold">double</span> update <span style="color:#666">=</span> (self<span style="color:#666">-</span><span style="color:#666">&gt;</span>prefValue <span style="color:#666">+</span> arg1) <span style="color:#666">*</span> arg2;
+    self<span style="color:#666">-</span><span style="color:#666">&gt;</span>prefValue <span style="color:#666">=</span> update;
     <span style="color:#666">*</span>out <span style="color:#666">=</span> update;
     <span style="color:#a2f;font-weight:bold">return</span> OK;
-}</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//bar_activator.c
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;dm_activator.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&#34;bar.h&#34;</span><span style="color:#080">
+}
+</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//bar_activator.c
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;dm_activator.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;bar.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 <span style="color:#a2f;font-weight:bold">struct</span> activator {
 	bar_t <span style="color:#666">*</span>bar;
 	example_t exampleService;
 };
 
-celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt context, <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">**</span>userData) {
+celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt context, <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span><span style="color:#666">*</span>userData) {
     celix_status_t status <span style="color:#666">=</span> CELIX_SUCCESS;
     <span style="color:#a2f;font-weight:bold">struct</span> activator <span style="color:#666">*</span>act <span style="color:#666">=</span> calloc(<span style="color:#666">1</span>, <span style="color:#a2f;font-weight:bold">sizeof</span>(<span style="color:#666">*</span>act));
-    <span style="color:#a2f;font-weight:bold">if</span> (act <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
+    <span style="color:#a2f;font-weight:bold">if</span> (act <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
 
-        act<span style="color:#666">-&gt;</span>bar <span style="color:#666">=</span> bar_create();
-        act<span style="color:#666">-&gt;</span>exampleService.handle <span style="color:#666">=</span> act<span style="color:#666">-&gt;</span>bar;
-        act<span style="color:#666">-&gt;</span>exampleService.method <span style="color:#666">=</span> (<span style="color:#0b0;font-weight:bold">void</span><span style="color:#666">*</span>) bar_method;
+        act<span style="color:#666">-</span><span style="color:#666">&gt;</span>bar <span style="color:#666">=</span> bar_create();
+        act<span style="color:#666">-</span><span style="color:#666">&gt;</span>exampleService.handle <span style="color:#666">=</span> act<span style="color:#666">-</span><span style="color:#666">&gt;</span>bar;
+        act<span style="color:#666">-</span><span style="color:#666">&gt;</span>exampleService.method <span style="color:#666">=</span> (<span style="color:#0b0;font-weight:bold">void</span><span style="color:#666">*</span>) bar_method;
 
-        <span style="color:#a2f;font-weight:bold">if</span> (act<span style="color:#666">-&gt;</span>bar <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
+        <span style="color:#a2f;font-weight:bold">if</span> (act<span style="color:#666">-</span><span style="color:#666">&gt;</span>bar <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
             <span style="color:#666">*</span>userData <span style="color:#666">=</span> act;
         } <span style="color:#a2f;font-weight:bold">else</span> {
             free(act);
@@ -290,9 +279,9 @@ celix_status_t <span style="color:#00a000">dm_init</span>(<span style="color:#0b
     <span style="color:#a2f;font-weight:bold">struct</span> activator <span style="color:#666">*</span>activator <span style="color:#666">=</span> userData;
 
     dm_component_pt cmp <span style="color:#666">=</span> <span style="color:#a2f">NULL</span>;
-    component_create(context, <span style="color:#b44">&#34;BAR&#34;</span>, <span style="color:#666">&amp;</span>cmp);
-    component_setImplementation(cmp, activator<span style="color:#666">-&gt;</span>bar);
-    component_addInterface(cmp, EXAMPLE_NAME, EXAMPLE_VERSION, <span style="color:#666">&amp;</span>activator<span style="color:#666">-&gt;</span>exampleService, <span style="color:#a2f">NULL</span>);
+    component_create(context, <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">BAR</span><span style="color:#b44">&#34;</span>, <span style="color:#666">&amp;</span>cmp);
+    component_setImplementation(cmp, activator<span style="color:#666">-</span><span style="color:#666">&gt;</span>bar);
+    component_addInterface(cmp, EXAMPLE_NAME, EXAMPLE_VERSION, <span style="color:#666">&amp;</span>activator<span style="color:#666">-</span><span style="color:#666">&gt;</span>exampleService, <span style="color:#a2f">NULL</span>);
 
     dependencyManager_add(manager, cmp);
     <span style="color:#a2f;font-weight:bold">return</span> status;
@@ -301,18 +290,17 @@ celix_status_t <span style="color:#00a000">dm_init</span>(<span style="color:#0b
 celix_status_t <span style="color:#00a000">dm_destroy</span>(<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span>userData, bundle_context_pt context, dm_dependency_manager_pt manager) {
     celix_status_t status <span style="color:#666">=</span> CELIX_SUCCESS;
     <span style="color:#a2f;font-weight:bold">struct</span> activator <span style="color:#666">*</span>activator <span style="color:#666">=</span> userData;
-    bar_destroy(activator<span style="color:#666">-&gt;</span>bar);
+    bar_destroy(activator<span style="color:#666">-</span><span style="color:#666">&gt;</span>bar);
     free(activator);
     <span style="color:#a2f;font-weight:bold">return</span> status;
-};</code></pre></div>
-<h3 id="foo1-example">Foo1 example</h3>
-
+};
+</code></pre></div><h3 id="foo1-example">Foo1 example</h3>
 <p>The Foo1 example shows how add a service dependency, implement the callback, invoke a service and how to protect the usage of service with use of a mutex.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//foo1.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef FOO1_H_
-</span><span style="color:#080">#define FOO1_H_
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef FOO1_H_</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define FOO1_H_</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 <span style="color:#a2f;font-weight:bold">typedef</span> <span style="color:#a2f;font-weight:bold">struct</span> foo1_struct foo1_t;
 
@@ -325,21 +313,22 @@ foo1_t<span style="color:#666">*</span> <span style="color:#00a000">foo1_create<
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">foo1_setExample</span>(foo1_t <span style="color:#666">*</span>self, <span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>example);
 
 
-<span style="color:#080">#endif //FOO1_H_</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//foo1.c
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;foo1.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//FOO1_H_
+</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//foo1.c
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;foo1.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&lt;stdio.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;unistd.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;string.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;signal.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;stdbool.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;pthread.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;assert.h&gt;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdio.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;unistd.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;string.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;signal.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdbool.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;pthread.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;assert.h&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 
-<span style="color:#080">#define OK 0
-</span><span style="color:#080">#define ERROR 1
+<span style="color:#080">#</span><span style="color:#080">define OK 0</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define ERROR 1</span><span style="color:#080">
 </span><span style="color:#080"></span>
 <span style="color:#a2f;font-weight:bold">static</span> <span style="color:#0b0;font-weight:bold">void</span><span style="color:#666">*</span> <span style="color:#00a000">foo1_thread</span>(<span style="color:#0b0;font-weight:bold">void</span><span style="color:#666">*</span>);
 
@@ -352,9 +341,9 @@ foo1_t<span style="color:#666">*</span> <span style="color:#00a000">foo1_create<
 
 foo1_t<span style="color:#666">*</span> <span style="color:#00a000">foo1_create</span>(<span style="color:#0b0;font-weight:bold">void</span>) {
     foo1_t <span style="color:#666">*</span>self <span style="color:#666">=</span> calloc(<span style="color:#666">1</span>, <span style="color:#a2f;font-weight:bold">sizeof</span>(<span style="color:#666">*</span>self));
-    <span style="color:#a2f;font-weight:bold">if</span> (self <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
-        pthread_mutex_init(<span style="color:#666">&amp;</span>self<span style="color:#666">-&gt;</span>mutex, <span style="color:#a2f">NULL</span>);
-        self<span style="color:#666">-&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
+    <span style="color:#a2f;font-weight:bold">if</span> (self <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
+        pthread_mutex_init(<span style="color:#666">&amp;</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span>mutex, <span style="color:#a2f">NULL</span>);
+        self<span style="color:#666">-</span><span style="color:#666">&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
     } <span style="color:#a2f;font-weight:bold">else</span> {
         <span style="color:#080;font-style:italic">//log error
 </span><span style="color:#080;font-style:italic"></span>    }
@@ -362,28 +351,28 @@ foo1_t<span style="color:#666">*</span> <span style="color:#00a000">foo1_create<
 };
 
 <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">foo1_destroy</span>(foo1_t <span style="color:#666">*</span>self) {
-    assert(<span style="color:#666">!</span>self<span style="color:#666">-&gt;</span>running);
-    pthread_mutex_destroy(<span style="color:#666">&amp;</span>self<span style="color:#666">-&gt;</span>mutex);
+    assert(<span style="color:#666">!</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span>running);
+    pthread_mutex_destroy(<span style="color:#666">&amp;</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span>mutex);
     free(self);
 }
 
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">foo1_start</span>(foo1_t <span style="color:#666">*</span>self) {
-    self<span style="color:#666">-&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">true</span>;
-    pthread_create(<span style="color:#666">&amp;</span>self<span style="color:#666">-&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, <span style="color:#a2f">NULL</span>, foo1_thread, self);
+    self<span style="color:#666">-</span><span style="color:#666">&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">true</span>;
+    pthread_create(<span style="color:#666">&amp;</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, <span style="color:#a2f">NULL</span>, foo1_thread, self);
     <span style="color:#a2f;font-weight:bold">return</span> OK;
 }
 
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">foo1_stop</span>(foo1_t <span style="color:#666">*</span>self) {
-    self<span style="color:#666">-&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
-    pthread_kill(self<span style="color:#666">-&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, SIGUSR1);
-    pthread_join(self<span style="color:#666">-&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, <span style="color:#a2f">NULL</span>);
+    self<span style="color:#666">-</span><span style="color:#666">&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
+    pthread_kill(self<span style="color:#666">-</span><span style="color:#666">&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, SIGUSR1);
+    pthread_join(self<span style="color:#666">-</span><span style="color:#666">&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, <span style="color:#a2f">NULL</span>);
     <span style="color:#a2f;font-weight:bold">return</span> OK;
 }
 
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">foo1_setExample</span>(foo1_t <span style="color:#666">*</span>self, <span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>example) {
-    pthread_mutex_lock(<span style="color:#666">&amp;</span>self<span style="color:#666">-&gt;</span>mutex);
-    self<span style="color:#666">-&gt;</span>example <span style="color:#666">=</span> example; <span style="color:#080;font-style:italic">//NOTE could be NULL if req is not mandatory
-</span><span style="color:#080;font-style:italic"></span>    pthread_mutex_unlock(<span style="color:#666">&amp;</span>self<span style="color:#666">-&gt;</span>mutex);
+    pthread_mutex_lock(<span style="color:#666">&amp;</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span>mutex);
+    self<span style="color:#666">-</span><span style="color:#666">&gt;</span>example <span style="color:#666">=</span> example; <span style="color:#080;font-style:italic">//NOTE could be NULL if req is not mandatory
+</span><span style="color:#080;font-style:italic"></span>    pthread_mutex_unlock(<span style="color:#666">&amp;</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span>mutex);
     <span style="color:#a2f;font-weight:bold">return</span> OK;
 }
 
@@ -391,36 +380,37 @@ foo1_t<span style="color:#666">*</span> <span style="color:#00a000">foo1_create<
     foo1_t <span style="color:#666">*</span>self <span style="color:#666">=</span> userdata;
     <span style="color:#0b0;font-weight:bold">double</span> result;
     <span style="color:#0b0;font-weight:bold">int</span> rc;
-    <span style="color:#a2f;font-weight:bold">while</span> (self<span style="color:#666">-&gt;</span>running) {
-        pthread_mutex_lock(<span style="color:#666">&amp;</span>self<span style="color:#666">-&gt;</span>mutex);
-        <span style="color:#a2f;font-weight:bold">if</span> (self<span style="color:#666">-&gt;</span>example <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
-            rc <span style="color:#666">=</span> self<span style="color:#666">-&gt;</span>example<span style="color:#666">-&gt;</span>method(self<span style="color:#666">-&gt;</span>example<span style="color:#666">-&gt;</span>handle, <span style="color:#666">1</span>, <span style="color:#666">2.0</span>, <span style="color:#666">&amp;</span>result);
-            <span style="color:#a2f;font-weight:bold">if</span> (rc <span style="color:#666">==</span> <span style="color:#666">0</span>) {
-                printf(<span style="color:#b44">&#34;Result is %f</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>, result);
+    <span style="color:#a2f;font-weight:bold">while</span> (self<span style="color:#666">-</span><span style="color:#666">&gt;</span>running) {
+        pthread_mutex_lock(<span style="color:#666">&amp;</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span>mutex);
+        <span style="color:#a2f;font-weight:bold">if</span> (self<span style="color:#666">-</span><span style="color:#666">&gt;</span>example <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
+            rc <span style="color:#666">=</span> self<span style="color:#666">-</span><span style="color:#666">&gt;</span>example<span style="color:#666">-</span><span style="color:#666">&gt;</span>method(self<span style="color:#666">-</span><span style="color:#666">&gt;</span>example<span style="color:#666">-</span><span style="color:#666">&gt;</span>handle, <span style="color:#666">1</span>, <span style="color:#666">2.0</span>, <span style="color:#666">&amp;</span>result);
+            <span style="color:#a2f;font-weight:bold">if</span> (rc <span style="color:#666">=</span><span style="color:#666">=</span> <span style="color:#666">0</span>) {
+                printf(<span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Result is %f</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>, result);
             } <span style="color:#a2f;font-weight:bold">else</span> {
-                printf(<span style="color:#b44">&#34;Error invoking method for example</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>);
+                printf(<span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Error invoking method for example</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>);
             }
         }
-        pthread_mutex_unlock(<span style="color:#666">&amp;</span>self<span style="color:#666">-&gt;</span>mutex);
+        pthread_mutex_unlock(<span style="color:#666">&amp;</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span>mutex);
         usleep(<span style="color:#666">10000000</span>);
     }
     <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f">NULL</span>;
-}</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//foo1_activator.c
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;dm_activator.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&#34;foo1.h&#34;</span><span style="color:#080">
+}
+</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//foo1_activator.c
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;dm_activator.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;foo1.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 <span style="color:#a2f;font-weight:bold">struct</span> activator {
 	foo1_t <span style="color:#666">*</span>foo;
 };
 
-celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt context, <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">**</span>userData) {
+celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt context, <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span><span style="color:#666">*</span>userData) {
     celix_status_t status <span style="color:#666">=</span> CELIX_SUCCESS;
     <span style="color:#a2f;font-weight:bold">struct</span> activator <span style="color:#666">*</span>act <span style="color:#666">=</span> calloc(<span style="color:#666">1</span>, <span style="color:#a2f;font-weight:bold">sizeof</span>(<span style="color:#666">*</span>act));
-    <span style="color:#a2f;font-weight:bold">if</span> (act <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
-        act<span style="color:#666">-&gt;</span>foo <span style="color:#666">=</span> foo1_create();
-        <span style="color:#a2f;font-weight:bold">if</span> (act<span style="color:#666">-&gt;</span>foo <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
+    <span style="color:#a2f;font-weight:bold">if</span> (act <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
+        act<span style="color:#666">-</span><span style="color:#666">&gt;</span>foo <span style="color:#666">=</span> foo1_create();
+        <span style="color:#a2f;font-weight:bold">if</span> (act<span style="color:#666">-</span><span style="color:#666">&gt;</span>foo <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
             <span style="color:#666">*</span>userData <span style="color:#666">=</span> act;
         } <span style="color:#a2f;font-weight:bold">else</span> {
             free(act);
@@ -436,8 +426,8 @@ celix_status_t <span style="color:#00a000">dm_init</span>(<span style="color:#0b
     <span style="color:#a2f;font-weight:bold">struct</span> activator <span style="color:#666">*</span>activator <span style="color:#666">=</span> userData;
 
     dm_component_pt cmp <span style="color:#666">=</span> <span style="color:#a2f">NULL</span>;
-    component_create(context, <span style="color:#b44">&#34;FOO1&#34;</span>, <span style="color:#666">&amp;</span>cmp);
-    component_setImplementation(cmp, activator<span style="color:#666">-&gt;</span>foo);
+    component_create(context, <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">FOO1</span><span style="color:#b44">&#34;</span>, <span style="color:#666">&amp;</span>cmp);
+    component_setImplementation(cmp, activator<span style="color:#666">-</span><span style="color:#666">&gt;</span>foo);
 
     <span style="color:#080;font-style:italic">/*
 </span><span style="color:#080;font-style:italic">    With the component_setCallbacksSafe we register callbacks when a component is started / stopped using a component
@@ -470,18 +460,18 @@ celix_status_t <span style="color:#00a000">dm_init</span>(<span style="color:#0b
 celix_status_t <span style="color:#00a000">dm_destroy</span>(<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span>userData, bundle_context_pt context, dm_dependency_manager_pt manager) {
 	celix_status_t status <span style="color:#666">=</span> CELIX_SUCCESS;
 	<span style="color:#a2f;font-weight:bold">struct</span> activator <span style="color:#666">*</span>activator <span style="color:#666">=</span> userData;
-	foo1_destroy(activator<span style="color:#666">-&gt;</span>foo);
+	foo1_destroy(activator<span style="color:#666">-</span><span style="color:#666">&gt;</span>foo);
 	free(activator);
 	<span style="color:#a2f;font-weight:bold">return</span> status;
-};</code></pre></div>
-<h3 id="foo2-example">Foo2 example</h3>
+};
 
+</code></pre></div><h3 id="foo2-example">Foo2 example</h3>
 <p>The Foo2 example shows how to cope with multiple services and how to remove the need for locking by ensuring only access to the services and the services container by a single thread.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//foo2.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef FOO2_H_
-</span><span style="color:#080">#define FOO2_H_
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef FOO2_H_</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define FOO2_H_</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 <span style="color:#a2f;font-weight:bold">typedef</span> <span style="color:#a2f;font-weight:bold">struct</span> foo2_struct foo2_t;
 
@@ -494,23 +484,24 @@ foo2_t<span style="color:#666">*</span> <span style="color:#00a000">foo2_create<
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">foo2_addExample</span>(foo2_t <span style="color:#666">*</span>self, <span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>example);
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">foo2_removeExample</span>(foo2_t <span style="color:#666">*</span>self, <span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>example);
 
-<span style="color:#080">#endif //FOO2_H_</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//foo2.c
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;foo2.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//FOO2_H_
+</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//foo2.c
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;foo2.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;array_list.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;array_list.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&lt;stdio.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;unistd.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;string.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;signal.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;stdbool.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;pthread.h&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;assert.h&gt;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdio.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;unistd.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;string.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;signal.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdbool.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;pthread.h&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;assert.h&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 
-<span style="color:#080">#define OK 0
-</span><span style="color:#080">#define ERROR 1
+<span style="color:#080">#</span><span style="color:#080">define OK 0</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define ERROR 1</span><span style="color:#080">
 </span><span style="color:#080"></span>
 <span style="color:#a2f;font-weight:bold">static</span> <span style="color:#0b0;font-weight:bold">void</span><span style="color:#666">*</span> <span style="color:#00a000">foo2_thread</span>(<span style="color:#0b0;font-weight:bold">void</span><span style="color:#666">*</span>);
 
@@ -522,10 +513,10 @@ foo2_t<span style="color:#666">*</span> <span style="color:#00a000">foo2_create<
 
 foo2_t<span style="color:#666">*</span> <span style="color:#00a000">foo2_create</span>(<span style="color:#0b0;font-weight:bold">void</span>) {
     foo2_t <span style="color:#666">*</span>self <span style="color:#666">=</span> calloc(<span style="color:#666">1</span>, <span style="color:#a2f;font-weight:bold">sizeof</span>(<span style="color:#666">*</span>self));
-    <span style="color:#a2f;font-weight:bold">if</span> (self <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
-        self<span style="color:#666">-&gt;</span>examples <span style="color:#666">=</span> <span style="color:#a2f">NULL</span>;
-        arrayList_create(<span style="color:#666">&amp;</span>self<span style="color:#666">-&gt;</span>examples);
-        self<span style="color:#666">-&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
+    <span style="color:#a2f;font-weight:bold">if</span> (self <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
+        self<span style="color:#666">-</span><span style="color:#666">&gt;</span>examples <span style="color:#666">=</span> <span style="color:#a2f">NULL</span>;
+        arrayList_create(<span style="color:#666">&amp;</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span>examples);
+        self<span style="color:#666">-</span><span style="color:#666">&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
     } <span style="color:#a2f;font-weight:bold">else</span> {
         <span style="color:#080;font-style:italic">//log error
 </span><span style="color:#080;font-style:italic"></span>    }
@@ -533,35 +524,35 @@ foo2_t<span style="color:#666">*</span> <span style="color:#00a000">foo2_create<
 };
 
 <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">foo2_destroy</span>(foo2_t <span style="color:#666">*</span>self) {
-    assert(<span style="color:#666">!</span>self<span style="color:#666">-&gt;</span>running);
-    arrayList_destroy(self<span style="color:#666">-&gt;</span>examples);
+    assert(<span style="color:#666">!</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span>running);
+    arrayList_destroy(self<span style="color:#666">-</span><span style="color:#666">&gt;</span>examples);
     free(self);
 }
 
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">foo2_start</span>(foo2_t <span style="color:#666">*</span>self) {
-    self<span style="color:#666">-&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">true</span>;
-    pthread_create(<span style="color:#666">&amp;</span>self<span style="color:#666">-&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, <span style="color:#a2f">NULL</span>, foo2_thread, self);
+    self<span style="color:#666">-</span><span style="color:#666">&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">true</span>;
+    pthread_create(<span style="color:#666">&amp;</span>self<span style="color:#666">-</span><span style="color:#666">&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, <span style="color:#a2f">NULL</span>, foo2_thread, self);
     <span style="color:#a2f;font-weight:bold">return</span> OK;
 }
 
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">foo2_stop</span>(foo2_t <span style="color:#666">*</span>self) {
-    self<span style="color:#666">-&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
-    pthread_kill(self<span style="color:#666">-&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, SIGUSR1);
-    pthread_join(self<span style="color:#666">-&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, <span style="color:#a2f">NULL</span>);
+    self<span style="color:#666">-</span><span style="color:#666">&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
+    pthread_kill(self<span style="color:#666">-</span><span style="color:#666">&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, SIGUSR1);
+    pthread_join(self<span style="color:#666">-</span><span style="color:#666">&gt;</span><span style="color:#a2f;font-weight:bold">thread</span>, <span style="color:#a2f">NULL</span>);
     <span style="color:#a2f;font-weight:bold">return</span> OK;
 }
 
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">foo2_addExample</span>(foo2_t <span style="color:#666">*</span>self, <span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>example) {
     <span style="color:#080;font-style:italic">//NOTE foo2 is suspended -&gt; thread is not running  -&gt; safe to update
 </span><span style="color:#080;font-style:italic"></span>    <span style="color:#0b0;font-weight:bold">int</span> status <span style="color:#666">=</span> OK;
-    status <span style="color:#666">=</span> arrayList_add(self<span style="color:#666">-&gt;</span>examples, (<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span>)example);
+    status <span style="color:#666">=</span> arrayList_add(self<span style="color:#666">-</span><span style="color:#666">&gt;</span>examples, (<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span>)example);
     <span style="color:#a2f;font-weight:bold">return</span> status;
 }
 
 <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">foo2_removeExample</span>(foo2_t <span style="color:#666">*</span>self, <span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>example) {
     <span style="color:#080;font-style:italic">//NOTE foo2 is suspended -&gt; thread is not running  -&gt; safe to update
 </span><span style="color:#080;font-style:italic"></span>    <span style="color:#0b0;font-weight:bold">int</span> status <span style="color:#666">=</span> OK;
-    status <span style="color:#666">=</span> arrayList_removeElement(self<span style="color:#666">-&gt;</span>examples, (<span style="color:#0b0;font-weight:bold">void</span><span style="color:#666">*</span>)example);
+    status <span style="color:#666">=</span> arrayList_removeElement(self<span style="color:#666">-</span><span style="color:#666">&gt;</span>examples, (<span style="color:#0b0;font-weight:bold">void</span><span style="color:#666">*</span>)example);
     <span style="color:#a2f;font-weight:bold">return</span> status;
 }
 
@@ -569,36 +560,38 @@ foo2_t<span style="color:#666">*</span> <span style="color:#00a000">foo2_create<
     foo2_t <span style="color:#666">*</span>self <span style="color:#666">=</span> userdata;
     <span style="color:#0b0;font-weight:bold">double</span> result;
     <span style="color:#0b0;font-weight:bold">int</span> rc;
-    <span style="color:#a2f;font-weight:bold">while</span> (self<span style="color:#666">-&gt;</span>running) {
-        <span style="color:#0b0;font-weight:bold">unsigned</span> <span style="color:#0b0;font-weight:bold">int</span> size <span style="color:#666">=</span> arrayList_size(self<span style="color:#666">-&gt;</span>examples);
+    <span style="color:#a2f;font-weight:bold">while</span> (self<span style="color:#666">-</span><span style="color:#666">&gt;</span>running) {
+        <span style="color:#0b0;font-weight:bold">unsigned</span> <span style="color:#0b0;font-weight:bold">int</span> size <span style="color:#666">=</span> arrayList_size(self<span style="color:#666">-</span><span style="color:#666">&gt;</span>examples);
         <span style="color:#0b0;font-weight:bold">int</span> i;
-        <span style="color:#a2f;font-weight:bold">for</span> (i <span style="color:#666">=</span> <span style="color:#666">0</span>; i <span style="color:#666">&lt;</span> size; i <span style="color:#666">+=</span> <span style="color:#666">1</span>) {
-            <span style="color:#a2f;font-weight:bold">const</span> example_t<span style="color:#666">*</span> example <span style="color:#666">=</span> arrayList_get(self<span style="color:#666">-&gt;</span>examples, i);
-            rc <span style="color:#666">=</span> example<span style="color:#666">-&gt;</span>method(example<span style="color:#666">-&gt;</span>handle, <span style="color:#666">1</span>, <span style="color:#666">2.0</span>, <span style="color:#666">&amp;</span>result);
-            <span style="color:#a2f;font-weight:bold">if</span> (rc <span style="color:#666">==</span> <span style="color:#666">0</span>) {
-                printf(<span style="color:#b44">&#34;Result is %f</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>, result);
+        <span style="color:#a2f;font-weight:bold">for</span> (i <span style="color:#666">=</span> <span style="color:#666">0</span>; i <span style="color:#666">&lt;</span> size; i <span style="color:#666">+</span><span style="color:#666">=</span> <span style="color:#666">1</span>) {
+            <span style="color:#a2f;font-weight:bold">const</span> example_t<span style="color:#666">*</span> example <span style="color:#666">=</span> arrayList_get(self<span style="color:#666">-</span><span style="color:#666">&gt;</span>examples, i);
+            rc <span style="color:#666">=</span> example<span style="color:#666">-</span><span style="color:#666">&gt;</span>method(example<span style="color:#666">-</span><span style="color:#666">&gt;</span>handle, <span style="color:#666">1</span>, <span style="color:#666">2.0</span>, <span style="color:#666">&amp;</span>result);
+            <span style="color:#a2f;font-weight:bold">if</span> (rc <span style="color:#666">=</span><span style="color:#666">=</span> <span style="color:#666">0</span>) {
+                printf(<span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Result is %f</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>, result);
             } <span style="color:#a2f;font-weight:bold">else</span> {
-                printf(<span style="color:#b44">&#34;Error invoking method for example</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>);
+                printf(<span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Error invoking method for example</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>);
             }
         }
         usleep(<span style="color:#666">10000000</span>);
     }
-    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f">NULL</span>;</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//foo2_activator.c
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;dm_activator.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&#34;foo2.h&#34;</span><span style="color:#080">
+    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f">NULL</span>;
+
+</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//foo2_activator.c
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;dm_activator.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;foo2.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;stdlib.h&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 <span style="color:#a2f;font-weight:bold">struct</span> activator {
 	foo2_t <span style="color:#666">*</span>foo;
 };
 
-celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt context, <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">**</span>userData) {
+celix_status_t <span style="color:#00a000">dm_create</span>(bundle_context_pt context, <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span><span style="color:#666">*</span>userData) {
 	celix_status_t status <span style="color:#666">=</span> CELIX_SUCCESS;
 	<span style="color:#a2f;font-weight:bold">struct</span> activator <span style="color:#666">*</span>act <span style="color:#666">=</span> calloc(<span style="color:#666">1</span>, <span style="color:#a2f;font-weight:bold">sizeof</span>(<span style="color:#666">*</span>act));
-	<span style="color:#a2f;font-weight:bold">if</span> (act <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
-		act<span style="color:#666">-&gt;</span>foo <span style="color:#666">=</span> foo2_create();
-        <span style="color:#a2f;font-weight:bold">if</span> (act<span style="color:#666">-&gt;</span>foo <span style="color:#666">!=</span> <span style="color:#a2f">NULL</span>) {
+	<span style="color:#a2f;font-weight:bold">if</span> (act <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
+		act<span style="color:#666">-</span><span style="color:#666">&gt;</span>foo <span style="color:#666">=</span> foo2_create();
+        <span style="color:#a2f;font-weight:bold">if</span> (act<span style="color:#666">-</span><span style="color:#666">&gt;</span>foo <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f">NULL</span>) {
             <span style="color:#666">*</span>userData <span style="color:#666">=</span> act;
         } <span style="color:#a2f;font-weight:bold">else</span> {
             free(act);
@@ -614,8 +607,8 @@ celix_status_t <span style="color:#00a000">dm_init</span>(<span style="color:#0b
 	<span style="color:#a2f;font-weight:bold">struct</span> activator <span style="color:#666">*</span>activator <span style="color:#666">=</span> userData;
 
 	dm_component_pt cmp <span style="color:#666">=</span> <span style="color:#a2f">NULL</span>;
-	component_create(context, <span style="color:#b44">&#34;FOO2&#34;</span>, <span style="color:#666">&amp;</span>cmp);
-	component_setImplementation(cmp, activator<span style="color:#666">-&gt;</span>foo);
+	component_create(context, <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">FOO2</span><span style="color:#b44">&#34;</span>, <span style="color:#666">&amp;</span>cmp);
+	component_setImplementation(cmp, activator<span style="color:#666">-</span><span style="color:#666">&gt;</span>foo);
 
 	<span style="color:#080;font-style:italic">/*
 </span><span style="color:#080;font-style:italic">	With the component_setCallbacksSafe we register callbacks when a component is started / stopped using a component
@@ -648,23 +641,18 @@ celix_status_t <span style="color:#00a000">dm_init</span>(<span style="color:#0b
 celix_status_t <span style="color:#00a000">dm_destroy</span>(<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span>userData, bundle_context_pt context, dm_dependency_manager_pt manager) {
 	celix_status_t status <span style="color:#666">=</span> CELIX_SUCCESS;
 	<span style="color:#a2f;font-weight:bold">struct</span> activator <span style="color:#666">*</span>activator <span style="color:#666">=</span> userData;
-	foo2_destroy(activator<span style="color:#666">-&gt;</span>foo);
+	foo2_destroy(activator<span style="color:#666">-</span><span style="color:#666">&gt;</span>foo);
 	free(activator);
 	<span style="color:#a2f;font-weight:bold">return</span> status;
-};</code></pre></div>
-<h2 id="locking-and-suspending">Locking and Suspending</h2>
-
+};
+</code></pre></div><h2 id="locking-and-suspending">Locking and Suspending</h2>
 <p>As you may notice, the Foo1 example uses locks.
 In principle, locking is necessary in order to ensure coherence in case service dependencies are removed/added/changed; on the other hands, locking increases latency and, when misused, can lead to poor performance.
 For this reason, the serviceDependency interface gives the possibility to choose between a locking and suspend (a non-locking) strategy through the serviceDependency_setStrategy function, as is used in the Foo2 example.</p>
-
 <p>The locking strategy <code>DM_SERVICE_DEPENDENCY_STRATEGY_LOCKING</code> notifies the component in case the dependencies&rsquo; set changes (e.g. a dependency is added/removed): the component is responsible for protecting via locks the dependencies&rsquo; list and check (always under lock) if the service he&rsquo;s depending on is still available.
 The suspend or non-locking strategy <code>DM_SERVICE_DEPENDENCY_STRATEGY_SUSPEND</code> (default when no strategy is explicitly set) reliefs the programmer from dealing with service dependencies&rsquo; consistency issues: in case this strategy is adopted, the component is stopped and restarted (i.e. temporarily suspended) upon service dependencies&rsquo; changes.</p>
-
 <p>The suspend strategy has the advantage of reducing locks&rsquo; usage: of course, suspending the component has its own overhead (e.g. stopping and restarting threads), but this overhead is &ldquo;paid&rdquo; only in case of changes in service dependencies, while the locking overhead is always paid.</p>
-
 <h2 id="see-also">See also</h2>
-
 <p>See the <a href="../../dependency_manager/readme.html">C Dependeny Manager</a> and <a href="../../examples/dm_example">C Dependency Manager example</a> for more information and a more complex working example.</p>
 
 
diff --git a/content/docs/celix/documents/getting_started/using_services_with_cxx.html b/content/docs/2.1.0/celix/documents/getting_started/using_services_with_cxx.html
similarity index 56%
copy from content/docs/celix/documents/getting_started/using_services_with_cxx.html
copy to content/docs/2.1.0/celix/documents/getting_started/using_services_with_cxx.html
index 5a13fa2..e10b06b 100644
--- a/content/docs/celix/documents/getting_started/using_services_with_cxx.html
+++ b/content/docs/2.1.0/celix/documents/getting_started/using_services_with_cxx.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>using_services_with_cxx.md / Apache Celix</title>
+    <title>Using Services with C&#43;&#43; / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/getting_started/using_services_with_cxx.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,27 +126,20 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="apache-celix-using-services-with-c">Apache Celix - Using Services with C++</h1>
-
+<h1 id="apache-celix---using-services-with-c">Apache Celix - Using Services with C++</h1>
 <h2 id="intro">Intro</h2>
-
 <p>This example gives an overview for providing and using C and C++ services with Apache Celix with C++.</p>
-
 <h2 id="services">Services</h2>
-
 <h3 id="c-services">C++ Services</h3>
-
 <p>To start of, C++ service in Celix are just (abstract) classes.</p>
-
 <p>In the following example there also a projected default constructor and destructor to ensure no instantiation / deletion of the service is possible:</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080">#ifndef IANOTHER_EXAMPLE_H
-</span><span style="color:#080">#define IANOTHER_EXAMPLE_H
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080">#</span><span style="color:#080">ifndef IANOTHER_EXAMPLE_H</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define IANOTHER_EXAMPLE_H</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#define IANOTHER_EXAMPLE_VERSION &#34;1.0.0&#34;
-</span><span style="color:#080">#define IANOTHER_EXAMPLE_CONSUMER_RANGE &#34;[1.0.0,2.0.0)&#34;
+<span style="color:#080">#</span><span style="color:#080">define IANOTHER_EXAMPLE_VERSION &#34;1.0.0&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define IANOTHER_EXAMPLE_CONSUMER_RANGE &#34;[1.0.0,2.0.0)&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">class</span><span style=""> </span><span style="color:#00f">IAnotherExample</span> {
+<span style="color:#a2f;font-weight:bold">class</span> <span style="color:#00f">IAnotherExample</span> {
 <span style="color:#a2f;font-weight:bold">protected</span><span style="color:#666">:</span>
     IAnotherExample() <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">default</span>;
     <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#666">~</span>IAnotherExample() <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">default</span>;
@@ -140,28 +147,24 @@ limitations under the License.
     <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#0b0;font-weight:bold">double</span> method(<span style="color:#0b0;font-weight:bold">int</span> arg1, <span style="color:#0b0;font-weight:bold">double</span> arg2) <span style="color:#666">=</span> <span style="color:#666">0</span>;
 };
 
-<span style="color:#080">#endif </span><span style="color:#080;font-style:italic">//IANOTHER_EXAMPLE_H
-</span></code></pre></div>
-<p>For a Celix service a service name, service provider version and service consumer range should be declared.
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//IANOTHER_EXAMPLE_H
+</span></code></pre></div><p>For a Celix service a service name, service provider version and service consumer range should be declared.
 This is explicitly done with macros to prevent symbols so to that no linking dependencies are introduced.
 For C++ the service name can be inferred.</p>
-
 <h3 id="c-services-1">C Services</h3>
-
 <p>C services in Celix are just a pointer to a memory location registered in the service registry using a name and an optional set of key/value pairs.</p>
-
 <p>By convention use the following service layout:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//example.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef EXAMPLE_H_
-</span><span style="color:#080">#define EXAMPLE_H_
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef EXAMPLE_H_</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define EXAMPLE_H_</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#ifdef __cplusplus
-</span><span style="color:#080"></span><span style="color:#a2f;font-weight:bold">extern</span> <span style="color:#b44">&#34;C&#34;</span> {
-<span style="color:#080">#endif
+<span style="color:#080">#</span><span style="color:#080">ifdef __cplusplus</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#a2f;font-weight:bold">extern</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">C</span><span style="color:#b44">&#34;</span> {
+<span style="color:#080">#</span><span style="color:#080">endif</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#define EXAMPLE_NAME 			&#34;org.example&#34;
-</span><span style="color:#080">#define EXAMPLE_VERSION 		&#34;1.0.0&#34;
-</span><span style="color:#080">#define EXAMPLE_CONSUMER_RANGE   &#34;[1.0.0,2.0.0)&#34;
+<span style="color:#080">#</span><span style="color:#080">define EXAMPLE_NAME 			&#34;org.example&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define EXAMPLE_VERSION 		&#34;1.0.0&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define EXAMPLE_CONSUMER_RANGE   &#34;[1.0.0,2.0.0)&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
 
 <span style="color:#a2f;font-weight:bold">struct</span> example_struct {
@@ -171,46 +174,33 @@ For C++ the service name can be inferred.</p>
 
 <span style="color:#a2f;font-weight:bold">typedef</span> <span style="color:#a2f;font-weight:bold">struct</span> example_struct example_t;
 
-<span style="color:#080">#ifdef __cplusplus
+<span style="color:#080">#</span><span style="color:#080">ifdef __cplusplus</span><span style="color:#080">
 </span><span style="color:#080"></span>}
-<span style="color:#080">#endif
+<span style="color:#080">#</span><span style="color:#080">endif</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#endif </span><span style="color:#080;font-style:italic">/* EXAMPLE_H_ */</span></code></pre></div>
-<p>For C service a struct containing the function pointers needs to be declared.
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">/* EXAMPLE_H_ */</span><span style="color:#080">
+</span></code></pre></div><p>For C service a struct containing the function pointers needs to be declared.
 The first element of the service struct should be a handle which can be used to store the service context, as convention we keep this pointer a void pointer to explicitly make it opaque.
 Note that also an opaque struct could be used (e.g a declared but not defined struct), but this can become problematic concerning components registering multiple services.
 In that case explicit cast are needed to prevent warning and this can be confusing for the To prevent that issues void pointers are preferred.</p>
-
 <p>The rest of the element should be function pointers, which by convention should return an celix_status_t or int (which is technically the same).
 The return value is used as a way of handling errors and is also needed to be able to make remote services (e.g. to be able to handle remote exceptions).</p>
-
 <p>The first argument of a service function should be the service handle and if there is a result the last argument should be a output parameter (either pre allocated (e.g. double *) or not (e.g. double <strong>)).
 If the caller is not the owner of the output argument, a const pointer should be used (e.g. const char</strong>).
 It is also possible to create typedef of the pointer to the service struct (e.g. typedef struct example_struct example_t), but this is not needed.</p>
-
 <p>In the Celix code base there are still service which uses a typedef with a pointer (e.g. typedef struct example_struct* example_struct_pt). This should be avoided,
 because it is not possible to create the const pointer of those typedefs and it is not possible to include those typedef inside a existing struct without the needed for an additional malloc.</p>
-
 <h3 id="semantic-versioning">Semantic Versioning</h3>
-
 <p>For versioning, semantic versioning should be used.</p>
-
 <p>A backward incompatible change should lead to a major version increase (e.g. 1.0.0 -&gt; 2.0.0).</p>
-
 <h3 id="versioning-c-services">Versioning C++ Services</h3>
-
 <p>For C++ Services versioning is used ot express binary compatibility changes that are incompatible are:</p>
-
 <ul>
 <li>Everything. Seriously, binary compatibility in C++ is difficult and should be avoided.</li>
 </ul>
-
 <p>Note that is is possible to use versioning for source compatibility and setup the build environment accordingly, but this is not part of this guide.</p>
-
 <h3 id="versioning-c-services-1">Versioning C Services</h3>
-
 <p>For C Services versioning is used to express binary compatibility (for the same platform / compiler), change that are incompatible are:</p>
-
 <ul>
 <li>Removing a function</li>
 <li>Adding a function to before any other function</li>
@@ -218,51 +208,37 @@ because it is not possible to create the const pointer of those typedefs and it
 <li>Changing the signature of a function</li>
 <li>Changing the semantics of a argument (e.g. changing range input from &ldquo;range in kilometer&rdquo; to &ldquo;range in meters&rdquo;)</li>
 </ul>
-
 <p>A backwards binary compatible change which extend the functionality should lead to a minor version increase (e.g. 1.0.0 -&gt; 1.1.0).
 Changes considered backwards compatible which extend the functionality are:</p>
-
 <ul>
 <li>Adding a function to the back of the service struct</li>
 </ul>
-
 <p>A backwards binary compatible change which does not extend the functionality should lead to a micro version increase (e.g. 1.0.0 -&gt; 1.0.1).
 Changes considered backwards binary compatible which does not extend the functionality are:</p>
-
 <ul>
 <li>Changes in the documentation</li>
 <li>Renaming of arguments</li>
 </ul>
-
 <p>For C services generally platform specific calling convention are used therefore binary compatibility between service provider and consumers from different compilers is possible (e.g. gcc and clang),
- but not advisable</p>
-
+but not advisable</p>
 <h2 id="components">Components</h2>
-
 <p>Component are concrete classes in C++. This do not have to implement specific interface, expect the C++ service interfaces they provide.</p>
-
 <h2 id="code-examples">Code Examples</h2>
-
 <p>The next code blocks contains some code examples of components to indicate how to handle service dependencies, how to specify providing services and how to cope with locking/synchronizing.
 The complete example can be found <a href="../../examples/services_example_cxx">here</a>.</p>
-
 <h3 id="bar-example">Bar Example</h3>
-
 <p>The Bar example is a simple component providing the C <code>example</code> service and C++ <code>IAnotherExample</code> service.</p>
-
 <p>Note that the <code>Bar</code> component is just a plain old C++ object and does need to implement any specific Celix interfaces.</p>
-
 <p>The <code>BarActivator</code> is the entry point for a C++ bundle. It must implement the <code>DmActivator::create</code> method so that C++ Dependency manager can create a instance <code>DmActivator</code> without needing to known the subclass.
 It should also override the <code>DmActivator::init</code> to be able to declaratively program components and their provided service and service dependencies.</p>
-
 <p>The C++ Dependency Manager can use C++ member function pointers to control the component lifecycle (<code>init</code>, <code>start</code>, <code>stop</code> and <code>deinit</code>)</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//Bar.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef BAR_H
-</span><span style="color:#080">#define BAR_H
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef BAR_H</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define BAR_H</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;IAnotherExample.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;IAnotherExample.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">class</span><span style=""> </span><span style="color:#00f">Bar</span> <span style="color:#666">:</span> <span style="color:#a2f;font-weight:bold">public</span> IAnotherExample {
+<span style="color:#a2f;font-weight:bold">class</span> <span style="color:#00f">Bar</span> <span style="color:#666">:</span> <span style="color:#a2f;font-weight:bold">public</span> IAnotherExample {
     <span style="color:#a2f;font-weight:bold">const</span> <span style="color:#0b0;font-weight:bold">double</span> seed <span style="color:#666">=</span> <span style="color:#666">42</span>;
 <span style="color:#a2f;font-weight:bold">public</span><span style="color:#666">:</span>
     Bar() <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">default</span>;
@@ -277,101 +253,99 @@ It should also override the <code>DmActivator::init</code> to be able to declara
 </span><span style="color:#080;font-style:italic"></span>    <span style="color:#0b0;font-weight:bold">int</span> <span style="color:#00a000">cMethod</span>(<span style="color:#0b0;font-weight:bold">int</span> arg1, <span style="color:#0b0;font-weight:bold">double</span> arg2, <span style="color:#0b0;font-weight:bold">double</span> <span style="color:#666">*</span>out); <span style="color:#080;font-style:italic">//implementation of example_t-&gt;method;
 </span><span style="color:#080;font-style:italic"></span>};
 
-<span style="color:#080">#endif </span><span style="color:#080;font-style:italic">//BAR_H
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//BAR_H
 </span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//BarActivator.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef BAR_ACTIVATOR_H
-</span><span style="color:#080">#define BAR_ACTIVATOR_H
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef BAR_ACTIVATOR_H</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define BAR_ACTIVATOR_H</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;celix/dm/DmActivator.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;celix/dm/DmActivator.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">::</span>dm;
+<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">:</span><span style="color:#666">:</span>dm;
 
-<span style="color:#a2f;font-weight:bold">class</span><span style=""> </span><span style="color:#00f">BarActivator</span> <span style="color:#666">:</span> <span style="color:#a2f;font-weight:bold">public</span> DmActivator {
+<span style="color:#a2f;font-weight:bold">class</span> <span style="color:#00f">BarActivator</span> <span style="color:#666">:</span> <span style="color:#a2f;font-weight:bold">public</span> DmActivator {
 <span style="color:#a2f;font-weight:bold">private</span><span style="color:#666">:</span>
     example_t cExample {<span style="color:#a2f;font-weight:bold">nullptr</span>, <span style="color:#a2f;font-weight:bold">nullptr</span>};
 <span style="color:#a2f;font-weight:bold">public</span><span style="color:#666">:</span>
     BarActivator(DependencyManager<span style="color:#666">&amp;</span> mng) <span style="color:#666">:</span> DmActivator(mng) {}
-    <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#0b0;font-weight:bold">void</span> init() <span style="color:#a2f;font-weight:bold">override</span>;
+    <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">init</span>() <span style="color:#a2f;font-weight:bold">override</span>;
 };
 
-<span style="color:#080">#endif </span><span style="color:#080;font-style:italic">//BAR_ACTIVATOR_H
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//BAR_ACTIVATOR_H
 </span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//Bar.cc
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;Bar.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;iostream&gt;</span><span style="color:#080">
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;Bar.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;iostream&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#0b0;font-weight:bold">void</span> Bar<span style="color:#666">::</span>init() {
-    std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;init Bar</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+<span style="color:#0b0;font-weight:bold">void</span> Bar<span style="color:#666">:</span><span style="color:#666">:</span>init() {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">init Bar</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Bar<span style="color:#666">::</span>start() {
-    std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;start Bar</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+<span style="color:#0b0;font-weight:bold">void</span> Bar<span style="color:#666">:</span><span style="color:#666">:</span>start() {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">start Bar</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Bar<span style="color:#666">::</span>stop() {
-    std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;stop Bar</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+<span style="color:#0b0;font-weight:bold">void</span> Bar<span style="color:#666">:</span><span style="color:#666">:</span>stop() {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">stop Bar</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Bar<span style="color:#666">::</span>deinit() {
-    std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;deinit Bar</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+<span style="color:#0b0;font-weight:bold">void</span> Bar<span style="color:#666">:</span><span style="color:#666">:</span>deinit() {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">deinit Bar</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
 }
 
-<span style="color:#0b0;font-weight:bold">double</span> Bar<span style="color:#666">::</span>method(<span style="color:#0b0;font-weight:bold">int</span> arg1, <span style="color:#0b0;font-weight:bold">double</span> arg2) {
-    <span style="color:#0b0;font-weight:bold">double</span> update <span style="color:#666">=</span> (<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>seed <span style="color:#666">+</span> arg1) <span style="color:#666">*</span> arg2;
+<span style="color:#0b0;font-weight:bold">double</span> Bar<span style="color:#666">:</span><span style="color:#666">:</span>method(<span style="color:#0b0;font-weight:bold">int</span> arg1, <span style="color:#0b0;font-weight:bold">double</span> arg2) {
+    <span style="color:#0b0;font-weight:bold">double</span> update <span style="color:#666">=</span> (<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>seed <span style="color:#666">+</span> arg1) <span style="color:#666">*</span> arg2;
     <span style="color:#a2f;font-weight:bold">return</span> update;
 }
 
-<span style="color:#0b0;font-weight:bold">int</span> Bar<span style="color:#666">::</span>cMethod(<span style="color:#0b0;font-weight:bold">int</span> arg1, <span style="color:#0b0;font-weight:bold">double</span> arg2, <span style="color:#0b0;font-weight:bold">double</span> <span style="color:#666">*</span>out) {
-    <span style="color:#0b0;font-weight:bold">double</span> r <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>method(arg1, arg2);
+<span style="color:#0b0;font-weight:bold">int</span> Bar<span style="color:#666">:</span><span style="color:#666">:</span>cMethod(<span style="color:#0b0;font-weight:bold">int</span> arg1, <span style="color:#0b0;font-weight:bold">double</span> arg2, <span style="color:#0b0;font-weight:bold">double</span> <span style="color:#666">*</span>out) {
+    <span style="color:#0b0;font-weight:bold">double</span> r <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>method(arg1, arg2);
     <span style="color:#666">*</span>out <span style="color:#666">=</span> r;
     <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#666">0</span>;
 }
 </code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//BarActivator.cc
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;Bar.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&#34;BarActivator.h&#34;</span><span style="color:#080">
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;Bar.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;BarActivator.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">::</span>dm;
+<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">:</span><span style="color:#666">:</span>dm;
 
-DmActivator<span style="color:#666">*</span> DmActivator<span style="color:#666">::</span>create(DependencyManager<span style="color:#666">&amp;</span> mng) {
-    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">new</span> BarActivator(mng);
+DmActivator<span style="color:#666">*</span> DmActivator<span style="color:#666">:</span><span style="color:#666">:</span>create(DependencyManager<span style="color:#666">&amp;</span> mng) {
+    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">new</span> <span style="color:#00a000">BarActivator</span>(mng);
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> BarActivator<span style="color:#666">::</span>init() {
-    std<span style="color:#666">::</span>shared_ptr<span style="color:#666">&lt;</span>Bar<span style="color:#666">&gt;</span> bar <span style="color:#666">=</span> std<span style="color:#666">::</span>shared_ptr<span style="color:#666">&lt;</span>Bar<span style="color:#666">&gt;</span>{<span style="color:#a2f;font-weight:bold">new</span> Bar{}};
+<span style="color:#0b0;font-weight:bold">void</span> BarActivator<span style="color:#666">:</span><span style="color:#666">:</span>init() {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>shared_ptr<span style="color:#666">&lt;</span>Bar<span style="color:#666">&gt;</span> bar <span style="color:#666">=</span> std<span style="color:#666">:</span><span style="color:#666">:</span>shared_ptr<span style="color:#666">&lt;</span>Bar<span style="color:#666">&gt;</span>{<span style="color:#a2f;font-weight:bold">new</span> Bar{}};
 
     Properties props;
-    props[<span style="color:#b44">&#34;meta.info.key&#34;</span>] <span style="color:#666">=</span> <span style="color:#b44">&#34;meta.info.value&#34;</span>;
+    props[<span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">meta.info.key</span><span style="color:#b44">&#34;</span>] <span style="color:#666">=</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">meta.info.value</span><span style="color:#b44">&#34;</span>;
 
     Properties cProps;
-    cProps[<span style="color:#b44">&#34;also.meta.info.key&#34;</span>] <span style="color:#666">=</span> <span style="color:#b44">&#34;also.meta.info.value&#34;</span>;
+    cProps[<span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">also.meta.info.key</span><span style="color:#b44">&#34;</span>] <span style="color:#666">=</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">also.meta.info.value</span><span style="color:#b44">&#34;</span>;
 
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>cExample.handle <span style="color:#666">=</span> bar.get();
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>cExample.method <span style="color:#666">=</span> [](<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span>handle, <span style="color:#0b0;font-weight:bold">int</span> arg1, <span style="color:#0b0;font-weight:bold">double</span> arg2, <span style="color:#0b0;font-weight:bold">double</span> <span style="color:#666">*</span>out) {
-        Bar<span style="color:#666">*</span> bar <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">static_cast</span><span style="color:#666">&lt;</span>Bar<span style="color:#666">*&gt;</span>(handle);
-        <span style="color:#a2f;font-weight:bold">return</span> bar<span style="color:#666">-&gt;</span>cMethod(arg1, arg2, out);
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>cExample.handle <span style="color:#666">=</span> bar.get();
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>cExample.method <span style="color:#666">=</span> [](<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span>handle, <span style="color:#0b0;font-weight:bold">int</span> arg1, <span style="color:#0b0;font-weight:bold">double</span> arg2, <span style="color:#0b0;font-weight:bold">double</span> <span style="color:#666">*</span>out) {
+        Bar<span style="color:#666">*</span> bar <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">static_cast</span><span style="color:#666">&lt;</span>Bar<span style="color:#666">*</span><span style="color:#666">&gt;</span>(handle);
+        <span style="color:#a2f;font-weight:bold">return</span> bar<span style="color:#666">-</span><span style="color:#666">&gt;</span>cMethod(arg1, arg2, out);
     };
 
     mng.createComponent(bar)  <span style="color:#080;font-style:italic">//using a pointer a instance. Also supported is lazy initialization (default constructor needed) or a rvalue reference (move)
 </span><span style="color:#080;font-style:italic"></span>        .addInterface<span style="color:#666">&lt;</span>IAnotherExample<span style="color:#666">&gt;</span>(IANOTHER_EXAMPLE_VERSION, props)
-        .addCInterface(<span style="color:#666">&amp;</span><span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>cExample, EXAMPLE_NAME, EXAMPLE_VERSION, cProps)
-        .setCallbacks(<span style="color:#666">&amp;</span>Bar<span style="color:#666">::</span>init, <span style="color:#666">&amp;</span>Bar<span style="color:#666">::</span>start, <span style="color:#666">&amp;</span>Bar<span style="color:#666">::</span>stop, <span style="color:#666">&amp;</span>Bar<span style="color:#666">::</span>deinit);
+        .addCInterface(<span style="color:#666">&amp;</span><span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>cExample, EXAMPLE_NAME, EXAMPLE_VERSION, cProps)
+        .setCallbacks(<span style="color:#666">&amp;</span>Bar<span style="color:#666">:</span><span style="color:#666">:</span>init, <span style="color:#666">&amp;</span>Bar<span style="color:#666">:</span><span style="color:#666">:</span>start, <span style="color:#666">&amp;</span>Bar<span style="color:#666">:</span><span style="color:#666">:</span>stop, <span style="color:#666">&amp;</span>Bar<span style="color:#666">:</span><span style="color:#666">:</span>deinit);
 }
-</code></pre></div>
-<h3 id="foo-example">Foo Example</h3>
-
+</code></pre></div><h3 id="foo-example">Foo Example</h3>
 <p>The <code>Foo</code> example has a dependency to the C++ and C services provider by the <code>Bar</code> component. Note that it depends on the services and not directly on the Bar component.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//Foo.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef FOO_H
-</span><span style="color:#080">#define FOO_H
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef FOO_H</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define FOO_H</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&#34;IAnotherExample.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;thread&gt;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;IAnotherExample.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;thread&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">class</span><span style=""> </span><span style="color:#00f">Foo</span>  {
+<span style="color:#a2f;font-weight:bold">class</span> <span style="color:#00f">Foo</span>  {
     IAnotherExample<span style="color:#666">*</span> example {<span style="color:#a2f;font-weight:bold">nullptr</span>};
     <span style="color:#a2f;font-weight:bold">const</span> example_t<span style="color:#666">*</span> cExample {<span style="color:#a2f;font-weight:bold">nullptr</span>};
-    std<span style="color:#666">::</span><span style="color:#a2f;font-weight:bold">thread</span> pollThread {};
+    std<span style="color:#666">:</span><span style="color:#666">:</span><span style="color:#a2f;font-weight:bold">thread</span> pollThread {};
     <span style="color:#0b0;font-weight:bold">bool</span> running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
 <span style="color:#a2f;font-weight:bold">public</span><span style="color:#666">:</span>
     Foo() <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">default</span>;
@@ -386,113 +360,111 @@ DmActivator<span style="color:#666">*</span> DmActivator<span style="color:#666"
     <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">poll</span>();
 };
 
-<span style="color:#080">#endif </span><span style="color:#080;font-style:italic">//FOO_H
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//FOO_H
 </span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//FooActivator.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef FOO_ACTIVATOR_H
-</span><span style="color:#080">#define FOO_ACTIVATOR_H
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef FOO_ACTIVATOR_H</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define FOO_ACTIVATOR_H</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;celix/dm/DmActivator.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;celix/dm/DmActivator.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">::</span>dm;
+<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">:</span><span style="color:#666">:</span>dm;
 
-<span style="color:#a2f;font-weight:bold">class</span><span style=""> </span><span style="color:#00f">FooActivator</span> <span style="color:#666">:</span> <span style="color:#a2f;font-weight:bold">public</span> DmActivator {
+<span style="color:#a2f;font-weight:bold">class</span> <span style="color:#00f">FooActivator</span> <span style="color:#666">:</span> <span style="color:#a2f;font-weight:bold">public</span> DmActivator {
 <span style="color:#a2f;font-weight:bold">private</span><span style="color:#666">:</span>
 <span style="color:#a2f;font-weight:bold">public</span><span style="color:#666">:</span>
     FooActivator(DependencyManager<span style="color:#666">&amp;</span> mng) <span style="color:#666">:</span> DmActivator(mng) {}
-    <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#0b0;font-weight:bold">void</span> init() <span style="color:#a2f;font-weight:bold">override</span>;
+    <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">init</span>() <span style="color:#a2f;font-weight:bold">override</span>;
 };
 
-<span style="color:#080">#endif </span><span style="color:#080;font-style:italic">//FOO_ACTIVATOR_H
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//FOO_ACTIVATOR_H
 </span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//Foo.cc
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;Foo.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;iostream&gt;</span><span style="color:#080">
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;Foo.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;iostream&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#0b0;font-weight:bold">void</span> Foo<span style="color:#666">::</span>start() {
-    std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;start Foo</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">true</span>;
-    pollThread <span style="color:#666">=</span> std<span style="color:#666">::</span><span style="color:#a2f;font-weight:bold">thread</span> {<span style="color:#666">&amp;</span>Foo<span style="color:#666">::</span>poll, <span style="color:#a2f;font-weight:bold">this</span>};
+<span style="color:#0b0;font-weight:bold">void</span> Foo<span style="color:#666">:</span><span style="color:#666">:</span>start() {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">start Foo</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">true</span>;
+    pollThread <span style="color:#666">=</span> std<span style="color:#666">:</span><span style="color:#666">:</span><span style="color:#a2f;font-weight:bold">thread</span> {<span style="color:#666">&amp;</span>Foo<span style="color:#666">:</span><span style="color:#666">:</span>poll, <span style="color:#a2f;font-weight:bold">this</span>};
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Foo<span style="color:#666">::</span>stop() {
-    std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;stop Foo</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>pollThread.join();
+<span style="color:#0b0;font-weight:bold">void</span> Foo<span style="color:#666">:</span><span style="color:#666">:</span>stop() {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">stop Foo</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>pollThread.join();
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Foo<span style="color:#666">::</span>setAnotherExample(IAnotherExample <span style="color:#666">*</span>e) {
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>example <span style="color:#666">=</span> e;
+<span style="color:#0b0;font-weight:bold">void</span> Foo<span style="color:#666">:</span><span style="color:#666">:</span>setAnotherExample(IAnotherExample <span style="color:#666">*</span>e) {
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>example <span style="color:#666">=</span> e;
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Foo<span style="color:#666">::</span>setExample(<span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>e) {
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>cExample <span style="color:#666">=</span> e;
+<span style="color:#0b0;font-weight:bold">void</span> Foo<span style="color:#666">:</span><span style="color:#666">:</span>setExample(<span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>e) {
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>cExample <span style="color:#666">=</span> e;
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Foo<span style="color:#666">::</span>poll() {
+<span style="color:#0b0;font-weight:bold">void</span> Foo<span style="color:#666">:</span><span style="color:#666">:</span>poll() {
     <span style="color:#0b0;font-weight:bold">double</span> r1 <span style="color:#666">=</span> <span style="color:#666">1.0</span>;
     <span style="color:#0b0;font-weight:bold">double</span> r2 <span style="color:#666">=</span> <span style="color:#666">1.0</span>;
-    <span style="color:#a2f;font-weight:bold">while</span> (<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>running) {
+    <span style="color:#a2f;font-weight:bold">while</span> (<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>running) {
         <span style="color:#080;font-style:italic">//c++ service required -&gt; if component started always available
-</span><span style="color:#080;font-style:italic"></span>        r1 <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>example<span style="color:#666">-&gt;</span>method(<span style="color:#666">3</span>, r1);
-        std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;Result IAnotherExample is &#34;</span> <span style="color:#666">&lt;&lt;</span> r1 <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+</span><span style="color:#080;font-style:italic"></span>        r1 <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>example<span style="color:#666">-</span><span style="color:#666">&gt;</span>method(<span style="color:#666">3</span>, r1);
+        std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Result IAnotherExample is </span><span style="color:#b44">&#34;</span> <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> r1 <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44 [...]
 
         <span style="color:#080;font-style:italic">//c service is optional, can be nullptr
-</span><span style="color:#080;font-style:italic"></span>        <span style="color:#a2f;font-weight:bold">if</span> (<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>cExample <span style="color:#666">!=</span> <span style="color:#a2f;font-weight:bold">nullptr</span>) {
+</span><span style="color:#080;font-style:italic"></span>        <span style="color:#a2f;font-weight:bold">if</span> (<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>cExample <span style="color:#666">!</span><span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">nullptr</span>) {
             <span style="color:#0b0;font-weight:bold">double</span> out;
-            <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>cExample<span style="color:#666">-&gt;</span>method(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>cExample<span style="color:#666">-&gt;</span>handle, <span style="color:#666">4</span>, r2, <span style="color:#666">&amp;</span>out);
+            <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>cExample<span style="color:#666">-</span><span style="color:#666">&gt;</span>method(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>cExample<span style="color:#666">-</span><span style="color:#666">&gt;</span>handle, <span style="color:#666">4</span>, r2, <span style="color:#666">&am [...]
             r2 <span style="color:#666">=</span> out;
-            std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;Result example_t is &#34;</span> <span style="color:#666">&lt;&lt;</span> r2 <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+            std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Result example_t is </span><span style="color:#b44">&#34;</span> <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> r2 <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"> [...]
         }
-        std<span style="color:#666">::</span>this_thread<span style="color:#666">::</span>sleep_for(std<span style="color:#666">::</span>chrono<span style="color:#666">::</span>milliseconds(<span style="color:#666">5000</span>));
+        std<span style="color:#666">:</span><span style="color:#666">:</span>this_thread<span style="color:#666">:</span><span style="color:#666">:</span>sleep_for(std<span style="color:#666">:</span><span style="color:#666">:</span>chrono<span style="color:#666">:</span><span style="color:#666">:</span>milliseconds(<span style="color:#666">5000</span>));
     }
 }
 </code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//FooActivator.cc
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;Foo.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&#34;FooActivator.h&#34;</span><span style="color:#080">
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;Foo.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;FooActivator.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">::</span>dm;
+<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">:</span><span style="color:#666">:</span>dm;
 
-DmActivator<span style="color:#666">*</span> DmActivator<span style="color:#666">::</span>create(DependencyManager<span style="color:#666">&amp;</span> mng) {
-    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">new</span> FooActivator(mng);
+DmActivator<span style="color:#666">*</span> DmActivator<span style="color:#666">:</span><span style="color:#666">:</span>create(DependencyManager<span style="color:#666">&amp;</span> mng) {
+    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">new</span> <span style="color:#00a000">FooActivator</span>(mng);
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> FooActivator<span style="color:#666">::</span>init() {
+<span style="color:#0b0;font-weight:bold">void</span> FooActivator<span style="color:#666">:</span><span style="color:#666">:</span>init() {
 
-    Component<span style="color:#666">&lt;</span>Foo<span style="color:#666">&gt;&amp;</span> cmp <span style="color:#666">=</span> mng.createComponent<span style="color:#666">&lt;</span>Foo<span style="color:#666">&gt;</span>()
-        .setCallbacks(<span style="color:#a2f;font-weight:bold">nullptr</span>, <span style="color:#666">&amp;</span>Foo<span style="color:#666">::</span>start, <span style="color:#666">&amp;</span>Foo<span style="color:#666">::</span>stop, <span style="color:#a2f;font-weight:bold">nullptr</span>);
+    Component<span style="color:#666">&lt;</span>Foo<span style="color:#666">&gt;</span><span style="color:#666">&amp;</span> cmp <span style="color:#666">=</span> mng.createComponent<span style="color:#666">&lt;</span>Foo<span style="color:#666">&gt;</span>()
+        .setCallbacks(<span style="color:#a2f;font-weight:bold">nullptr</span>, <span style="color:#666">&amp;</span>Foo<span style="color:#666">:</span><span style="color:#666">:</span>start, <span style="color:#666">&amp;</span>Foo<span style="color:#666">:</span><span style="color:#666">:</span>stop, <span style="color:#a2f;font-weight:bold">nullptr</span>);
 
     cmp.createServiceDependency<span style="color:#666">&lt;</span>IAnotherExample<span style="color:#666">&gt;</span>()
             .setRequired(<span style="color:#a2f">true</span>)
             .setVersionRange(IANOTHER_EXAMPLE_CONSUMER_RANGE)
-            .setCallbacks(<span style="color:#666">&amp;</span>Foo<span style="color:#666">::</span>setAnotherExample);
+            .setCallbacks(<span style="color:#666">&amp;</span>Foo<span style="color:#666">:</span><span style="color:#666">:</span>setAnotherExample);
 
     cmp.createCServiceDependency<span style="color:#666">&lt;</span>example_t<span style="color:#666">&gt;</span>(EXAMPLE_NAME)
             .setRequired(<span style="color:#a2f">false</span>)
             .setVersionRange(EXAMPLE_CONSUMER_RANGE)
-            .setCallbacks(<span style="color:#666">&amp;</span>Foo<span style="color:#666">::</span>setExample);
+            .setCallbacks(<span style="color:#666">&amp;</span>Foo<span style="color:#666">:</span><span style="color:#666">:</span>setExample);
 }
-</code></pre></div>
-<h3 id="baz-example">Baz Example</h3>
-
+</code></pre></div><h3 id="baz-example">Baz Example</h3>
 <p>The <code>Baz</code> example has a dependency to the C++ and C services provider by the <code>Bar</code> component,
 but uses the add / remove callbacks instead of set and as result is able to depend on multiple instance of a declared service dependencies.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//Baz.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef BAZ_H
-</span><span style="color:#080">#define BAZ_H
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef BAZ_H</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define BAZ_H</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&#34;IAnotherExample.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;thread&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;list&gt;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;mutex&gt;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;example.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;IAnotherExample.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;thread&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;list&gt;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;mutex&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">class</span><span style=""> </span><span style="color:#00f">Baz</span>  {
-    std<span style="color:#666">::</span>list<span style="color:#666">&lt;</span>IAnotherExample<span style="color:#666">*&gt;</span> examples {};
-    std<span style="color:#666">::</span>mutex lock_for_examples {};
+<span style="color:#a2f;font-weight:bold">class</span> <span style="color:#00f">Baz</span>  {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>list<span style="color:#666">&lt;</span>IAnotherExample<span style="color:#666">*</span><span style="color:#666">&gt;</span> examples {};
+    std<span style="color:#666">:</span><span style="color:#666">:</span>mutex lock_for_examples {};
 
-    std<span style="color:#666">::</span>list<span style="color:#666">&lt;</span><span style="color:#a2f;font-weight:bold">const</span> example_t<span style="color:#666">*&gt;</span> cExamples {};
-    std<span style="color:#666">::</span>mutex lock_for_cExamples {};
+    std<span style="color:#666">:</span><span style="color:#666">:</span>list<span style="color:#666">&lt;</span><span style="color:#a2f;font-weight:bold">const</span> example_t<span style="color:#666">*</span><span style="color:#666">&gt;</span> cExamples {};
+    std<span style="color:#666">:</span><span style="color:#666">:</span>mutex lock_for_cExamples {};
 
-    std<span style="color:#666">::</span><span style="color:#a2f;font-weight:bold">thread</span> pollThread {};
+    std<span style="color:#666">:</span><span style="color:#666">:</span><span style="color:#a2f;font-weight:bold">thread</span> pollThread {};
     <span style="color:#0b0;font-weight:bold">bool</span> running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
 <span style="color:#a2f;font-weight:bold">public</span><span style="color:#666">:</span>
     Baz() <span style="color:#666">=</span> <span style="color:#a2f;font-weight:bold">default</span>;
@@ -510,130 +482,124 @@ but uses the add / remove callbacks instead of set and as result is able to depe
     <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">poll</span>();
 };
 
-<span style="color:#080">#endif </span><span style="color:#080;font-style:italic">//BAZ_H
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//BAZ_H
 </span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//BazActivator.h
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#ifndef BAZ_ACTIVATOR_H
-</span><span style="color:#080">#define BAZ_ACTIVATOR_H
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">ifndef BAZ_ACTIVATOR_H</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">define BAZ_ACTIVATOR_H</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#080">#include</span> <span style="color:#080">&#34;celix/dm/DmActivator.h&#34;</span><span style="color:#080">
+<span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;celix/dm/DmActivator.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">::</span>dm;
+<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">:</span><span style="color:#666">:</span>dm;
 
-<span style="color:#a2f;font-weight:bold">class</span><span style=""> </span><span style="color:#00f">BazActivator</span> <span style="color:#666">:</span> <span style="color:#a2f;font-weight:bold">public</span> DmActivator {
+<span style="color:#a2f;font-weight:bold">class</span> <span style="color:#00f">BazActivator</span> <span style="color:#666">:</span> <span style="color:#a2f;font-weight:bold">public</span> DmActivator {
 <span style="color:#a2f;font-weight:bold">private</span><span style="color:#666">:</span>
 <span style="color:#a2f;font-weight:bold">public</span><span style="color:#666">:</span>
     BazActivator(DependencyManager<span style="color:#666">&amp;</span> mng) <span style="color:#666">:</span> DmActivator(mng) {}
-    <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#0b0;font-weight:bold">void</span> init() <span style="color:#a2f;font-weight:bold">override</span>;
+    <span style="color:#a2f;font-weight:bold">virtual</span> <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">init</span>() <span style="color:#a2f;font-weight:bold">override</span>;
 };
 
-<span style="color:#080">#endif </span><span style="color:#080;font-style:italic">//BAZ_ACTIVATOR_H
+<span style="color:#080">#</span><span style="color:#080">endif </span><span style="color:#080;font-style:italic">//BAZ_ACTIVATOR_H
 </span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//Baz.cc
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;Baz.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&lt;iostream&gt;</span><span style="color:#080">
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;Baz.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&lt;iostream&gt;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">::</span>start() {
-    std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;start Baz</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">true</span>;
-    pollThread <span style="color:#666">=</span> std<span style="color:#666">::</span><span style="color:#a2f;font-weight:bold">thread</span> {<span style="color:#666">&amp;</span>Baz<span style="color:#666">::</span>poll, <span style="color:#a2f;font-weight:bold">this</span>};
+<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">:</span><span style="color:#666">:</span>start() {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">start Baz</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">true</span>;
+    pollThread <span style="color:#666">=</span> std<span style="color:#666">:</span><span style="color:#666">:</span><span style="color:#a2f;font-weight:bold">thread</span> {<span style="color:#666">&amp;</span>Baz<span style="color:#666">:</span><span style="color:#666">:</span>poll, <span style="color:#a2f;font-weight:bold">this</span>};
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">::</span>stop() {
-    std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;stop Baz</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>pollThread.join();
+<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">:</span><span style="color:#666">:</span>stop() {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">stop Baz</span><span style="color:#b62;font-weight:bold">\n</span><span style="color:#b44">&#34;</span>;
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>running <span style="color:#666">=</span> <span style="color:#a2f">false</span>;
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>pollThread.join();
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">::</span>addAnotherExample(IAnotherExample <span style="color:#666">*</span>e) {
-    std<span style="color:#666">::</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">::</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>lock_for_examples);
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>examples.push_back(e);
+<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">:</span><span style="color:#666">:</span>addAnotherExample(IAnotherExample <span style="color:#666">*</span>e) {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">:</span><span style="color:#666">:</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>lock_for_examples);
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>examples.push_back(e);
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">::</span>removeAnotherExample(IAnotherExample <span style="color:#666">*</span>e) {
-    std<span style="color:#666">::</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">::</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>lock_for_examples);
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>examples.remove(e);
+<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">:</span><span style="color:#666">:</span>removeAnotherExample(IAnotherExample <span style="color:#666">*</span>e) {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">:</span><span style="color:#666">:</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>lock_for_examples);
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>examples.remove(e);
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">::</span>addExample(<span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>e) {
-    std<span style="color:#666">::</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">::</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>lock_for_cExamples);
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>cExamples.push_back(e);
+<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">:</span><span style="color:#666">:</span>addExample(<span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>e) {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">:</span><span style="color:#666">:</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>lock_for_cExamples);
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>cExamples.push_back(e);
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">::</span>removeExample(<span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>e) {
-    std<span style="color:#666">::</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">::</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>lock_for_cExamples);
-    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>cExamples.remove(e);
+<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">:</span><span style="color:#666">:</span>removeExample(<span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span>e) {
+    std<span style="color:#666">:</span><span style="color:#666">:</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">:</span><span style="color:#666">:</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>lock_for_cExamples);
+    <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>cExamples.remove(e);
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">::</span>poll() {
+<span style="color:#0b0;font-weight:bold">void</span> Baz<span style="color:#666">:</span><span style="color:#666">:</span>poll() {
     <span style="color:#0b0;font-weight:bold">double</span> r1 <span style="color:#666">=</span> <span style="color:#666">1.0</span>;
     <span style="color:#0b0;font-weight:bold">double</span> r2 <span style="color:#666">=</span> <span style="color:#666">1.0</span>;
-    <span style="color:#a2f;font-weight:bold">while</span> (<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>running) {
+    <span style="color:#a2f;font-weight:bold">while</span> (<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>running) {
         <span style="color:#080;font-style:italic">//c++ service required -&gt; if component started always available
 </span><span style="color:#080;font-style:italic"></span>
         {
-            std<span style="color:#666">::</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">::</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>lock_for_examples);
+            std<span style="color:#666">:</span><span style="color:#666">:</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">:</span><span style="color:#666">:</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>lock_for_examples);
             <span style="color:#0b0;font-weight:bold">int</span> index <span style="color:#666">=</span> <span style="color:#666">0</span>;
-            <span style="color:#a2f;font-weight:bold">for</span> (IAnotherExample <span style="color:#666">*</span><span style="color:#a0a000">e</span> : <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>examples) {
-                r1 <span style="color:#666">=</span> e<span style="color:#666">-&gt;</span>method(<span style="color:#666">3</span>, r1);
-                std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;Result IAnotherExample &#34;</span> <span style="color:#666">&lt;&lt;</span> index<span style="color:#666">++</span> <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34; is &#34;</span> <span style="color:#666">&lt;&lt;</span> r1 <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;</span><span style="color:#b62;font-weight: [...]
+            <span style="color:#a2f;font-weight:bold">for</span> (IAnotherExample <span style="color:#666">*</span><span style="color:#a0a000">e</span> : <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>examples) {
+                r1 <span style="color:#666">=</span> e<span style="color:#666">-</span><span style="color:#666">&gt;</span>method(<span style="color:#666">3</span>, r1);
+                std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Result IAnotherExample </span><span style="color:#b44">&#34;</span> <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> index<span style="color:#666">+</span><span style="color:#666">+</span> <span style="color:#66 [...]
             }
         }
 
 
         {
-            std<span style="color:#666">::</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">::</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>lock_for_cExamples);
+            std<span style="color:#666">:</span><span style="color:#666">:</span>lock_guard<span style="color:#666">&lt;</span>std<span style="color:#666">:</span><span style="color:#666">:</span>mutex<span style="color:#666">&gt;</span> lock(<span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>lock_for_cExamples);
             <span style="color:#0b0;font-weight:bold">int</span> index <span style="color:#666">=</span> <span style="color:#666">0</span>;
-            <span style="color:#a2f;font-weight:bold">for</span> (<span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span><span style="color:#a0a000">e</span> : <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-&gt;</span>cExamples) {
+            <span style="color:#a2f;font-weight:bold">for</span> (<span style="color:#a2f;font-weight:bold">const</span> example_t <span style="color:#666">*</span><span style="color:#a0a000">e</span> : <span style="color:#a2f;font-weight:bold">this</span><span style="color:#666">-</span><span style="color:#666">&gt;</span>cExamples) {
                 <span style="color:#0b0;font-weight:bold">double</span> out;
-                e<span style="color:#666">-&gt;</span>method(e<span style="color:#666">-&gt;</span>handle, <span style="color:#666">4</span>, r2, <span style="color:#666">&amp;</span>out);
+                e<span style="color:#666">-</span><span style="color:#666">&gt;</span>method(e<span style="color:#666">-</span><span style="color:#666">&gt;</span>handle, <span style="color:#666">4</span>, r2, <span style="color:#666">&amp;</span>out);
                 r2 <span style="color:#666">=</span> out;
-                std<span style="color:#666">::</span>cout <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;Result example_t &#34;</span> <span style="color:#666">&lt;&lt;</span> index<span style="color:#666">++</span> <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34; is &#34;</span> <span style="color:#666">&lt;&lt;</span> r2 <span style="color:#666">&lt;&lt;</span> <span style="color:#b44">&#34;</span><span style="color:#b62;font-weight:bold"> [...]
+                std<span style="color:#666">:</span><span style="color:#666">:</span>cout <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style="color:#b44">Result example_t </span><span style="color:#b44">&#34;</span> <span style="color:#666">&lt;</span><span style="color:#666">&lt;</span> index<span style="color:#666">+</span><span style="color:#666">+</span> <span style="color:#666">&lt [...]
             }
         }
 
-        std<span style="color:#666">::</span>this_thread<span style="color:#666">::</span>sleep_for(std<span style="color:#666">::</span>chrono<span style="color:#666">::</span>milliseconds(<span style="color:#666">4000</span>));
+        std<span style="color:#666">:</span><span style="color:#666">:</span>this_thread<span style="color:#666">:</span><span style="color:#666">:</span>sleep_for(std<span style="color:#666">:</span><span style="color:#666">:</span>chrono<span style="color:#666">:</span><span style="color:#666">:</span>milliseconds(<span style="color:#666">4000</span>));
     }
 }
 </code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C++" data-lang="C++"><span style="color:#080;font-style:italic">//BazActivator.cc
-</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#include</span> <span style="color:#080">&#34;Baz.h&#34;</span><span style="color:#080">
-</span><span style="color:#080">#include</span> <span style="color:#080">&#34;BazActivator.h&#34;</span><span style="color:#080">
+</span><span style="color:#080;font-style:italic"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;Baz.h&#34;</span><span style="color:#080">
+</span><span style="color:#080"></span><span style="color:#080">#</span><span style="color:#080">include</span> <span style="color:#080">&#34;BazActivator.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">::</span>dm;
+<span style="color:#a2f;font-weight:bold">using</span> <span style="color:#a2f;font-weight:bold">namespace</span> celix<span style="color:#666">:</span><span style="color:#666">:</span>dm;
 
-DmActivator<span style="color:#666">*</span> DmActivator<span style="color:#666">::</span>create(DependencyManager<span style="color:#666">&amp;</span> mng) {
-    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">new</span> BazActivator(mng);
+DmActivator<span style="color:#666">*</span> DmActivator<span style="color:#666">:</span><span style="color:#666">:</span>create(DependencyManager<span style="color:#666">&amp;</span> mng) {
+    <span style="color:#a2f;font-weight:bold">return</span> <span style="color:#a2f;font-weight:bold">new</span> <span style="color:#00a000">BazActivator</span>(mng);
 }
 
-<span style="color:#0b0;font-weight:bold">void</span> BazActivator<span style="color:#666">::</span>init() {
+<span style="color:#0b0;font-weight:bold">void</span> BazActivator<span style="color:#666">:</span><span style="color:#666">:</span>init() {
 
-    Component<span style="color:#666">&lt;</span>Baz<span style="color:#666">&gt;&amp;</span> cmp <span style="color:#666">=</span> mng.createComponent<span style="color:#666">&lt;</span>Baz<span style="color:#666">&gt;</span>()
-        .setCallbacks(<span style="color:#a2f;font-weight:bold">nullptr</span>, <span style="color:#666">&amp;</span>Baz<span style="color:#666">::</span>start, <span style="color:#666">&amp;</span>Baz<span style="color:#666">::</span>stop, <span style="color:#a2f;font-weight:bold">nullptr</span>);
+    Component<span style="color:#666">&lt;</span>Baz<span style="color:#666">&gt;</span><span style="color:#666">&amp;</span> cmp <span style="color:#666">=</span> mng.createComponent<span style="color:#666">&lt;</span>Baz<span style="color:#666">&gt;</span>()
+        .setCallbacks(<span style="color:#a2f;font-weight:bold">nullptr</span>, <span style="color:#666">&amp;</span>Baz<span style="color:#666">:</span><span style="color:#666">:</span>start, <span style="color:#666">&amp;</span>Baz<span style="color:#666">:</span><span style="color:#666">:</span>stop, <span style="color:#a2f;font-weight:bold">nullptr</span>);
 
     cmp.createServiceDependency<span style="color:#666">&lt;</span>IAnotherExample<span style="color:#666">&gt;</span>()
             .setRequired(<span style="color:#a2f">true</span>)
-            .setStrategy(DependencyUpdateStrategy<span style="color:#666">::</span>locking)
+            .setStrategy(DependencyUpdateStrategy<span style="color:#666">:</span><span style="color:#666">:</span>locking)
             .setVersionRange(IANOTHER_EXAMPLE_CONSUMER_RANGE)
-            .setCallbacks(<span style="color:#666">&amp;</span>Baz<span style="color:#666">::</span>addAnotherExample, <span style="color:#666">&amp;</span>Baz<span style="color:#666">::</span>removeAnotherExample);
+            .setCallbacks(<span style="color:#666">&amp;</span>Baz<span style="color:#666">:</span><span style="color:#666">:</span>addAnotherExample, <span style="color:#666">&amp;</span>Baz<span style="color:#666">:</span><span style="color:#666">:</span>removeAnotherExample);
 
     cmp.createCServiceDependency<span style="color:#666">&lt;</span>example_t<span style="color:#666">&gt;</span>(EXAMPLE_NAME)
             .setRequired(<span style="color:#a2f">false</span>)
-            .setStrategy(DependencyUpdateStrategy<span style="color:#666">::</span>locking)
+            .setStrategy(DependencyUpdateStrategy<span style="color:#666">:</span><span style="color:#666">:</span>locking)
             .setVersionRange(EXAMPLE_CONSUMER_RANGE)
-            .setCallbacks(<span style="color:#666">&amp;</span>Baz<span style="color:#666">::</span>addExample, <span style="color:#666">&amp;</span>Baz<span style="color:#666">::</span>removeExample);
+            .setCallbacks(<span style="color:#666">&amp;</span>Baz<span style="color:#666">:</span><span style="color:#666">:</span>addExample, <span style="color:#666">&amp;</span>Baz<span style="color:#666">:</span><span style="color:#666">:</span>removeExample);
 }
-</code></pre></div>
-<h2 id="locking-and-suspending">Locking and Suspending</h2>
-
+</code></pre></div><h2 id="locking-and-suspending">Locking and Suspending</h2>
 <p>As you may notice, the Baz example uses locks.
 In principle, locking is necessary in order to ensure coherence in case service dependencies are removed/added/changed; on the other hands, locking increases latency and, when misused, can lead to poor performance.
 For this reason, the serviceDependency interface gives the possibility to choose between a locking and suspend (a non-locking) strategy through the serviceDependency_setStrategy function, as is used in the Foo2 example.</p>
-
 <p>The locking strategy <code>DependencyUpdateStrategy::locking</code> notifies the component in case the dependencies&rsquo; set changes (e.g. a dependency is added/removed): the component is responsible for protecting via locks the dependencies&rsquo; list and check (always under lock) if the service he&rsquo;s depending on is still available.
 The suspend or non-locking strategy <code>DependencyUpdateStrategy::suspend</code> (default when no strategy is explicitly set) reliefs the programmer from dealing with service dependencies&rsquo; consistency issues: in case this strategy is adopted, the component is stopped and restarted (i.e. temporarily suspended) upon service dependencies&rsquo; changes.</p>
-
 <p>The suspend strategy has the advantage of reducing locks&rsquo; usage: of course, suspending the component has its own overhead (e.g. stopping and restarting threads), but this overhead is &ldquo;paid&rdquo; only in case of changes in service dependencies, while the locking overhead is always paid.</p>
-
 <h2 id="see-also">See also</h2>
-
 <p>See the <a href="../../dependency_manager_cxx/readme.html">C++ Dependeny Manager</a> and <a href="../../examples/dm_example_cxx">C++ Dependency Manager example</a> for more information and a more complex working example.</p>
 
 
diff --git a/content/docs/celix/documents/intro/readme.html b/content/docs/2.1.0/celix/documents/intro/readme.html
similarity index 87%
copy from content/docs/celix/documents/intro/readme.html
copy to content/docs/2.1.0/celix/documents/intro/readme.html
index 1afecb2..2b346f6 100644
--- a/content/docs/celix/documents/intro/readme.html
+++ b/content/docs/2.1.0/celix/documents/intro/readme.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>readme.md / Apache Celix</title>
+    <title>Introduction / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/intro/readme.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,36 +126,26 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="apache-celix-introduction">Apache Celix Introduction</h1>
-
 <h2 id="what-is-apache-celix">What is Apache Celix</h2>
-
 <p>Apache Celix is an implementation of the <a href="https://www.osgi.org/developer/specifications">OSGi specification</a> adapted to C and C++. It is a provides a framework to develop (dynamic) modular software applications using component and/or service-oriented programming.</p>
-
 <p>Apache Celix is primarily developed in C and adds an additional abstraction, in the form of a library, to support for C++.</p>
-
 <h2 id="bundles">Bundles</h2>
-
 <p>OSGi uses bundles as medium to (run-time) add and remove modules (additional functionality) to OSGi applications. For Java, OSGi bundles are jars with a OSGi specific manifest. For Apache Celix bundles are zip files containing an OSGi manifest (with some differences) and possible modules in the form of shared libraries. One of these modules can be the bundle activator in which case the Apache Celix framework will lookup the bundle create, start, stop and destroy symbols to manage the  [...]
-
 <h2 id="c-and-objects">C and Objects</h2>
-
 <p>C is a procedural programming language and as result has no direct support for the notion of a object.
 To be able to follow the OSGi specification, a standard mapping from C to Java is used. This mapping takes care of how instances, parameters, return values and exceptions (error codes) work in Apache Celix.</p>
-
 <h3 id="example">Example</h3>
-
 <p>Before going into detail, here is an example of the mapping from a method in Java to a function in C:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-Java" data-lang="Java"><span style="color:#080;font-style:italic">//Java signature
 </span><span style="color:#080;font-style:italic"></span><span style="color:#a2f;font-weight:bold">public</span> <span style="color:#a2f;font-weight:bold">interface</span> <span style="color:#00f">BundleContext</span> <span style="color:#666">{</span>
-    <span style="color:#a2f;font-weight:bold">public</span> ServiceReference<span style="color:#666">[]</span> <span style="color:#00a000">getServiceReferences</span><span style="color:#666">(</span>String clazz<span style="color:#666">,</span> String filter<span style="color:#666">)</span> <span style="color:#a2f;font-weight:bold">throws</span> InvalidSyntaxException<span style="color:#666">;</span>
-<span style="color:#666">}</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//bundle_context.h
+    <span style="color:#a2f;font-weight:bold">public</span> ServiceReference<span style="color:#666">[</span><span style="color:#666">]</span> <span style="color:#00a000">getServiceReferences</span><span style="color:#666">(</span>String clazz<span style="color:#666">,</span> String filter<span style="color:#666">)</span> <span style="color:#a2f;font-weight:bold">throws</span> InvalidSyntaxException<span style="color:#666">;</span>
+<span style="color:#666">}</span>
+</code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">//bundle_context.h
 </span><span style="color:#080;font-style:italic"></span>
 <span style="color:#080;font-style:italic">//C prototype
-</span><span style="color:#080;font-style:italic"></span>celix_status_t <span style="color:#00a000">bundleContext_getServiceReferences</span>(bundle_context_pt context, <span style="color:#a2f;font-weight:bold">const</span> <span style="color:#0b0;font-weight:bold">char</span><span style="color:#666">*</span> serviceName, <span style="color:#a2f;font-weight:bold">const</span> <span style="color:#0b0;font-weight:bold">char</span><span style="color:#666">*</span> filter, array_list_pt<span [...]
-<h3 id="object-methods">Object methods</h3>
-
+</span><span style="color:#080;font-style:italic"></span>celix_status_t <span style="color:#00a000">bundleContext_getServiceReferences</span>(bundle_context_pt context, <span style="color:#a2f;font-weight:bold">const</span> <span style="color:#0b0;font-weight:bold">char</span><span style="color:#666">*</span> serviceName, <span style="color:#a2f;font-weight:bold">const</span> <span style="color:#0b0;font-weight:bold">char</span><span style="color:#666">*</span> filter, array_list_pt<span [...]
+</code></pre></div><h3 id="object-methods">Object methods</h3>
 <p>Using the provided example, the following templates can be extracted for mapping a object method to a C function:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">/**
 </span><span style="color:#080;font-style:italic"> * 1st template
@@ -169,19 +173,16 @@ celix_status_t <span style="color:#666">&lt;</span>typeName<span style="color:#6
 </span><span style="color:#080;font-style:italic"> * parameters: default function parameters
 </span><span style="color:#080;font-style:italic"> * output parameter: the output which the caller can use
 </span><span style="color:#080;font-style:italic"> */</span>
-celix_status_t <span style="color:#666">&lt;</span>typeName<span style="color:#666">&gt;</span>_<span style="color:#666">&lt;</span>functionName<span style="color:#666">&gt;</span>(<span style="color:#666">&lt;</span>typeName<span style="color:#666">&gt;</span>_pt self [,parameters, ] [, output parameter]);</code></pre></div>
-<p>Note that although the first template is preferred, Apache Celix still uses the second template.</p>
-
+celix_status_t <span style="color:#666">&lt;</span>typeName<span style="color:#666">&gt;</span>_<span style="color:#666">&lt;</span>functionName<span style="color:#666">&gt;</span>(<span style="color:#666">&lt;</span>typeName<span style="color:#666">&gt;</span>_pt self [,parameters, ] [, output parameter]);
+</code></pre></div><p>Note that although the first template is preferred, Apache Celix still uses the second template.</p>
 <p>Unless stated otherwise, the caller is owner of the output and should destroy/deallocate the result.
 An exception is a const output parameters, this indicates the callee is still owner.</p>
-
 <h3 id="creating-and-destroying-objects">Creating and destroying Objects</h3>
-
 <p>Objects in Apache Celix can generally be created and destroyed using a create and destroy functions.
 For example:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C">celix_status_t <span style="color:#00a000">bundleContext_create</span>(framework_pt framework, framework_logger_pt, bundle_pt bundle, bundle_context_pt <span style="color:#666">*</span>bundle_context);
-celix_status_t <span style="color:#00a000">bundleContext_destroy</span>(bundle_context_pt context);</code></pre></div>
-<p>For some types a separate allocate and init and a separate deallocate and deinit are also available.
+celix_status_t <span style="color:#00a000">bundleContext_destroy</span>(bundle_context_pt context);
+</code></pre></div><p>For some types a separate allocate and init and a separate deallocate and deinit are also available.
 This gives a user the option the initialize and deinitialize a object on the stack. the hash_map_iterator uses this:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C">hash_map_iterator_pt <span style="color:#00a000">hashMapIterator_create</span>(hash_map_pt map);
 <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">hashMapIterator_destroy</span>(hash_map_iterator_pt iterator);
@@ -190,61 +191,42 @@ hash_map_iterator_pt <span style="color:#00a000">hashMapIterator_alloc</span>(<s
 <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">hashMapIterator_dealloc</span>(hash_map_iterator_pt iterator);
 
 <span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">hashMapIterator_init</span>(hash_map_pt map, hash_map_iterator_pt iterator);
-<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">hashMapIterator_deinit</span>(hash_map_iterator_pt iterator);</code></pre></div>
-<h3 id="osgi-documentation-and-apache-celix">OSGi documentation and Apache Celix</h3>
-
+<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#00a000">hashMapIterator_deinit</span>(hash_map_iterator_pt iterator);
+</code></pre></div><h3 id="osgi-documentation-and-apache-celix">OSGi documentation and Apache Celix</h3>
 <p>Apache Celix follows the OSGi API as close as possible, but since the OSGi specification is written primarily for Java, there will be differences (Java is OO, C is procedural).
 Taking into account those differences and mapping explained before the OSGi javadoc can be used for a more in depth description of what the Apache Celix API offers.</p>
-
 <ul>
 <li><a href="https://osgi.org/javadoc/r4v43/core/index.html">OSGi core specification 4.3</a></li>
 <li><a href="https://osgi.org/javadoc/r4v43/cmpn/index.html">OSGi compendium specification 4.3</a></li>
 </ul>
-
 <h2 id="what-is-a-osgi-service">What is a OSGi service?</h2>
-
 <p>A OSGi service is a Java object register to the OSGi framework under a certain set of properties.
 OSGi services are generally registered as a well known interface (using the <code>objectClass</code> property).</p>
-
 <p>Consumers can dynamically lookup the services providing a filter to specify what kind of services their are interested in.</p>
-
 <h2 id="c-services-in-apache-celix">C services in Apache Celix</h2>
-
 <p>As mentioned OSGi uses Java Interfaces to define a service. Since C does not have Interfaces as compilable unit, this is not possible for Celix.  To be able to define a service which hides implementation details, Celix uses structs with function pointers.</p>
-
 <p>See <a href="https://github.com/apache/celix/blob/master/documents/getting_started/readme.html">Apache Celix - Getting Started Guide</a> for a more in depth look at services and service usage.</p>
-
 <h2 id="impact-of-dynamic-services">Impact of dynamic services</h2>
-
 <p>Services in Apache Celix are dynamic, meaning that they can come and go at any moment.
 How to cope with this dynamic behaviour is very critical for creating a stable solution.</p>
-
 <p>For Java OSGi this is already a challenge to program correctly, but less critical because generally speaking the garbage collector will arrange that objects still exists even if the providing bundle is deinstalled.
 Taking into account that C has no garbage collection handling the dynamic behaviour correctly is even more critical; If a bundle providing a certain services is removed the code segment / memory allocated for the service will be removed / deallocated.</p>
-
 <p>Apache Celix offers different solutions how to cope with this dynamic behaviour:</p>
-
 <ul>
-<li>Bundle Context &amp; Service References  - This (low level) <a href="../../framework/public/include/bundle_context.h">API</a> exists to be compatible with the OSGi standard. This should not be used in production code, because no locking/syncing mechanisms are available.<br /></li>
+<li>Bundle Context &amp; Service References  - This (low level) <a href="../../framework/public/include/bundle_context.h">API</a> exists to be compatible with the OSGi standard. This should not be used in production code, because no locking/syncing mechanisms are available.</li>
 <li>Service Listener - This (log level) <a href="../../framework/public/include/service_listener.h">API</a> can be used to retrieve event when services are being removed or are added. Combined with locking this can be used to safely monitor and use services.</li>
 <li>Service Tracker - This <a href="../../framework/public/include/service_tracker.h">API</a> can be used to register callbacks function when services are being removed or are added. Combined with locking this can be used to safely use services.</li>
 <li><a href="../../dependency_manager/readme.html">Dependency Manager</a> - This library can be used to add service dependency is a declarative way.  A locking or syncing mechanism can be selected to safely use services. Note that this is not part of the OSGi standard.</li>
 </ul>
-
 <p>Even though the dependency manager is not part of the OSGi specification, this is the preferred way because it uses a higher abstraction and removes a lot boilerplate code.</p>
-
 <h2 id="c-support">C++ Support</h2>
-
 <p>One of the reasons why C was chosen as implementation language is that C can act as a common denominator for (service oriented) interoperability between a range of languages.
 C++ support is added with the use of a <a href="../../dependency_manager_cxx/readme.html">C++ Dependency Manager</a>.
 The Dependency Manager is arguably the most convenient way to interact with services, confers most uses cases and eliminates the necessity to port the rest of the (large) API to C++.</p>
-
 <h2 id="documentation">Documentation</h2>
-
 <p>For more information see:</p>
-
 <ul>
-<li><a href="../building/readme.html">Apache Celix - Building and Installing</a></li>
+<li>[Apache Celix - Building and Installing] (../building/readme.html)</li>
 <li><a href="../getting_started/readme.html">Apache Celix - Getting Started Guide</a></li>
 <li><a href="../cmake_commands/readme.html">Apache Celix - CMake Commands</a></li>
 </ul>
diff --git a/content/docs/celix/documents/roadmap/api_v3/readme.html b/content/docs/2.1.0/celix/documents/roadmap/api_v3/readme.html
similarity index 90%
rename from content/docs/celix/documents/roadmap/api_v3/readme.html
rename to content/docs/2.1.0/celix/documents/roadmap/api_v3/readme.html
index f420288..d31a528 100644
--- a/content/docs/celix/documents/roadmap/api_v3/readme.html
+++ b/content/docs/2.1.0/celix/documents/roadmap/api_v3/readme.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>readme.md / Apache Celix</title>
+    <title>Celix Version 3 (Proposal) / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/roadmap/api_v3/readme.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,18 +126,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="celix-version-3-proposal">Celix Version 3 (Proposal)</h1>
-
 <h2 id="intro">Intro</h2>
-
 <p>The <a href="celix/celix.h">celix.h</a> header contains a proposed API for Apache Celix version 3.
 This API is not fixed, but work in progress and should be considered a starting point for discussion.</p>
-
 <p>There are a few reasons for a API change:</p>
-
 <h3 id="the-current-apache-celix-api-is-mapped-from-the-osgi-api">The current Apache Celix API is mapped from the OSGi API.</h3>
-
 <p>The problem is that OSGi is designed for Java, a
 language where classes are present runtime, reflection can be used, resource are controlled through garbage collection
 and classes are kept available when still needed(garbage collector) even if a bundle is uninstalled.
@@ -137,28 +145,20 @@ In this proposed API, when possible, object sharing is done through sharing ids
 (safely) retrieve info form the object if still present, which should make it more safe to use and most importantly
 less complex for implementation (think threads &amp; locks). Also most service or service related updates must be
 handled with callbacks, to ensure correct usage of locking can be applied more easily.</p>
-
 <h3 id="osgi-api-leaks-too-much-details">OSGi API leaks too much details.</h3>
-
 <p>The OSGi API is more than 15 years old and has grown overtime, this shows.
 There are a lot of hoops to take to use a service in a correct way.
 The proposed Apache Celix API tries to minimize the needed objects, while still providing the same functionality.
 It was also designed for a more user friendly experience.</p>
-
 <h3 id="smaller-code-base">Smaller code base</h3>
-
 <p>Because the OSGi leaks to much details, it is also difficult to implemented; specifically mapped one to one from Java.
 A redesign of the API could lead to a smaller code base.</p>
-
 <h3 id="single-framework-event-thread-design">Single framework event thread design.</h3>
-
 <p>It would be beneficial to use single framework event thread,
 this would means that as a user it is ensured that all the callbacks are called from the same thread.
 Preventing issues that service can be added/removed simultaneously and the locking complexity which comes with that.
 With the current API this is more difficult (too many entries to shared resources).</p>
-
 <h3 id="multiple-languages">Multiple languages</h3>
-
 <p>One of the key values of Apache Celix should be to deliver a sophisticated develop / design environment for more
 complex - i.e. composed out of modules) application/systems. For example a applications with combines
 some well proven C modules/libraries, with modern C++ modules and a splash of development support
@@ -166,117 +166,86 @@ with python modules.
 And although Apache Celix is not there yet, it is one of it&rsquo;s goals.
 The current API is not designed to support multiple languages and is difficult to port the different languages due to
 the &ldquo;too much details&rdquo; issue.</p>
-
 <h3 id="more-focus-on-the-primary-ways-to-interact-with-a-dynamic-service-framework">More focus on the primary ways to interact with a dynamic service framework.</h3>
-
 <p>For Apache Celix developers a focus is how to: work with services (register, tracking &amp; monitor service interest) and
 how to easily create components which provides and depends on services.
 The proposed API focus on these issues as built-in support. For OSGi some of these functions where added add a later
 stage and this shows.</p>
-
 <h3 id="current-api-has-a-strong-focus-on-error-codes">Current api has a strong focus on error codes</h3>
-
 <p>Java has exceptions, C has not. This has lead to an initial design that almost all function return a error code.
 While in principle completely correct, from a developer perspective it become cumbersome.
 Also taking in to perspective, than in many cases if an error is returned there no real way to handle this,
 the proposed API focus more on easy of use and lenient and silently accepting invalid input (i.e. NULL pointers
 or invalid ids).</p>
-
 <h3 id="integral-api">Integral API</h3>
-
 <p>Again because the OSGi API has grown overtime, the API seems to be dispersed and not one integral API.
 The proposed API tries to remedy that.</p>
-
 <h3 id="runtime-type-introspection">Runtime Type Introspection</h3>
-
 <p>With OSGi for Java you have runtime type introspection (reflection) build-in the Java language, for C
 (and most other native languages) this is not the case. As effect is not possible to infer if services
 are compatible or to automagically make service remote / serialize types.
 The dynamic function interface library (dfi library) adds type introspection support, by using the extender pattern combined with so called type/interface descriptor files.
 Although not ideal, this can be used to runtime check service compatibility and automagically serialize types.
 If possible the dfi support will be optional and opt-out.</p>
-
 <h3 id="eat-your-own-dog-food">Eat your own dog food</h3>
-
 <p>A bit strange, but as a service oriented framework the OSGi specification for the core framework specification does not provide framework services.
 The proposed API moves some of the API for detailed info to framework services.</p>
-
 <h3 id="integrated-event-admin">Integrated event admin</h3>
-
 <p>Services are great, but not everything fits perfectly solely with services. The event admin from the OSGi
 specification is a nice complement to the service oriented paradigm and as result event admin awareness is taken
 into account in the proposed API.</p>
-
 <h3 id="missing-prefix-for-symbols-and-headers">Missing prefix for symbols and headers</h3>
-
 <p>The current usage of prefixes is not sufficient. For example the celix framework has te be included as
 &ldquo;framework.h&rdquo; and has no prefix. This is not wise for a language without namespaces. The proposed API
 prefixes everything with celix_ and all include paths start with celix/.
 TODO discuss if a more generic OSGi like prefix is desirable, e.g. nosgi_ and nosgi/</p>
-
 <h3 id="const-correctness">const correctness</h3>
-
 <p>The proposed API add the use of const when applicable. The usage of const adds more semantics to the API and
 can prevent certain calls (e.g.in the callbacks) when they should not be used.</p>
-
 <h3 id="support-for-a-more-static-approach">Support for a more static approach</h3>
-
 <p>Although Apache Celix is a framework for dynamic services, this does not mean that every module should be runtime install/uninstall-able.
 Supporting static modules and modules as &ldquo;plain old libraries&rdquo; can make it easier to use and deploy application using Apache Celix.
 In this proposal, bundle are still present, but just a way to install modules. Support for installing modules using static
- and shared libraries is added.</p>
-
+and shared libraries is added.</p>
 <h2 id="apache-celix-v3-cmake-commands">Apache Celix V3 CMake Commands</h2>
-
 <p>Apache Celix provides several CMake commands to be able to work with Apache Celix modules, bundles and deployments.</p>
-
 <h3 id="generic-changes">Generic Changes</h3>
-
 <ul>
 <li>symbolic_name is no longer needed nor expected. A module_name / bundle_name
 is enough and should be unique.</li>
 <li>All command are prefixed with <code>celix_</code>.</li>
 </ul>
-
-<h3 id="modules-bundles">Modules &amp; Bundles</h3>
-
+<h3 id="modules--bundles">Modules &amp; Bundles</h3>
 <p>Modules are self-contained, autonomous and bounded software parts which can be combined to provide a greater/broader functionality.</p>
-
 <p>Modules contain resources and required libraries (self-contained),
 use a activator to bootstrap itself (autonomous),
 can provide/require services to share/use functionality (bounded)
 and can import / export libraries so share types / routines (bounded)</p>
-
 <p>There are two types of modules</p>
-
 <ul>
 <li>Library Modules</li>
 <li>Bundled Modules (aka Bundles)</li>
 </ul>
-
 <p>Library modules are singular modules which do not import nor export libraries,
 cannot be bundled with additional required (private) libraries, and are build as shared or static libraries.
 Library modules can contain additional (embedded) resources.
 Static modules will only auto register on platforms where there is
 support for the  <code>__attribute__((ctor))</code> compiler attribute.</p>
-
 <p>Bundle modules are modules which can import and/or export other libraries and
 can embed additional required (private) libraries.
 Bundle modules will be build as bundle file (ZIP file).</p>
-
 <h3 id="modules">Modules</h3>
-
 <p>Modules can be build a &ldquo;plain old libraries&rdquo; using the CMake
 add_library command. Resources can be added using the
 celix_module_files command.</p>
-
 <p>To be able to find the module resources, the module name used in the
 celix_moduleRegister call should be the same as the module name used
 in the CMake commnands.
 If no module name is set using the celix_module_name CMake command,
 the module name is equal to the name target.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_module_name</span>(<span style="color:#b44">&lt;module_target&gt;</span> <span style="color:#b44">&lt;module_name&gt;</span>)<span style="">
-</span><span style="">
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="">
+</span><span style=""></span><span style="color:#a2f">celix_module_name</span>(<span style="color:#b44">&lt;module_target&gt;</span> <span style="color:#b44">&lt;module_name&gt;</span>)<span style="">
+</span><span style=""></span><span style="">
 </span><span style=""></span><span style="color:#a2f">celix_module_files</span>(<span style="color:#b44">&lt;bundle_or_module_target&gt;</span>
     <span style="color:#b44">files...</span> <span style="color:#b44">DESTINATION</span> <span style="color:#b44">&lt;dir&gt;</span>
     <span style="color:#b44">[FILE_PERMISSIONS</span> <span style="color:#b44">permissions...]</span>
@@ -285,7 +254,8 @@ the module name is equal to the name target.</p>
     <span style="color:#b44">[FILES_MATCHING]</span>
     <span style="color:#b44">[[PATTERN</span> <span style="color:#b44">&lt;pattern&gt;</span> <span style="color:#b44">|</span> <span style="color:#b44">REGEX</span> <span style="color:#b44">&lt;regex&gt;]</span>
     <span style="color:#b44">[EXCLUDE]</span> <span style="color:#b44">[PERMISSIONS</span> <span style="color:#b44">permissions...]]</span> <span style="color:#b44">[...]</span>)<span style="">
-</span><span style="">)</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">/**
+</span><span style=""></span><span style="">)</span><span style="">
+</span></code></pre></div><div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-C" data-lang="C"><span style="color:#080;font-style:italic">/**
 </span><span style="color:#080;font-style:italic"> * Registers the module for all current framework and future framework that are created.
 </span><span style="color:#080;font-style:italic"> * If no name is provided, the module will not be registered and an error will be logged.
 </span><span style="color:#080;font-style:italic"> *
@@ -305,12 +275,11 @@ the module name is equal to the name target.</p>
         <span style="color:#a2f;font-weight:bold">const</span> <span style="color:#0b0;font-weight:bold">char</span><span style="color:#666">*</span> moduleVersion,
         celix_module_registration_startModule_fp startFp,
         celix_module_registration_stopModule_fp stopFp,
-        <span style="color:#a2f;font-weight:bold">const</span> celix_module_registration_options<span style="color:#666">*</span> opts);</code></pre></div>
-<h3 id="bundles">Bundles</h3>
-
+        <span style="color:#a2f;font-weight:bold">const</span> celix_module_registration_options<span style="color:#666">*</span> opts);
+</code></pre></div><h3 id="bundles">Bundles</h3>
 <p>Bundles are ZIP files which bundle one module.
-The CMake commands for add<em>bundle commands are not changed with exception of the
-added celix</em> prefix. The other command are renamed to module and a celix_ is added
+The CMake commands for add_bundle commands are not changed with exception of the
+added celix_ prefix. The other command are renamed to module and a celix_ is added
 (e.g bundle_name -&gt; celix_module_name)</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_add_bundle</span>(<span style="color:#b44">&lt;bundle_target_name&gt;</span>
     <span style="color:#b44">SOURCES</span> <span style="color:#b44">source1</span> <span style="color:#b44">source2</span> <span style="color:#b44">...</span>
@@ -323,7 +292,7 @@ added celix</em> prefix. The other command are renamed to module and a celix_ is
     <span style="color:#b44">[IMPORT_LIBRARIES</span> <span style="color:#b44">import_lib1</span> <span style="color:#b44">import_lib2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[HEADERS</span> <span style="color:#b44">&#34;header1: header1_value&#34;</span> <span style="color:#b44">&#34;header2: header2_value&#34;</span> <span style="color:#b44">...]</span>
 )<span style="">
-</span><span style="">
+</span><span style=""></span><span style="">
 </span><span style=""></span><span style="color:#a2f">celix_add_bundle</span>(<span style="color:#b44">&lt;bundle_target_name&gt;</span>
     <span style="color:#b44">ACTIVATOR</span> <span style="color:#b44">&lt;activator_lib&gt;</span>
     <span style="color:#b44">[NAME</span> <span style="color:#b44">bundle_name]</span>
@@ -335,7 +304,7 @@ added celix</em> prefix. The other command are renamed to module and a celix_ is
     <span style="color:#b44">[IMPORT_LIBRARIES</span> <span style="color:#b44">import_lib1</span> <span style="color:#b44">import_lib2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[HEADERS</span> <span style="color:#b44">&#34;header1: header1_value&#34;</span> <span style="color:#b44">&#34;header2: header2_value&#34;</span> <span style="color:#b44">...]</span>
 )<span style="">
-</span><span style="">
+</span><span style=""></span><span style="">
 </span><span style=""></span><span style="color:#a2f">celix_add_bundle</span>(<span style="color:#b44">&lt;bundle_target_name&gt;</span>
     <span style="color:#b44">[NAME</span> <span style="color:#b44">bundle_name]</span>
     <span style="color:#b44">[SYMBOLIC_NAME</span> <span style="color:#b44">bundle_symbolic_name]</span>
@@ -345,30 +314,27 @@ added celix</em> prefix. The other command are renamed to module and a celix_ is
     <span style="color:#b44">[EXPORT_LIBRARIES</span> <span style="color:#b44">export_lib1</span> <span style="color:#b44">export_lib2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[IMPORT_LIBRARIES</span> <span style="color:#b44">import_lib1</span> <span style="color:#b44">import_lib2</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[HEADERS</span> <span style="color:#b44">&#34;header1: header1_value&#34;</span> <span style="color:#b44">&#34;header2: header2_value&#34;</span> <span style="color:#b44">...]</span>
-)</code></pre></div>
-<h3 id="descriptors">Descriptors</h3>
-
+)<span style="">
+</span><span style=""></span><span style="">
+</span></code></pre></div><h3 id="descriptors">Descriptors</h3>
 <p>Descriptors are files which describe interfaces or messages which can be
 parsed by the dynamic function interface (dfi) library.
 The dfi library can be used for runtime &lsquo;type introspection&rsquo;.
 The descriptor files are a bit cryptic for human eyes, but relatively easy to parse.</p>
-
 <p>With these descriptors the Celix framework can runtime compare if
 services and/or messages provider consumer combinations are compatible
 and make remote services / serialization of messages possible.</p>
-
 <p>The <code>celix_module_descriptor</code> CMake will register header files
 for descriptor generation and inclusion in the module/bundle
 resources (under META-INF/descriptors/interfaces and
 META-INF/descriptors/messages).</p>
-
 <p>The Celix project will have a <code>dfi-gen</code> target which will be used to
 generate the descriptors from the header files.</p>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_module_descriptor</span>(<span style="color:#b44">&lt;bundle_or_module_target&gt;</span>
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="">
+</span><span style=""></span><span style="color:#a2f">celix_module_descriptor</span>(<span style="color:#b44">&lt;bundle_or_module_target&gt;</span>
     <span style="color:#b44">header_file1</span> <span style="color:#b44">header_file2</span> <span style="color:#b44">...</span>
-)</code></pre></div>
-<h3 id="deployment">Deployment</h3>
-
+)<span style="">
+</span></code></pre></div><h3 id="deployment">Deployment</h3>
 <p>The <code>add_deploy</code> will be changed to <code>celix_add_deploy</code> and will accept
 library modules and bundle modules.</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_add_deploy</span>(<span style="color:#b44">&lt;deploy_target_name&gt;</span>
@@ -379,7 +345,8 @@ library modules and bundle modules.</p>
     <span style="color:#b44">[DIR</span> <span style="color:#b44">dir]</span>
     <span style="color:#b44">[MODULES</span> <span style="color:#b44">&lt;module_or_bundle1&gt;</span> <span style="color:#b44">&lt;module_or_bundle2&gt;</span> <span style="color:#b44">...]</span>
     <span style="color:#b44">[PROPERTIES</span> <span style="color:#b44">&#34;prop1=val1&#34;</span> <span style="color:#b44">&#34;prop2=val2&#34;</span> <span style="color:#b44">...]</span>
-)</code></pre></div>
+)<span style="">
+</span></code></pre></div>
 
                 </div>
             </div>
diff --git a/content/docs/celix/documents/roadmap/improvement_ideas.html b/content/docs/2.1.0/celix/documents/roadmap/improvement_ideas.html
similarity index 85%
rename from content/docs/celix/documents/roadmap/improvement_ideas.html
rename to content/docs/2.1.0/celix/documents/roadmap/improvement_ideas.html
index ed25a3b..5c52079 100644
--- a/content/docs/celix/documents/roadmap/improvement_ideas.html
+++ b/content/docs/2.1.0/celix/documents/roadmap/improvement_ideas.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>improvement_ideas.md / Apache Celix</title>
+    <title>Improvement Ideas / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/roadmap/improvement_ideas.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,46 +126,32 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="improvement-ideas">Improvement Ideas</h1>
-
 <h1 id="introduce-dlmopen-for-library-imports">Introduce dlmopen for library imports.</h1>
-
 <p>Currently library are loaded LOCAL for bundles. This works alright, but makes it hard to add a concept
 of exporting and importing libraries.</p>
-
 <p>The trick is that the NEEDED header in the importing libraries
 should match the target exported library SONAME header and no other exported libraries SONAME headers.
 One solution to make this work is to alter the NEEDED &amp; SONAME runtime.</p>
-
 <p>For glibc there is now an other alternative, namely using dlmopen. dlmopen makes it possible to load
 libraries in a given namespace. For bundle this can be used to create a library namespace per bundle
 and load exported libraries int importing bundle namespace. A clean solution, but this currently
 only works for glibc (linux).</p>
-
 <h1 id="fix-the-performance-use-case-and-add-c-support">Fix the performance use case and add C++ support</h1>
-
 <p>There was a locking example which also functioned as a performance test to measure the impact of
 using services instead of direct function calls.
 During the removal of APR this example stopped working. Add it back, fix it and add a C++ use case
 as example.
 See <a href="https://github.com/apache/celix/tree/216032cae956379d4a740f37ae5caee7e957bd98/examples/locking">locking example tree</a></p>
-
 <h1 id="cleanup-celix-project-structure">Cleanup Celix project structure</h1>
-
 <p>Celix is growing and getting more sub project, this is fine but maybe the structure needs a cleanup to
 create a more clear root directory structure.</p>
-
 <h1 id="extend-the-test-environment">Extend the test environment</h1>
-
 <h1 id="improve-documentation">Improve documentation</h1>
-
 <h1 id="create-one-or-more-real-life-applications-based-on-celix-to-show-the-potential-of-celix">Create one or more &ldquo;real life&rdquo; applications based on Celix to show the potential of Celix</h1>
-
 <h1 id="add-pub-sub-admins">Add pub sub admins.</h1>
-
-<p>The current implementation uses JSON over multicast UDP or over ZMQ.<br />
-One or more could be added. i.e. serialization based on Apache-Avro, communication over TCP / Kafka / Shared Memory<br />
+<p>The current implementation uses JSON over multicast UDP or over ZMQ.<br>
+One or more could be added. i.e. serialization based on Apache-Avro, communication over TCP / Kafka / Shared Memory<br>
 Add interfaces for other languages (Python / Rust / Go / &hellip;)</p>
 
 
diff --git a/content/docs/celix/documents/roadmap/roadmap.html b/content/docs/2.1.0/celix/documents/roadmap/roadmap.html
similarity index 82%
rename from content/docs/celix/documents/roadmap/roadmap.html
rename to content/docs/2.1.0/celix/documents/roadmap/roadmap.html
index 3dafcbf..5ee5d97 100644
--- a/content/docs/celix/documents/roadmap/roadmap.html
+++ b/content/docs/2.1.0/celix/documents/roadmap/roadmap.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>roadmap.md / Apache Celix</title>
+    <title>Roadmap / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/roadmap/roadmap.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,120 +126,87 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="roadmap">Roadmap</h1>
-
 <p>Note this roadmap is still a draft.</p>
-
-<h1 id="apache-celix-2-0-1">Apache Celix 2.0.1</h1>
-
+<h1 id="apache-celix-201">Apache Celix 2.0.1</h1>
 <p>Date: TBD (juli/aug 2017?)</p>
-
 <h2 id="improve-pubsub-celix-407">Improve PubSub (CELIX-407)</h2>
-
 <ol>
-<li>Finalize introduction serializer services<br /></li>
+<li>Finalize introduction serializer services</li>
 <li>Ensure code coverage of ~ 70%</li>
 </ol>
-
 <h2 id="finalize-runtime-creation-celix-408">Finalize Runtime Creation (CELIX-408)</h2>
-
 <ol>
 <li>Ensure that the runtime command are used for testing some distributed test (e.g. pubsub)</li>
 </ol>
-
 <h2 id="add-support-for-running-celix-as-a-single-executable-todo-issue">Add Support for running Celix as a single executable (TODO issue)</h2>
-
 <p>For different reasons it could be interesting to support running bundles from a single executable.
 Primarily security, but also startup performance.</p>
-
 <p>To start this can be achieved by creating static version of the celix provided bundles. These static
 bundles should have unique symbols, e.g  shell_bundleActivator_create instead of a
 &ldquo;normal&rdquo; bundleActivator_create. The normal  activator functions should then
 only be used (using a define or separated source file) when building a shared library bundle.
 A additional property (e.g. &ldquo;cosgi.auto.static.start=shell, shell_tui&rdquo;) can be used to specify which
 symbol prefixes to use.</p>
-
 <p>Note that if this is implemented it would also be a good moment to add a compile option / launcher option
 to disable dynamic loading of libraries. This way shared library based bundles can be used during
 development, but for production a static executable with no capability to add bundles runtime
 could be used if preferable.</p>
-
-<h1 id="apache-celix-2-1-0">Apache Celix 2.1.0</h1>
-
+<h1 id="apache-celix-210">Apache Celix 2.1.0</h1>
 <p>Date: TBD (Jan 2018)</p>
-
 <p>Note a short comming is that there is still no good support for export and import libraries between
 bundles. For Linux dlmopen is a solution, but for a more broader UNIX support a more &ldquo;creative&rdquo;
 solution is needed (e.g. Just in time replacing the SONAME and NEEDED values in the respective shared libraries)</p>
-
-<h2 id="extend-dependency-manager-c-c-celix-409">Extend Dependency Manager C/C++ (CELIX-409)</h2>
-
+<h2 id="extend-dependency-manager-cc-celix-409">Extend Dependency Manager C/C++ (CELIX-409)</h2>
 <p>The dependency manager offers declarative API for working with services and is arguable more easier
 to use than the official OSGi Api. Extend the DM so that in can be used for virtually any bundle
 without directly using the bundle context, bundle, module, service ref, service registration, etc API.
 This provided a much smaller API providing almost the same functionality.</p>
-
-<p>This means:
-1. Add support for service factory
-1. Add support for providing listener hooks. Note that this is already supported by registering
-   a <code>listener_hook_service</code> service, but maybe a more abstracted way.
-1. Add support looking up and opening resources in the bundle.
-1. Replace add,remove, etc callbacks which uses the service reference, with callbacks using properties
-1. Test if the dm correctly works when adding / removing provided services and service dependencies after a component is started.
-1. Getting framework properties (e.g. bundleContext_getProperty)
-1. Support for getting basic info from bundle (version, symbolic name, manifest)</p>
-
+<p>This means:</p>
+<ol>
+<li>Add support for service factory</li>
+<li>Add support for providing listener hooks. Note that this is already supported by registering
+a <code>listener_hook_service</code> service, but maybe a more abstracted way.</li>
+<li>Add support looking up and opening resources in the bundle.</li>
+<li>Replace add,remove, etc callbacks which uses the service reference, with callbacks using properties</li>
+<li>Test if the dm correctly works when adding / removing provided services and service dependencies after a component is started.</li>
+<li>Getting framework properties (e.g. bundleContext_getProperty)</li>
+<li>Support for getting basic info from bundle (version, symbolic name, manifest)</li>
+</ol>
 <h2 id="add-framework-services-todo-issue">Add framework services (TODO issue)</h2>
-
 <p>Apache Celix is a framework for service oriented programming, this should also include for interacting with the
 framework itself. Create framework services for:</p>
-
 <ol>
 <li>bundle management: installing, Starting, Stopping, deinstalling, listing, etc bundles.</li>
 <li>service registry info: nr of service registered, nr of service listeners, etc.</li>
 <li>framework listenerL start, stop, error events (whiteboard)</li>
 <li>bundle listener: installed, start, stop, deinstalled events (whiteboard)</li>
 </ol>
-
 <h2 id="support-dependency-manager-from-framework-todo-issue">Support dependency manager from framework (TODO issue)</h2>
-
 <p>Because the dependency manager is actual the preferred way to write bundles, this should be support
 like &ldquo;normal&rdquo; activators&rdquo; directly from the framework without using a static library.</p>
-
 <h2 id="refactor-celix-provided-bundles-to-use-dependency-manager-and-framework-services-todo-issue">Refactor Celix provided bundles to use dependency manager and framework services (TODO issue)</h2>
-
 <p>Refactor Celix bundles (shell, shell_tuu, RSA, etc) to use the dependency manager instead of a &ldquo;vanilla&rdquo;
 bundle activator. The dependency manager should be the preferred way to handle services.
 Also instead of directly using the API from bundle_context, bundle, module, etc the framework services
 should be used.</p>
-
 <h2 id="create-dfi-descriptor-generator-todo-issue">Create dfi descriptor generator (TODO issue)</h2>
-
 <p>Create a descriptor generator which can parse type and service headers.
 This can be relatively easy  achieved by (e.g.) using the libclang library.
 Also extend the CMake add_bundle command and create a CMake bundle_add_descriptors command to be able
 to add the descriptors to the bundle</p>
-
-<h2 id="use-dfi-descriptor-in-service-registrations-references-todo-issue">Use dfi descriptor in service registrations/references (TODO issue)</h2>
-
+<h2 id="use-dfi-descriptor-in-service-registrationsreferences-todo-issue">Use dfi descriptor in service registrations/references (TODO issue)</h2>
 <p>When available dfi descriptors can be used in Celix to validate if service are compatible and
 in case of the provided service having more functions than the consumer needs, create a (cast to)
 a compatible consumer version.</p>
-
-<h1 id="apache-celix-3-0-0">Apache Celix 3.0.0</h1>
-
+<h1 id="apache-celix-300">Apache Celix 3.0.0</h1>
 <p>Date: TBD (aug 2018)</p>
-
 <h2 id="remove-support-for-vanilla-bundle-activators-todo-issue">Remove support for &ldquo;vanilla&rdquo; bundle activators (TODO issue)</h2>
-
 <p>When all Celix provided bundles are using the dependency manager and framework services support for
 the &ldquo;vanilla&rdquo;  bundle activator can be dropped. Also a lot internals can be refactored because the public
 API should have shrunk quite a bit; This should lead to smaller code base -&gt; less complex, easier to maintain
 and a smaller footprint.</p>
-
 <h2 id="refactor-service-registry-to-a-single-threaded-design-todo-issue">Refactor service registry to a single threaded design (TODO issue)</h2>
-
 <p>Celix currently has some nested lock. It would be preferable to remove these, but this is difficult
 because they are used to sync events which react on registering/unregistering services. Specially when
 a unregister/register event leads to other services being registered/unregisterd. One way to deal with
diff --git a/content/docs/celix/documents/subprojects/readme.html b/content/docs/2.1.0/celix/documents/subprojects/readme.html
similarity index 87%
copy from content/docs/celix/documents/subprojects/readme.html
copy to content/docs/2.1.0/celix/documents/subprojects/readme.html
index d9f3f30..87fb5b6 100644
--- a/content/docs/celix/documents/subprojects/readme.html
+++ b/content/docs/2.1.0/celix/documents/subprojects/readme.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>readme.md / Apache Celix</title>
+    <title>Subprojects / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/documents/subprojects/readme.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,11 +126,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="apache-celix-subprojects">Apache Celix - Subprojects</h1>
-
+<h1 id="apache-celix---subprojects">Apache Celix - Subprojects</h1>
 <p>Apache Celix is organized into several subprojects. The following subproject are currently available:</p>
-
 <ul>
 <li><a href="https://github.com/apache/celix/tree/rel/celix-2.1.0/framework">Framework</a> - The Apache Celix framework, an implementation of OSGi adapted to C.</li>
 <li><a href="../../dependency_manager/readme.html">C Dependency Manager</a> - A C component/dependency model for use through an API provided as library.</li>
@@ -127,7 +138,6 @@ limitations under the License.
 <li><a href="../../log_service/README.html">Log Service</a> - An implementation of the OSGi Log Service adapated to C.</li>
 <li><a href="../../log_writer/README.html">Log Writer</a> - A simple log writer for use in combination with the Log Service.</li>
 <li><a href="../../remote_services/README.html">Remote Service Admin</a> - An implementation of the OSGi Remote Service Admin Service - for several protocols - adapted to C.
-
 <ul>
 <li><a href="https://github.com/apache/celix/tree/rel/celix-2.1.0/remote_services/remote_service_admin_http">Remote Service Admin HTTP</a> - A HTTP implementation of the RSA.</li>
 <li><a href="https://github.com/apache/celix/tree/rel/celix-2.1.0/remote_services/remote_service_admin_dfi">Remote Service Admin DFI</a> - A Dynamic Function Interface (DFI) implementation of the RSA.</li>
@@ -136,7 +146,8 @@ limitations under the License.
 <li><a href="https://github.com/apache/celix/tree/rel/celix-2.1.0/remote_services/discovery_configured">Discovery Configured</a> - A RSA Discovery implementation using static configuration (xml).</li>
 <li><a href="../../remote_services/discovery_etcd/README.html">Discovery Etcd</a> - A RSA Discovery implementation using etcd.</li>
 <li><a href="https://github.com/apache/celix/tree/rel/celix-2.1.0/remote_services/discovery_shm">Discovery SHM</a> - A RSA Discovery implementation using shared memory.</li>
-</ul></li>
+</ul>
+</li>
 <li><a href="../../shell/README.html">Shell</a> - A OSGi shell implementation.</li>
 <li><a href="../../shell_tui/README.html">Shell TUI</a> - A textual UI for the Celix Shell.</li>
 <li><a href="../../remote_shell/README.html">Remote Shell</a> - A remote (telnet) frontend for the Celix shell.</li>
diff --git a/content/docs/celix/etcdlib/README.html b/content/docs/2.1.0/celix/etcdlib/README.html
similarity index 84%
copy from content/docs/celix/etcdlib/README.html
copy to content/docs/2.1.0/celix/etcdlib/README.html
index 1189357..afef34b 100644
--- a/content/docs/celix/etcdlib/README.html
+++ b/content/docs/2.1.0/celix/etcdlib/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Etcdlib / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/etcdlib/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,37 +126,29 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="etcdlib">Etcdlib</h1>
-
 <p>etcd is a distributed, consistent key-value store for shared configuration and service discovery, part of the CoreOS project.</p>
-
 <p>This repository provides a library for etcd for C applications.</p>
-
 <p>Etcdlib can be used as part of Celix but is also useable stand-alone.</p>
-
 <h2 id="preparing">Preparing</h2>
-
 <p>The following packages (libraries + headers) should be installed on your system:</p>
-
 <ul>
-<li><p>Development Environment</p>
-
+<li>
+<p>Development Environment</p>
 <ul>
 <li>build-essentials (gcc/g++ or clang/clang++)</li>
 <li>cmake (3.2 or higher)</li>
-</ul></li>
-
-<li><p>Etcdlib Dependencies</p>
-
+</ul>
+</li>
+<li>
+<p>Etcdlib Dependencies</p>
 <ul>
 <li>curl</li>
 <li>jansson</li>
-</ul></li>
 </ul>
-
+</li>
+</ul>
 <h2 id="download-the-apache-celix-sources">Download the Apache Celix sources</h2>
-
 <p>To get started you first have to download the Apache Celix sources. This can be done by cloning the Apache Celix git repository:</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#080;font-style:italic"># Create a new workspace to work in, e.g:</span>
 mkdir -p <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">HOME</span><span style="color:#b68;font-weight:bold">}</span>/workspace
@@ -150,36 +156,33 @@ mkdir -p <span style="color:#b68;font-weight:bold">${</span><span style="color:#
 <span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>
 
 <span style="color:#080;font-style:italic"># clone the repro</span>
-git clone --single-branch --branch develop https://github.com/apache/celix.git</code></pre></div>
-<h2 id="building">Building</h2>
-
+git clone --single-branch --branch develop https://github.com/apache/celix.git
+</code></pre></div><h2 id="building">Building</h2>
 <p>Etcdlib uses <a href="https://cmake.org">CMake</a> as build system. CMake can generate (among others) makefiles or ninja build files. Using ninja build files will result in a faster build.</p>
-
 <h3 id="building-using-cmake-and-makefiles">Building using CMake and makefiles:</h3>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/celix/etcdlib
 mkdir build
 <span style="color:#a2f">cd</span> build
 cmake .. 
-make </code></pre></div>
-<h3 id="building-using-cmake-and-ninja">Building using CMake and Ninja</h3>
+make 
+</code></pre></div><h3 id="building-using-cmake-and-ninja">Building using CMake and Ninja</h3>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/celix/etcdlib
 mkdir build
 <span style="color:#a2f">cd</span> build
 cmake -G Ninja ..
-ninja</code></pre></div>
-<h2 id="editing-build-options">Editing Build options</h2>
-
+ninja
+</code></pre></div><h2 id="editing-build-options">Editing Build options</h2>
 <p>With use of CMake, Etcdlib makes it possible to edit build options. This enabled users, among other options, to configure a install location.
 To edit the options use ccmake or cmake-gui. For cmake-gui an additional package install can be necessary (Fedora: <code>dnf install cmake-gui</code>).</p>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/celix/etcdlib/build
 ccmake .
-<span style="color:#080;font-style:italic"># Edit the CMAKE_INSTALL_PREFIX config to set the install location</span></code></pre></div>
-<p>For this guide we assume the CMAKE_INSTALL_PREFIX is <code>/usr/local</code>.</p>
-
+<span style="color:#080;font-style:italic"># Edit the CMAKE_INSTALL_PREFIX config to set the install location</span>
+</code></pre></div><p>For this guide we assume the CMAKE_INSTALL_PREFIX is <code>/usr/local</code>.</p>
 <h2 id="installing-etcdlib">Installing Etcdlib</h2>
 <div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#a2f">cd</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#b8860b">WS</span><span style="color:#b68;font-weight:bold">}</span>/celix/etcdlib/build
 make
-sudo make install</code></pre></div>
+sudo make install
+</code></pre></div>
 
                 </div>
             </div>
diff --git a/content/docs/celix/launcher/README.html b/content/docs/2.1.0/celix/launcher/README.html
similarity index 84%
copy from content/docs/celix/launcher/README.html
copy to content/docs/2.1.0/celix/launcher/README.html
index 1a93b29..eb62a0e 100644
--- a/content/docs/celix/launcher/README.html
+++ b/content/docs/2.1.0/celix/launcher/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Launcher / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/launcher/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,15 +126,10 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="launcher">Launcher</h2>
-
 <p>The Celix Launcher is a generic executable for launching the Framework. It reads a java properties based configuration file.</p>
-
 <p>The Launcher also passes the entire configuration to the Framework, this makes them available to the bundleContext_getProperty function.</p>
-
 <h6 id="properties">Properties</h6>
-
 <pre><code>cosgi.auto.start.1                  Space delimited list of bundles to install and start when the
                                     Launcher/Framework is started. Note: Celix currently has no
                                     support for start levels, even though the &quot;1&quot; is meant for this.
@@ -128,9 +137,7 @@ org.osgi.framework.storage          sets the bundle cache directory
 org.osgi.framework.storage.clean    If set to &quot;onFirstInit&quot;, the bundle cache will be flushed
                                     when the framework starts
 </code></pre>
-
 <h6 id="cmake-option">CMake option</h6>
-
 <pre><code>BUILD_LAUNCHER=ON
 </code></pre>
 
diff --git a/content/docs/celix/log_service/README.html b/content/docs/2.1.0/celix/log_service/README.html
similarity index 83%
copy from content/docs/celix/log_service/README.html
copy to content/docs/2.1.0/celix/log_service/README.html
index b1c8e57..1b6bf14 100644
--- a/content/docs/celix/log_service/README.html
+++ b/content/docs/2.1.0/celix/log_service/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Log Service / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/log_service/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,21 +126,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="log-service">Log Service</h2>
-
 <p>The Celix Log Service realizes an adapted implementation of the OSGi Compendium Log Service. This is a very simple implementation which only stores the log in memory. It can be combined with one of the available Log Writers to forward the buffered entries to e.g. stdout or syslog.</p>
-
 <p>To ease the use of the Log Service, the <a href="public/include/log_helper.h">Log Helper</a> can be used. It wraps and therefore simplifies the log service usage.</p>
-
 <h6 id="properties">Properties</h6>
-
 <pre><code>LOGHELPER_ENABLE_STDOUT_FALLBACK      If set to any value and in case no Log Service is found the logs
                                       are still printed on stdout. 
 </code></pre>
-
 <h6 id="cmake-option">CMake option</h6>
-
 <pre><code>BUILD_LOG_SERVICE=ON
 </code></pre>
 
diff --git a/content/docs/celix/log_writer/README.html b/content/docs/2.1.0/celix/log_writer/README.html
similarity index 82%
copy from content/docs/celix/log_writer/README.html
copy to content/docs/2.1.0/celix/log_writer/README.html
index b341285..0486a45 100644
--- a/content/docs/celix/log_writer/README.html
+++ b/content/docs/2.1.0/celix/log_writer/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Log Writer / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/log_writer/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,13 +126,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="log-writer">Log Writer</h2>
-
 <p>The Celix Log Writers are components that read/listen to the Log Service and print the Log entries to the console or syslog, respectively.</p>
-
 <h6 id="cmake-options">CMake options</h6>
-
 <pre><code>BUILD_LOG_WRITER=ON
 BUILD_LOG_WRITER_SYSLOG=ON
 </code></pre>
diff --git a/content/docs/celix/pubsub/README.html b/content/docs/2.1.0/celix/pubsub/README.html
similarity index 86%
copy from content/docs/celix/pubsub/README.html
copy to content/docs/2.1.0/celix/pubsub/README.html
index ea39936..b4117a7 100644
--- a/content/docs/celix/pubsub/README.html
+++ b/content/docs/2.1.0/celix/pubsub/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Publisher / subscriber implementation / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/pubsub/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,36 +126,24 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="publisher-subscriber-implementation">Publisher / subscriber implementation</h1>
-
+<h1 id="publisher--subscriber-implementation">Publisher / subscriber implementation</h1>
 <p>This subdirectory contains an implementation for a publish-subscribe remote services system, that use dfi library for message serialization.
 For low-level communication, UDP and ZMQ is used.</p>
-
 <h1 id="description">Description</h1>
-
 <p>This publisher / subscriber implementation is based on the concepts of the remote service admin (i.e. rsa / topology / discovery pattern).</p>
-
 <p>Publishers are senders of data, subscribers can receive data. Publishers can publish/send data to certain channels (called &lsquo;topics&rsquo; further on), subscribers can subscribe to these topics. For every topic a publisher service is created by the pubsub admin. This publisher is announced through etcd. So etcd is used for discovery of the publishers. Subscribers are also registered as a service by the pubsub admin and will watch etcd for changes and when a new publisher is annou [...]
-
 <p>The dfi library is used for message serialization. The publisher / subscriber implementation will arrange that every message which will be send gets an unique id.</p>
-
 <p>For communication between publishers and subscribers UDP and ZeroMQ can be used. When using ZeroMQ it&rsquo;s also possible to setup a secure connection to encrypt the traffic being send between publishers and subscribers. This connection can be secured with ZeroMQ by using a curve25519 key pair per topic.</p>
-
 <p>The publisher/subscriber implementation supports sending of a single message and sending of multipart messages.</p>
-
 <h2 id="getting-started">Getting started</h2>
-
-<p>The publisher/subscriber implementation contains 2 different PubSubAdmins for managing connections:
-  * PubsubAdminUDP: This pubsub admin is using linux sockets to setup a connection.
-  * PubsubAdminZMQ (LGPL License): This pubsub admin is using ZeroMQ and is disabled as default. This is a because the pubsub admin is using ZeroMQ which is licensed as LGPL (<a href="https://github.com/zeromq/libzmq#license">View ZeroMQ License</a>).</p>
-
+<p>The publisher/subscriber implementation contains 2 different PubSubAdmins for managing connections:</p>
+<ul>
+<li>PubsubAdminUDP: This pubsub admin is using linux sockets to setup a connection.</li>
+<li>PubsubAdminZMQ (LGPL License): This pubsub admin is using ZeroMQ and is disabled as default. This is a because the pubsub admin is using ZeroMQ which is licensed as LGPL (<a href="https://github.com/zeromq/libzmq#license">View ZeroMQ License</a>).</li>
+</ul>
 <p>The ZeroMQ pubsub admin can be enabled by specifying the build flag <code>BUILD_PUBSUB_PSA_ZMQ=ON</code>. To get the ZeroMQ pubsub admin running, <a href="https://github.com/zeromq/libzmq">ZeroMQ</a> and <a href="https://github.com/zeromq/czmq">CZMQ</a> need to be installed. Also, to make use of encrypted traffic, <a href="https://github.com/openssl/openssl">OpenSSL</a> is required.</p>
-
 <h2 id="running-instructions">Running instructions</h2>
-
 <h3 id="running-psa-udp-multicast">Running PSA UDP-Multicast</h3>
-
 <ol>
 <li>Open a terminal</li>
 <li>Run <code>etcd</code></li>
@@ -152,13 +154,9 @@ For low-level communication, UDP and ZMQ is used.</p>
 <li>Run <code>cd deploy/pubsub/pubsub_subscriber_udp_mc</code></li>
 <li>Run <code>sh run.sh</code></li>
 </ol>
-
 <p>Design information can be found at pubsub_admin_udp_mc/README.md</p>
-
 <h3 id="running-psa-zmq">Running PSA ZMQ</h3>
-
 <p>For ZeroMQ without encryption, skip the steps 1-12 below</p>
-
 <ol>
 <li>Run <code>touch ~/pubsub.keys</code></li>
 <li>Run <code>echo &quot;aes_key:{AES_KEY here}&quot; &gt;&gt; ~/pubsub.keys</code>. Note that AES_KEY is just a sequence of random bytes. To generate such a key, you can use the command <code>cat /dev/urandom | hexdump -v -e '/1 &quot;%02X&quot;' | head -c 32</code> (this will take out of /dev/urandom 16 bytes, thus a 128bit key)</li>
@@ -170,11 +168,9 @@ For low-level communication, UDP and ZMQ is used.</p>
 <li>Encrypt the private key file using <code>pubsub/keygen/ed_file ~/pubsub.keys pub_&lt;topic_name&gt;.key pub_&lt;topic&gt;.key.enc</code></li>
 <li>Store the keys in the pubsub/examples/keys/ directory, as described in the pubsub/examples/keys/README.</li>
 <li>Build project to include these keys (check the CMakeLists.txt files to be sure that the keys are included in the bundles)</li>
-<li>Add to the config.properties the property SECURE_TOPICS=<list_of_secure_topics></li>
+<li>Add to the config.properties the property SECURE_TOPICS=&lt;list_of_secure_topics&gt;</li>
 </ol>
-
 <p>For ZeroMQ without encryption, start here</p>
-
 <ol>
 <li>Run <code>etcd</code></li>
 <li>Open second terminal on pubsub root</li>
diff --git a/content/docs/celix/pubsub/examples/keys/README.html b/content/docs/2.1.0/celix/pubsub/examples/keys/README.html
similarity index 80%
copy from content/docs/celix/pubsub/examples/keys/README.html
copy to content/docs/2.1.0/celix/pubsub/examples/keys/README.html
index 83ca946..015025b 100644
--- a/content/docs/celix/pubsub/examples/keys/README.html
+++ b/content/docs/2.1.0/celix/pubsub/examples/keys/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Pubsub Keys / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,9 +98,16 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/pubsub/examples/keys/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
+
+                    
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
                     
 	<!--
@@ -110,25 +126,23 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <p>Store the AES key for encrypting and decrypting the encoded secret keys safe in a file!
 Default file is <code>/etc/pubsub.keys</code> with the following format:</p>
-
 <pre><code>aes_key:{32 character AES key here}
 aes_iv:{16 character AES iv here}
-</code></pre>
-
-<p>Use the $PROJECT_BUILD/pubsub/keygen/makecert for generating keypairs
+</code></pre><p>Use the $PROJECT_BUILD/pubsub/keygen/makecert for generating keypairs
 Use the $PROJECT_BUILD/pubsub/keygen/ed_file for encrypting and decrypting private keys</p>
-
-<p>Public keys need to be stored in the &lsquo;public&rsquo; folder having the following format:
-- pub<em>{topic}.pub
-- sub</em>{topic}.pub</p>
-
-<p>Secret keys need to be stored in the &lsquo;private&rsquo; folder having the following format:
-- pub<em>{topic}.key.enc
-- sub</em>{topic}.key.enc
-These files need to be encrypted using the &lsquo;ed_file&rsquo; executable.</p>
+<p>Public keys need to be stored in the &lsquo;public&rsquo; folder having the following format:</p>
+<ul>
+<li>pub_{topic}.pub</li>
+<li>sub_{topic}.pub</li>
+</ul>
+<p>Secret keys need to be stored in the &lsquo;private&rsquo; folder having the following format:</p>
+<ul>
+<li>pub_{topic}.key.enc</li>
+<li>sub_{topic}.key.enc
+These files need to be encrypted using the &lsquo;ed_file&rsquo; executable.</li>
+</ul>
 
 
                 </div>
diff --git a/content/docs/celix/pubsub/pubsub_admin_udp_mc/README.html b/content/docs/2.1.0/celix/pubsub/pubsub_admin_udp_mc/README.html
similarity index 87%
copy from content/docs/celix/pubsub/pubsub_admin_udp_mc/README.html
copy to content/docs/2.1.0/celix/pubsub/pubsub_admin_udp_mc/README.html
index ce5d66d..d9cc14f 100644
--- a/content/docs/celix/pubsub/pubsub_admin_udp_mc/README.html
+++ b/content/docs/2.1.0/celix/pubsub/pubsub_admin_udp_mc/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>PSA UDP Multicast / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/pubsub/pubsub_admin_udp_mc/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,67 +126,45 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="pubsub-admin-udp-multicast">PUBSUB-Admin UDP Multicast</h1>
-
-<hr />
-
+<hr>
 <h2 id="description">Description</h2>
-
 <p>This description is particular for the UDP-Multicast PUB-SUB.</p>
-
-<p>The UDP multicast pubsub admin is used to transfer user data transparent via UDP multicast. UDP packets can contain approximately<br />
-64kB . To overcome this limit the admin has a protocol on top of UDP which fragments the data to be send and these<br />
+<p>The UDP multicast pubsub admin is used to transfer user data transparent via UDP multicast. UDP packets can contain approximately<br>
+64kB . To overcome this limit the admin has a protocol on top of UDP which fragments the data to be send and these<br>
 fragments are reassembled at the reception side.</p>
-
 <h3 id="ip-addresses">IP Addresses</h3>
-
 <p>To use UDP-multicast 2 IP adresses are needed:</p>
-
 <ol>
 <li>IP address which is bound to an (ethernet) interface</li>
 <li>The multicast address (in the range 224.X.X.X - 239.X.X.X)</li>
 </ol>
-
 <p>When the PubSubAdmin starts it determines the bound IP address. This is done in the order:</p>
-
 <ol>
 <li>The first IP number bound to the interface which is set by the &ldquo;PSA_INTERFACE&rdquo; property</li>
 <li>The interfaces are iterated and the first IP number found is used. (typically this is 127.0.0.1 (localhost)</li>
 </ol>
-
 <p>The  Multicass IP address is determined in the order:</p>
-
 <ol>
 <li>If the <code>PSA_IP</code> property is defined, this IP will be used as multicast.</li>
 <li>If the <code>PSA_MC_PREFIX</code> property, is defined, this property is used as the first 2 numbers of the multicast address extended with the last 2 numbers of the bound IP.</li>
 <li>If the <code>PSA_MC_PREFIX</code> property is not defined <code>224.100</code> is used.</li>
 </ol>
-
 <h3 id="discovery">Discovery</h3>
-
-<p>When a publisher request for a topic a TopicSender is created by a ServiceFactory. This TopicSender uses the multicast address as described above with a random chosen portnumber. The combination of the multicast-IP address with the portnumber and protocol(udp) is the endpoint.<br />
+<p>When a publisher request for a topic a TopicSender is created by a ServiceFactory. This TopicSender uses the multicast address as described above with a random chosen portnumber. The combination of the multicast-IP address with the portnumber and protocol(udp) is the endpoint.<br>
 This endpoint is published by the PubSubDiscovery within its topic in ETCD (i.e. udp://224.100.10.20:40123).</p>
-
 <p>A subscriber, interested in the topic, is informed by the the ToplogyManager that there is a new endpoint. The TopicReceiver at the subscriber side creates a listening socket based on this endpoint.</p>
-
 <p>Now a data-connection is created and data send by the publisher will be received by the subscriber.</p>
-
-<hr />
-
+<hr>
 <h2 id="properties">Properties</h2>
-
 <table border="1">
     <tr><th>Property</th><th>Description</th></tr>
     <tr><td>PSA_INTERFACE</td><td>Interface which has to be used for multicast communication</td></tr>
     <tr><td>PSA_IP</td><td>Multicast IP address used by the bundle</td></tr>
     <tr><td>PSA_MC_PREFIX</td><td>First 2 digits of the MC IP address </td></tr>
 </table>
-
-<hr />
-
+<hr>
 <h2 id="shortcomings">Shortcomings</h2>
-
 <ol>
 <li>Per topic a random portnr is used for creating an endpoint. It is theoretical possible that for 2 topic the same endpoint is created.</li>
 <li>For every message a 32 bit random message ID is generated to discriminate segments of different messages which could be sent at the same time. It is theoretically possible that there are 2 equal message ID&rsquo;s at the same time. But since the mesage ID is valid only during the transmission of a message (maximum some milliseconds with large messages) this is not very plausible.</li>
diff --git a/content/docs/celix/remote_services/README.html b/content/docs/2.1.0/celix/remote_services/README.html
similarity index 79%
copy from content/docs/celix/remote_services/README.html
copy to content/docs/2.1.0/celix/remote_services/README.html
index 16dbc54..190d7a5 100644
--- a/content/docs/celix/remote_services/README.html
+++ b/content/docs/2.1.0/celix/remote_services/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Remote Service Admin Service / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/remote_services/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,101 +126,129 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<p>Title: Apache Celix Remote Service Admin Service</p>
-
 <h2 id="introduction">Introduction</h2>
-
 <p>The Remote Service Admin Service subproject contains an adapted implementation of the OSGi Enterprise Remote Service Admin Service Specification. The subproject consists of three parts, each described in more detail in the following sections.</p>
-
 <h3 id="topology-manager">Topology Manager</h3>
-
 <p>The topology manager decides which services should be imported and exported according to a defined policy. Currently, only one policy is implemented in Celix, the <em>promiscuous</em> policy, which simply imports and exports all services.</p>
-
-<p>| <strong>Bundle</strong> | <code>topology_manager.zip</code> |
-|&ndash;|&ndash;|
-| <strong>Configuration</strong> | <em>None</em> |</p>
-
+<table>
+<thead>
+<tr>
+<th><strong>Bundle</strong></th>
+<th><code>topology_manager.zip</code></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><strong>Configuration</strong></td>
+<td><em>None</em></td>
+</tr>
+</tbody>
+</table>
 <h3 id="remote-service-admin">Remote Service Admin</h3>
-
 <p>The Remote Service Admin (RSA) provides the mechanisms to import and export services when instructed to do so by the Topology Manager.</p>
-
 <h4 id="endpoints-and-proxies">Endpoints and proxies</h4>
-
 <p>To delegate a <em>received</em> method call to the actual service implementation, the RSA uses an &ldquo;endpoint&rdquo; bundle, which has all the knowledge about the marshalling and unmarshalling of data for the service. This endpoint bundle is specific to the used RSA implementation, and as such cannot be reused between various RSA implementations.</p>
-
 <p>Invoking a <em>remote</em> method is done by using &ldquo;proxy&rdquo; bundles. Similar as to endpoints, proxy bundles encapsulate all knowledge to marshall and unmarshall data for a remote method call and as such can not be shared between RSA implementations.</p>
-
 <p>Both proxy and endpoint bundles are loaded on demand when a service is imported or exported by the RSA. As such, these bundles <strong>must</strong> not be added to the list of &ldquo;auto started&rdquo; bundles, but placed in a separate location. By default, <code>endpoints</code> is used as location for locating proxy and/or endpoint bundles.</p>
-
 <p>Note that since endpoints and proxies need to be created manually, one has full control about the handling of specifics of marshalling and unmarshalling data and dealing with exceptions.</p>
-
-<h4 id="http-json">HTTP/JSON</h4>
-
+<h4 id="httpjson">HTTP/JSON</h4>
 <p>Provides a RSA implementation that uses JSON to marshal requests and HTTP as transport mechanism for its remote method invocation. It is compatible with the <em>Remote Service Admin HTTP</em> implementation provided by <a href="https://amdatu.atlassian.net/wiki/display/AMDATUDEV/Amdatu+Remote">Amdatu Remote</a>.</p>
-
-<p>| <strong>Bundle</strong> | <code>remote_service_admin_http.zip</code> |
-|&ndash;|&ndash;|
-| <strong>Configuration</strong> | <code>RSA_PORT</code>: defines the port on which the HTTP server should listen for incoming requests. Defaults to port <code>8888</code>; |
-| | <code>ENDPOINTS</code>: defines the location in which service endpoints and/or proxies can be found. Defaults to <code>endpoints</code> in the current working directory |</p>
-
+<table>
+<thead>
+<tr>
+<th><strong>Bundle</strong></th>
+<th><code>remote_service_admin_http.zip</code></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><strong>Configuration</strong></td>
+<td><code>RSA_PORT</code>: defines the port on which the HTTP server should listen for incoming requests. Defaults to port <code>8888</code>;</td>
+</tr>
+<tr>
+<td></td>
+<td><code>ENDPOINTS</code>: defines the location in which service endpoints and/or proxies can be found. Defaults to <code>endpoints</code> in the current working directory</td>
+</tr>
+</tbody>
+</table>
 <h4 id="shared-memory-shm">Shared memory (SHM)</h4>
-
 <p>Provides a RSA implementation that uses shared memory for its remote method invocation. Note that this only works when all remote services are located on the same machine.</p>
-
-<p>| <strong>Bundle</strong> | <code>remote_service_admin_shm.zip</code> |
-|&ndash;|&ndash;|
-| <strong>Configuration</strong> | <code>ENDPOINTS</code>: defines the location in which service endpoints and/or proxies can be found. Defaults to <code>endpoints</code> in the current working directory |</p>
-
+<table>
+<thead>
+<tr>
+<th><strong>Bundle</strong></th>
+<th><code>remote_service_admin_shm.zip</code></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><strong>Configuration</strong></td>
+<td><code>ENDPOINTS</code>: defines the location in which service endpoints and/or proxies can be found. Defaults to <code>endpoints</code> in the current working directory</td>
+</tr>
+</tbody>
+</table>
 <h3 id="discovery">Discovery</h3>
-
 <p>Actively discovers the presence of remote exported services and provides information about local exported services, as given by the Topology Manager, to others.</p>
-
 <h4 id="shared-memory-shm-based-discovery">Shared memory (SHM) based discovery</h4>
-
 <p>Provides service discovery for the RSA SHM implementation.</p>
-
-<p>| <strong>Bundle</strong> | <code>discovery_shm.zip</code> |
-|&ndash;|&ndash;|
-| <strong>Configuration</strong> | <em>None</em> |</p>
-
+<table>
+<thead>
+<tr>
+<th><strong>Bundle</strong></th>
+<th><code>discovery_shm.zip</code></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><strong>Configuration</strong></td>
+<td><em>None</em></td>
+</tr>
+</tbody>
+</table>
 <h4 id="configured-discovery">Configured discovery</h4>
-
 <p>Provides a service discovery with preconfigured discovery endpoints, allowing a static mesh of nodes for remote service invocation to be created. The configured discovery bundle in Celix is compatible with the configured discovery implementation provided by <a href="https://amdatu.atlassian.net/wiki/display/AMDATUDEV/Amdatu+Remote">Amdatu Remote</a>.</p>
-
-<p>| <strong>Bundle</strong> | <code>discovery_configured.zip</code> |
-|&ndash;|&ndash;|
-| <strong>Configuration</strong> | <code>DISCOVERY_CFG_POLL_ENDPOINTS</code>: defines a comma-separated list of discovery endpoints that should be used to query for remote services. Defaults to <code>http://localhost:9999/org.apache.celix.discovery.configured</code>; |
-| | <code>DISCOVERY_CFG_POLL_INTERVAL</code>: defines the interval (in seconds) in which the discovery endpoints should be polled. Defaults to <code>10</code> seconds. |
-| | <code>DISCOVERY_CFG_SERVER_PORT</code>: defines the port on which the HTTP server should listen for incoming requests from other configured discovery endpoints. Defaults to port <code>9999</code>; |
-| | <code>DISCOVERY_CFG_SERVER_PATH</code>: defines the path on which the HTTP server should accept requests from other configured discovery endpoints. Defaults to <code>/org.apache.celix.discovery.configured</code>. |</p>
-
+<table>
+<thead>
+<tr>
+<th><strong>Bundle</strong></th>
+<th><code>discovery_configured.zip</code></th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td><strong>Configuration</strong></td>
+<td><code>DISCOVERY_CFG_POLL_ENDPOINTS</code>: defines a comma-separated list of discovery endpoints that should be used to query for remote services. Defaults to <code>http://localhost:9999/org.apache.celix.discovery.configured</code>;</td>
+</tr>
+<tr>
+<td></td>
+<td><code>DISCOVERY_CFG_POLL_INTERVAL</code>: defines the interval (in seconds) in which the discovery endpoints should be polled. Defaults to <code>10</code> seconds.</td>
+</tr>
+<tr>
+<td></td>
+<td><code>DISCOVERY_CFG_SERVER_PORT</code>: defines the port on which the HTTP server should listen for incoming requests from other configured discovery endpoints. Defaults to port <code>9999</code>;</td>
+</tr>
+<tr>
+<td></td>
+<td><code>DISCOVERY_CFG_SERVER_PATH</code>: defines the path on which the HTTP server should accept requests from other configured discovery endpoints. Defaults to <code>/org.apache.celix.discovery.configured</code>.</td>
+</tr>
+</tbody>
+</table>
 <p>Note that for configured discovery, the &ldquo;Endpoint Description Extender&rdquo; XML format defined in the OSGi Remote Service Admin specification (section 122.8 of OSGi Enterprise 5.0.0) is used.</p>
-
 <p>See <a href="discovery_etcd/README.html">etcd discovery</a></p>
-
 <h4 id="etcd-discovery">etcd discovery</h4>
-
 <p>| <strong>Bundle</strong> | <code>discovery_etcd.zip</code> |</p>
-
 <p>Provides a service discovery using etcd distributd key/value store.</p>
-
 <p>See <a href="discovery_etcd/README.html">etcd discovery</a></p>
-
 <h2 id="usage">Usage</h2>
-
 <p>To develop for the Remote Service Admin implementation of Celix, one needs the following:</p>
-
 <ol>
-<li>A service <strong>interface</strong>, describes the actual service and methods<sup class="footnote-ref" id="fnref:1"><a href="#fn:1">1</a></sup> that can be called. The service interface is needed at development time to allow a consistent definition;</li>
+<li>A service <strong>interface</strong>, describes the actual service and methods<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> that can be called. The service interface is needed at development time to allow a consistent definition;</li>
 <li>A service <strong>implementation</strong>, when exporting it as remote service. A service endpoint is needed to delegate remote requests to your service implementation;</li>
 <li>A service <strong>endpoint</strong>, which will be installed by Celix when exporting a local service. The endpoint is responsible for calling the actual Celix service. Endpoint bundles are not needed when <em>only</em> importing services in Celix;</li>
 <li>A service <strong>proxy</strong>, which will be installed by Celix when importing a remote service. The proxy is responsible for marshalling and unmarshalling method invocations. Proxy bundles are not needed when <em>only</em> exposing services from Celix;</li>
 <li>A service <strong>client</strong> or user, which invokes methods on the local or remote service. The client is oblivious to the fact whether the service is running locally or remote.</li>
 </ol>
-
 <p>The Celix source repository provides a simple calculator example that shows all of the described parts:</p>
-
 <ol>
 <li><a href="http://svn.apache.org/repos/asf/celix/trunk/remote_services/calculator_service/public/include/calculator_service.h">The calculator service interface</a>, providing three methods: one for adding two numbers, one for subtracting two numbers, and lastly, a method that calculates the square root of a number;</li>
 <li><a href="http://svn.apache.org/repos/asf/celix/trunk/remote_services/calculator_service/private/src/calculator_impl.c">A calculator service implementation</a> that simply implements the three previously described functions. To mark this service as &ldquo;remote service&rdquo;, you need to add the <code>service.exported.interfaces</code> service property to its service registration. This way, the RSA implementation can expose it as remote service to others;</li>
@@ -214,9 +256,7 @@ limitations under the License.
 <li><a href="http://svn.apache.org/repos/asf/celix/trunk/remote_services/calculator_proxy/private/src/calculator_proxy_impl.c">A service proxy (factory)</a>, called by the service client when it wants to invoke a method on a remoted service. The service proxy should be registered as <code>remote_proxy_factory</code> service along with the <code>proxy.interface</code> service property denoting which service interface the service proxy is capable of handling;</li>
 <li><a href="http://svn.apache.org/repos/asf/celix/trunk/remote_services/calculator_shell/private/src/add_command.c">A service client</a>, that exposes the three calculator methods to as Celix shell commands. The implementation simply retrieves the calculator service as it would do with any other Celix service.</li>
 </ol>
-
 <p>If you have access to the Celix source repository, you can run the calculator example using various discovery implementations by invoking the <code>deploy</code> target. You can find the example deployments in the <code>CELIX_BUILD/deploy</code> directory. For example, to run the calculator example using the configured discovery mechanism, you should open two terminals. In the first terminal, type:</p>
-
 <pre><code>remote-service-cfg$ export RSA_PORT=18888
 remote-service-cfg$ sh run.sh
 ...
@@ -224,9 +264,7 @@ RSA: Export services (org.apache.celix.calc.api.Calculator)
 ...
 -&gt; _
 </code></pre>
-
 <p>In the second terminal, type:</p>
-
 <pre><code>remote-service-cfg-client$ export RSA_PORT=28888
 remote-service-cfg-client$ sh run.sh
 ...
@@ -234,52 +272,38 @@ RSA: Import service org.apache.celix.calc.api.Calculator
 ...
 -&gt; _
 </code></pre>
-
 <p>Now, if all went well, the client (second terminal) has three new shell commands, <code>add</code>, <code>sub</code> and <code>sqrt</code>, which you can use to invoke the calculator service:</p>
-
 <pre><code>-&gt; add 3 5
 CALCULATOR_SHELL: Add: 3.000000 + 5.000000 = 8.000000
 -&gt; _
 </code></pre>
-
 <p>On the server side (first terminal), you can follow each invocation as well:</p>
-
 <pre><code>CALCULATOR_ENDPOINT: Handle request &quot;add(DD)D&quot; with data &quot;{&quot;m&quot;: &quot;add(DD)D&quot;, &quot;a&quot;: [3.0, 5.0]}&quot;
 CALCULATOR: Add: 3.000000 + 5.000000 = 8.000000
 </code></pre>
-
 <p>Note that the <code>RSA_PORT</code> property needs to be unique for at least the client in order to communicate correctly when running the examples on the same machine.</p>
-
 <h2 id="building">Building</h2>
-
 <p>To build the Remote Service Admin Service the CMake build option &ldquo;<code>BUILD_REMOTE_SERVICE_ADMIN</code>&rdquo; has to be enabled.</p>
-
 <h2 id="dependencies">Dependencies</h2>
-
 <p>The Remote Service Admin Service depends on the following subprojects:</p>
-
 <ul>
 <li>Framework</li>
 <li>Utils</li>
 </ul>
-
 <p>Also the following libraries are required for building and/or using the Remote Service Admin Service subproject:</p>
-
 <ul>
 <li>Jansson (build and runtime)</li>
 <li>cURL (build and runtime)</li>
 </ul>
-
 <h2 id="notes">Notes</h2>
-<div class="footnotes">
-
-<hr />
-
+<section class="footnotes" role="doc-endnotes">
+<hr>
 <ol>
-<li id="fn:1">Although C does not use the term &ldquo;method&rdquo;, we use this term to align with the terminology used in the RSA specification.
- <a class="footnote-return" href="#fnref:1"><sup>[return]</sup></a></li>
+<li id="fn:1" role="doc-endnote">
+<p>Although C does not use the term &ldquo;method&rdquo;, we use this term to align with the terminology used in the RSA specification. <a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
+</li>
 </ol>
-</div>
+</section>
 
 
                 </div>
diff --git a/content/docs/celix/remote_services/discovery_etcd/README.html b/content/docs/2.1.0/celix/remote_services/discovery_etcd/README.html
similarity index 83%
copy from content/docs/celix/remote_services/discovery_etcd/README.html
copy to content/docs/2.1.0/celix/remote_services/discovery_etcd/README.html
index 24a881d..ad999d3 100644
--- a/content/docs/celix/remote_services/discovery_etcd/README.html
+++ b/content/docs/2.1.0/celix/remote_services/discovery_etcd/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Discovery ETCD / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/remote_services/discovery_etcd/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,21 +126,15 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="discovery-etcd">Discovery ETCD</h2>
-
 <p>The Celix Discovery ETCD bundles realizes OSGi services discovery based on <a href="https://github.com/coreos/etcd">etcd</a>.</p>
-
 <h6 id="properties">Properties</h6>
-
 <pre><code>DISCOVERY_ETCD_ROOT_PATH             used path (default: discovery)
 DEFAULT_ETCD_SERVER_IP               ip address of the etcd server (default: 127.0.0.1)
 DEFAULT_ETCD_SERVER_PORT             port of the etcd server  (default: 2379)
 DEFAULT_ETCD_TTL                     time-to-live for etcd entries in seconds (default: 30)
 </code></pre>
-
 <h6 id="cmake-option">CMake option</h6>
-
 <pre><code>BUILD_RSA_DISCOVERY_ETCD=ON
 </code></pre>
 
diff --git a/content/docs/celix/remote_services/remote_service_admin/README.html b/content/docs/2.1.0/celix/remote_services/remote_service_admin/README.html
similarity index 82%
copy from content/docs/celix/remote_services/remote_service_admin/README.html
copy to content/docs/2.1.0/celix/remote_services/remote_service_admin/README.html
index 53afc9f..d130177 100644
--- a/content/docs/celix/remote_services/remote_service_admin/README.html
+++ b/content/docs/2.1.0/celix/remote_services/remote_service_admin/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Remote Service Admin / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/remote_services/remote_service_admin/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,18 +126,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="remote-service-admin">Remote Service Admin</h2>
-
 <p>The Remote Service Admin (RSA) provides the mechanisms to import and export services when instructed to do so by the Topology Manager.</p>
-
 <p>To delegate method calls to the actual service implementation, the RSA_SHM and the RSA_HTTP are using &ldquo;endpoint/proxy&rdquo; bundles, which has all the knowledge about the marshalling and unmarshalling of data for the service. The RSA_DFI implementation combines a <a href="https://en.wikipedia.org/wiki/Foreign_function_interface">foreign function interface</a> technique together with manualy created descriptors.</p>
-
 <p>Note that this folder contains code commonly used by the RSA implementations and therefore does not include any CMAKE configuration.</p>
-
 <h6 id="properties">Properties</h6>
-
-<pre><code>ENDPOINTS                defines the relative directory where endpoints and proxys can be found (default: endpoints)
+<pre><code>ENDPOINTS				 defines the relative directory where endpoints and proxys can be found (default: endpoints)
 CELIX_FRAMEWORK_EXTENDER_PATH  Used in RSA_DFI only. Can be used to define a path to use as an extender path point for the framework bundle. For normal bundles the bundle cache is used. 
 </code></pre>
 
diff --git a/content/docs/celix/remote_services/topology_manager/README.html b/content/docs/2.1.0/celix/remote_services/topology_manager/README.html
similarity index 83%
copy from content/docs/celix/remote_services/topology_manager/README.html
copy to content/docs/2.1.0/celix/remote_services/topology_manager/README.html
index 0ef9ab0..42393be 100644
--- a/content/docs/celix/remote_services/topology_manager/README.html
+++ b/content/docs/2.1.0/celix/remote_services/topology_manager/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Topology Manager / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/remote_services/topology_manager/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,13 +126,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="topology-manager">Topology Manager</h2>
-
 <p>The Topology Manager decides which services should be imported and exported according to a defined policy. Currently, only one policy is implemented in Celix, the <em>promiscuous</em> policy, which simply imports and exports all services. Note that the Topology Manager is essential to use remote services.</p>
-
 <h6 id="cmake-option">CMake option</h6>
-
 <pre><code>BUILD_RSA_TOPOLOGY_MANAGER=ON
 </code></pre>
 
diff --git a/content/docs/celix/remote_shell/README.html b/content/docs/2.1.0/celix/remote_shell/README.html
similarity index 83%
copy from content/docs/celix/remote_shell/README.html
copy to content/docs/2.1.0/celix/remote_shell/README.html
index 8e304e1..02ec77e 100644
--- a/content/docs/celix/remote_shell/README.html
+++ b/content/docs/2.1.0/celix/remote_shell/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Remote Shell / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/remote_shell/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,19 +126,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="remote-shell">Remote Shell</h2>
-
 <p>The Celix Remote Shell implements a telnet interface for the Celix Shell.</p>
-
 <h6 id="properties">Properties</h6>
-
 <pre><code>remote.shell.telnet.port              used port (default: 6666)
 remote.shell.telnet.maxconn           amount of concurrent connections (default: 2)
 </code></pre>
-
 <h6 id="cmake-option">CMake option</h6>
-
 <pre><code>BUILD_REMOTE_SHELL=ON
 </code></pre>
 
diff --git a/content/docs/celix/shell/README.html b/content/docs/2.1.0/celix/shell/README.html
similarity index 84%
copy from content/docs/celix/shell/README.html
copy to content/docs/2.1.0/celix/shell/README.html
index 3ab74a0..dc8bcc4 100644
--- a/content/docs/celix/shell/README.html
+++ b/content/docs/2.1.0/celix/shell/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Shell / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/shell/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,13 +126,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="shell">Shell</h1>
-
 <p>The Celix Shell provides a service interface which can be used to interact with the Celix framework. Note that it does not offer a user interface. This modular approach enables having multiple frontends, e.g. textual or graphical.</p>
-
 <p>While the shell can be extended with additional commands by other bundles, it already offers some built in commands:</p>
-
 <pre><code>lb            list bundles
 install       install additional bundle
 uninstall     uninstall bundles
@@ -132,18 +142,13 @@ inspect       inspect service and components
 
 log           print log
 </code></pre>
-
 <p>Further information about a command can be retrieved by using <code>help</code> combined with the command.</p>
-
 <h2 id="shell-config-options">Shell Config Options</h2>
-
 <ul>
 <li>SHELL_USE_ANSI_COLORS - Wether shell command are allowed to use
 ANSI colors when printing info. default is true.</li>
 </ul>
-
 <h2 id="cmake-options">CMake options</h2>
-
 <pre><code>BUILD_SHELL=ON
 </code></pre>
 
diff --git a/content/docs/celix/shell_tui/README.html b/content/docs/2.1.0/celix/shell_tui/README.html
similarity index 83%
copy from content/docs/celix/shell_tui/README.html
copy to content/docs/2.1.0/celix/shell_tui/README.html
index b7f8aad..bf7ef9e 100644
--- a/content/docs/celix/shell_tui/README.html
+++ b/content/docs/2.1.0/celix/shell_tui/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Shell TUI / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/shell_tui/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,18 +126,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h1 id="shell-tui">Shell TUI</h1>
-
 <p>The Celix Shell TUI implements a textual user interface for the Celix Shell.</p>
-
 <h2 id="cmake-option">CMake option</h2>
-
 <pre><code>BUILD_SHELL_TUI=ON
 </code></pre>
-
 <h2 id="config-options">Config options</h2>
-
 <ul>
 <li>SHELL_USE_ANSI_CONTROL_SEQUENCES - Wether to use ANSI control
 sequences to support backspace, left, up, etc key commands in the
diff --git a/content/docs/celix/utils/README.html b/content/docs/2.1.0/celix/utils/README.html
similarity index 82%
copy from content/docs/celix/utils/README.html
copy to content/docs/2.1.0/celix/utils/README.html
index 17fa8fb..b20ceb4 100644
--- a/content/docs/celix/utils/README.html
+++ b/content/docs/2.1.0/celix/utils/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Utils / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,19 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/utils/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,20 +126,15 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="utils">Utils</h2>
-
 <p>Celix Utils contains several useful containers/lists implementation used with the Celix project. The following types are available:</p>
-
 <pre><code>Array List
 Celix Thread Container
 Hash Map
 Linked List
 Thread Pool
 </code></pre>
-
 <h6 id="cmake-option">CMake option</h6>
-
 <pre><code>BUILD_UTILS=ON
 </code></pre>
 
diff --git a/content/docs/celix/utils/docs/thpool/Design.html b/content/docs/2.1.0/celix/utils/docs/thpool/Design.html
similarity index 84%
copy from content/docs/celix/utils/docs/thpool/Design.html
copy to content/docs/2.1.0/celix/utils/docs/thpool/Design.html
index 9f262e9..8887ff5 100644
--- a/content/docs/celix/utils/docs/thpool/Design.html
+++ b/content/docs/2.1.0/celix/utils/docs/thpool/Design.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>Design.md / Apache Celix</title>
+    <title>C Thread Pool Design / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,19 +98,23 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/utils/docs/thpool/Design.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
-
                     
-	
+                    
+                        
+                        
+                    
 
-<h2 id="high-level">High level</h2>
+                    
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
+                    
+	<h2 id="high-level">High level</h2>
 <pre><code>Description: Library providing a threading pool where you can add work on the fly. The number
              of threads in the pool is adjustable when creating the pool. In most cases
              this should equal the number of threads supported by your cpu.
-
+         
              For an example on how to use the threadpool, check the main.c file or just read
              the documentation found in the README.md file.
 
@@ -144,9 +157,7 @@
    |  next--------------&gt;|           |
    |___________|         |           |..
 </code></pre>
-
 <h2 id="synchronisation">Synchronisation</h2>
-
 <p><em>Mutexes</em> and <em>binary semaphores</em> are the main tools to achieve synchronisation between threads.</p>
 
 
diff --git a/content/docs/celix/utils/docs/thpool/FAQ.html b/content/docs/2.1.0/celix/utils/docs/thpool/FAQ.html
similarity index 83%
copy from content/docs/celix/utils/docs/thpool/FAQ.html
copy to content/docs/2.1.0/celix/utils/docs/thpool/FAQ.html
index 4f5685b..c6c42f9 100644
--- a/content/docs/celix/utils/docs/thpool/FAQ.html
+++ b/content/docs/2.1.0/celix/utils/docs/thpool/FAQ.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>FAQ.md / Apache Celix</title>
+    <title>C Thread Pool FAQ / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,46 +98,42 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/utils/docs/thpool/FAQ.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
-
                     
-	
+                    
+                        
+                        
+                    
 
-<h3 id="why-isn-t-pthread-exit-used-to-exit-a-thread">Why isn&rsquo;t pthread_exit() used to exit a thread?</h3>
+                    
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
+                    
+	<h3 id="why-isnt-pthread_exit-used-to-exit-a-thread">Why isn&rsquo;t pthread_exit() used to exit a thread?</h3>
 <p><code>thread_do</code> used to use pthread_exit(). However that resulted in
 hard times of testing for memory leaks. The reason is that on pthread_exit()
 not all memory is freed bt pthread (probably for future threads or false
 belief that the application is terminating). For these reasons a simple return
 is used.</p>
-
 <p>Interestingly using <code>pthread_exit()</code> results in much more memory being allocated.</p>
-
-<h3 id="why-do-you-use-sleep-after-calling-thpool-destroy">Why do you use sleep() after calling thpool_destroy()?</h3>
-
+<h3 id="why-do-you-use-sleep-after-calling-thpool_destroy">Why do you use sleep() after calling thpool_destroy()?</h3>
 <p>This is needed only in the tests. The reason is that if you call thpool_destroy
 and then exit immedietely, maybe the program will exit before all the threads
 had the time to deallocate. In that way it is impossible to check for memory
 leaks.</p>
-
 <p>In production you don&rsquo;t have to worry about this since if you call exit,
 immedietely after you destroyied the pool, the threads will be freed
 anyway by the OS. If you eitherway destroy the pool in the middle of your
 program it doesn&rsquo;t matter again since the program will not exit immediately
 and thus threads will have more than enough time to terminate.</p>
-
 <h3 id="why-does-wait-use-all-my-cpu">Why does wait() use all my CPU?</h3>
-
 <p>Normally <code>wait()</code> will spike CPU usage to full when called. This is normal as long as it doesn&rsquo;t last for more than 1 second. The reason this happens is that <code>wait()</code> goes through various phases of polling (what is called smart polling).</p>
-
 <ul>
 <li>Initially there is no interval between polling and hence the 100% use of your CPU.</li>
 <li>After that the polling interval grows exponentially.</li>
 <li>Finally after x seconds, if there is still work, polling falls back to a very big interval.</li>
 </ul>
-
 <p>The reason <code>wait()</code> works in this way, is that the function is mostly used when someone wants to wait for some calculation to finish. So if the calculation is assumed to take a long time then we don&rsquo;t want to poll too often. Still we want to poll fast in case the calculation is a simple one. To solve these two problems, this seemingly awkward behaviour is present.</p>
 
 
diff --git a/content/docs/celix/utils/docs/thpool/README.html b/content/docs/2.1.0/celix/utils/docs/thpool/README.html
similarity index 82%
copy from content/docs/celix/utils/docs/thpool/README.html
copy to content/docs/2.1.0/celix/utils/docs/thpool/README.html
index d4456a0..b1f104b 100644
--- a/content/docs/celix/utils/docs/thpool/README.html
+++ b/content/docs/2.1.0/celix/utils/docs/thpool/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>C Thread Pool / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,69 +98,56 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/utils/docs/thpool/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
-
                     
-	
+                    
+                        
+                        
+                    
 
-<p><img src="http://178.62.170.124:3000/pithikos/c-thread-pool/badge/?branch=master" alt="Build status" /></p>
+                    
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
+                    
+	<p><img src="http://178.62.170.124:3000/pithikos/c-thread-pool/badge/?branch=master" alt="Build status"></p>
 <h1 id="c-thread-pool">C Thread Pool</h1>
-
 <p>This is a minimal but fully functional threadpool implementation.</p>
-
 <ul>
 <li>ANCI C and POSIX compliant</li>
 <li>Number of threads can be chosen on initialization</li>
 <li>Minimal but powerful interface</li>
 <li>Full documentation</li>
 </ul>
-
 <p>The threadpool is under MIT license. Notice that this project took a considerable amount of work and sacrifice of my free time and the reason I give it for free (even for commercial use) is so when you become rich and wealthy you don&rsquo;t forget about us open-source creatures of the night. Cheers!</p>
-
 <h2 id="v2-changes">v2 Changes</h2>
-
 <p>This is an updated and heavily refactored version of my original threadpool. The main things taken into consideration in this new version are:</p>
-
 <ul>
 <li>Synchronisation control from the user (pause/resume/wait)</li>
 <li>Thorough testing for memory leaks and race conditions</li>
 <li>Cleaner and more opaque API</li>
 <li>Smart polling - polling interval changes on-the-fly</li>
 </ul>
-
 <h2 id="run-an-example">Run an example</h2>
-
 <p>The library is not precompiled so you have to compile it with your project. The thread pool
 uses POSIX threads so if you compile with gcc on Linux you have to use the flag <code>-pthread</code> like this:</p>
-
 <pre><code>gcc example.c thpool.c -D THPOOL_DEBUG -pthread -o example
 </code></pre>
-
 <p>Then run the executable like this:</p>
-
 <pre><code>./example
 </code></pre>
-
 <h2 id="basic-usage">Basic usage</h2>
-
 <ol>
 <li>Include the header in your source file: <code>#include &quot;thpool.h&quot;</code></li>
 <li>Create a thread pool with number of threads you want: <code>threadpool thpool = thpool_init(4);</code></li>
 <li>Add work to the pool: <code>thpool_add_work(thpool, (void*)function_p, (void*)arg_p);</code></li>
 </ol>
-
 <p>The workers(threads) will start their work automatically as fast as there is new work
 in the pool. If you want to wait for all added work to be finished before continuing
 you can use <code>thpool_wait(thpool);</code>. If you want to destroy the pool you can use
 <code>thpool_destroy(thpool);</code>.</p>
-
 <h2 id="api">API</h2>
-
 <p>For a deeper look into the documentation check in the <a href="https://github.com/Pithikos/C-Thread-Pool/blob/master/thpool.h">thpool.h</a> file. Below is a fast practical overview.</p>
-
 <table>
 <thead>
 <tr>
@@ -159,35 +155,29 @@ you can use <code>thpool_wait(thpool);</code>. If you want to destroy the pool y
 <th>Description</th>
 </tr>
 </thead>
-
 <tbody>
 <tr>
-<td><strong><em>thpool_init(4)</em></strong></td>
+<td><em><strong>thpool_init(4)</strong></em></td>
 <td>Will return a new threadpool with <code>4</code> threads.</td>
 </tr>
-
 <tr>
-<td><strong><em>thpool_add_work(thpool, (void&#42;)function_p, (void&#42;)arg_p)</em></strong></td>
+<td><em><strong>thpool_add_work(thpool, (void*)function_p, (void*)arg_p)</strong></em></td>
 <td>Will add new work to the pool. Work is simply a function. You can pass a single argument to the function if you wish. If not, <code>NULL</code> should be passed.</td>
 </tr>
-
 <tr>
-<td><strong><em>thpool_wait(thpool)</em></strong></td>
+<td><em><strong>thpool_wait(thpool)</strong></em></td>
 <td>Will wait for all jobs (both in queue and currently running) to finish.</td>
 </tr>
-
 <tr>
-<td><strong><em>thpool_destroy(thpool)</em></strong></td>
+<td><em><strong>thpool_destroy(thpool)</strong></em></td>
 <td>This will destroy the threadpool. If jobs are currently being executed, then it will wait for them to finish.</td>
 </tr>
-
 <tr>
-<td><strong><em>thpool_pause(thpool)</em></strong></td>
+<td><em><strong>thpool_pause(thpool)</strong></em></td>
 <td>All threads in the threadpool will pause no matter if they are idle or executing work.</td>
 </tr>
-
 <tr>
-<td><strong><em>thpool_resume(thpool)</em></strong></td>
+<td><em><strong>thpool_resume(thpool)</strong></em></td>
 <td>If the threadpool is paused, then all threads will resume from where they were.</td>
 </tr>
 </tbody>
diff --git a/content/docs/celix/utils/public/include/memstream/README.html b/content/docs/2.1.0/celix/utils/public/include/memstream/README.html
similarity index 79%
copy from content/docs/celix/utils/public/include/memstream/README.html
copy to content/docs/2.1.0/celix/utils/public/include/memstream/README.html
index ec89b02..822fe7b 100644
--- a/content/docs/celix/utils/public/include/memstream/README.html
+++ b/content/docs/2.1.0/celix/utils/public/include/memstream/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>memstream / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,60 +98,54 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/utils/public/include/memstream/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
-
                     
-	
+                    
+                        
+                        
+                    
 
-<h1 id="fmemopen-for-mac-os-and-ios">fmemopen for Mac OS and iOS</h1>
+                    
+                        
+                        <a href="/docs/2.1.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
+                    
+	<h1 id="fmemopen-for-mac-os-and-ios">fmemopen for Mac OS and iOS</h1>
 <p>Originally ported from <a href="https://github.com/ingenuitas/python-tesseract/blob/master/fmemopen.c">ingenuitas python-tesseract</a>. Ported by Jeff Verkoeyen under the Apache 2.0 License.</p>
-
 <p>From the fmemopen man page:</p>
-
 <blockquote>
 <p>FILE *fmemopen(void *buf, size_t size, const char *mode);</p>
-
 <p>The fmemopen() function opens a stream that permits the access specified by mode. The stream
 allows I/O to be performed on the string or memory buffer pointed to by buf. This buffer must be
 at least size bytes long.</p>
 </blockquote>
-
 <p>Alas, this method does not exist on BSD operating systems (specifically Mac OS X and iOS). It is
 possible to recreate this functionality using a BSD-specific method called <code>funopen</code>.</p>
-
 <p>From the funopen man page:</p>
-
 <blockquote>
 <p>FILE * funopen(const void *cookie, int (*readfn)(void *, char *, int),
-               int (*writefn)(void *, const char *, int), fpos_t (*seekfn)(void *, fpos_t, int),
-               int (*closefn)(void *));</p>
-
-<p>The funopen() function associates a stream with up to four ``I/O functions&rdquo;.  Either readfn or
+int (*writefn)(void *, const char *, int), fpos_t (*seekfn)(void *, fpos_t, int),
+int (*closefn)(void *));</p>
+<p>The funopen() function associates a stream with up to four ``I/O functions&rsquo;'.  Either readfn or
 writefn must be specified; the others can be given as an appropriately-typed NULL pointer.  These
 I/O functions will be used to read, write, seek and close the new stream.</p>
 </blockquote>
-
 <p>fmemopen.c provides a simple implementation of fmemopen using funopen so that you can create FILE
 pointers to blocks of memory.</p>
-
 <h1 id="adding-it-to-your-project">Adding it to your Project</h1>
-
 <p>Drag fmemopen.h and fmemopen.c to your project and add them to your target. <code>#include &quot;fmemopen.h&quot;</code>
 wherever you need to use <code>fmemopen</code>.</p>
-
 <h1 id="examples">Examples</h1>
-<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-obj-c" data-lang="obj-c"><span style="color:#080">#import &#34;fmemopen.h&#34;
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-obj-c" data-lang="obj-c"><span style="color:#080">#</span><span style="color:#080">import &#34;fmemopen.h&#34;</span><span style="color:#080">
 </span><span style="color:#080"></span>
-NSString<span style="color:#666">*</span> string <span style="color:#666">=</span> <span style="color:#b44">@&#34;fmemopen in Objective-C&#34;</span>;
+NSString<span style="color:#666">*</span> string <span style="color:#666">=</span> <span style="color:#b44">@&#34;</span><span style="color:#b44">fmemopen in Objective-C</span><span style="color:#b44">&#34;</span>;
 <span style="color:#a2f;font-weight:bold">const</span> <span style="color:#0b0;font-weight:bold">char</span><span style="color:#666">*</span> cstr <span style="color:#666">=</span> [string UTF8String];
-FILE<span style="color:#666">*</span> file <span style="color:#666">=</span> fmemopen((<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span>)cstr, <span style="color:#a2f;font-weight:bold">sizeof</span>(<span style="color:#0b0;font-weight:bold">char</span>) <span style="color:#666">*</span> (string.length <span style="color:#666">+</span> <span style="color:#666">1</span>), <span style="color:#b44">&#34;r&#34;</span>);
+FILE<span style="color:#666">*</span> file <span style="color:#666">=</span> fmemopen((<span style="color:#0b0;font-weight:bold">void</span> <span style="color:#666">*</span>)cstr, <span style="color:#a2f;font-weight:bold">sizeof</span>(<span style="color:#0b0;font-weight:bold">char</span>) <span style="color:#666">*</span> (string.length <span style="color:#666">+</span> <span style="color:#666">1</span>), <span style="color:#b44"></span><span style="color:#b44">&#34;</span><span style= [...]
 
 <span style="color:#080;font-style:italic">// fread on file will now read the contents of the NSString
 </span><span style="color:#080;font-style:italic"></span>
-fclose(file);</code></pre></div>
+fclose(file);
+</code></pre></div>
 
                 </div>
             </div>
diff --git a/content/docs/docs.html b/content/docs/2.1.0/docs.html
similarity index 77%
copy from content/docs/docs.html
copy to content/docs/2.1.0/docs.html
index 0931c62..dc6e989 100644
--- a/content/docs/docs.html
+++ b/content/docs/2.1.0/docs.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>Documentation / Apache Celix</title>
+    <title>Documentation for v2.1.0 / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,31 +98,27 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                    <a class="edit-on-gh" href="https://github.com/apache/celix-site/edit/master/source/docs/docs.md" title="Edit this page on GitHub">Edit on GitHub</a>
-
                     
-	
-
-<h1 id="documentation">Documentation</h1>
+                        
+                        
+                    
 
+                    
+	<h1 id="documentation-for-celix-v210">Documentation for Celix v2.1.0</h1>
 <p>Get started with Celix by going through the appropriate content.</p>
-
 <p>Please follow the links below to find appropriate content:</p>
-
 <ul>
-<li><a href="/docs/celix/documents/intro/readme.html">Introduction</a></li>
-<li><a href="/docs/celix/documents/getting_started/readme.html">Getting Started</a></li>
-<li><a href="/docs/celix/documents/cmake_commands/readme.html">CMake Commands</a></li>
-<li><a href="/docs/celix/documents/building/readme.html">Building</a></li>
-<li><a href="/docs/celix/documents/subprojects/readme.html">Subprojects</a></li>
+<li><a href="./celix/documents/intro/readme.html">Introduction</a></li>
+<li><a href="./celix/documents/getting_started/readme.html">Getting Started</a></li>
+<li><a href="./celix/documents/cmake_commands/readme.html">CMake Commands</a></li>
+<li><a href="./celix/documents/building/readme.html">Building</a></li>
+<li><a href="./celix/documents/subprojects/readme.html">Subprojects</a></li>
 </ul>
-
 <p>View our roadmap to view future plans for Celix</p>
-
 <ul>
-<li><a href="/docs/celix/documents/roadmap/roadmap.html">Roadmap</a></li>
+<li><a href="./celix/documents/roadmap/roadmap.html">Roadmap</a></li>
 </ul>
-
+<p>View the 2.1.0 changelog <a href="./celix/CHANGES.html">here</a>.</p>
 <blockquote>
 <p>The <a href="/support/mailing-list.html">Celix mailing list</a> is an excellent place to reach out for help. If you don&rsquo;t find
 an answer to your problem in the mailing list archives, post a new question on the mailing list.</p>
diff --git a/content/docs/2.2.0/celix/CHANGES.html b/content/docs/2.2.0/celix/CHANGES.html
new file mode 100644
index 0000000..5f81fe1
--- /dev/null
+++ b/content/docs/2.2.0/celix/CHANGES.html
@@ -0,0 +1,432 @@
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <title>Changes / Apache Celix</title>
+
+    
+    <link rel="icon" href="/assets/img/favicon.ico">
+
+    
+    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
+
+    
+    <link href="/assets/css/style.css" rel="stylesheet">
+</head>
+<body class="light-grey">
+
+<a href="https://github.com/apache/celix" class="github-ribbon">
+    <img src="/assets/img/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
+</a>
+
+
+<nav class="navbar navbar-expand-lg navbar-dark bg-primary fixed-top">
+    <div class="container">
+        <a class="navbar-brand" href="/">
+            <img src="/assets/img/celix-white.svg" height="40" class="d-inline-block align-top" alt="Celix Logo">
+        </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" id="navbarResponsive">
+            <ul class="navbar-nav ml-auto">
+                <li class="nav-item">
+                    <a class="nav-link" href="/">Home</a>
+                </li>
+                <li class="nav-item">
+                    <a class="nav-link" href="/download.cgi">Download</a>
+                </li>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
+                </li>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
+                        <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
+                        <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
+                        <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
+                        <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
+                        <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
+                    </div>
+                </li>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddSupport" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Support
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddSupport">
+                        <a class="dropdown-item" href="/support/mailing-list.html">Mailing Lists</a>
+                        <a class="dropdown-item" href="/support/issue-tracking.html">Issue Tracking</a>
+                    </div>
+                </li>
+                <li class="nav-item dropdown">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddFoundation" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        ASF
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddFoundation">
+                        <a class="dropdown-item" href="https://www.apache.org/">ASF Home</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/how-it-works.html">How it works</a>
+                        <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>
+                        <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
+                    </div>
+                </li>
+            </ul>
+        </div>
+    </div>
+</nav>
+
+
+<div class="section">
+    <div class="container">
+        <div class="row py-4">
+            <div class="col-sm-12 card">
+                <div class="card-body pt-5">
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/CHANGES.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
+
+                    
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+
+                    
+	<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+   
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<h1 id="changes-for-220">Changes for 2.2.0</h1>
+<h2 id="new-features">New features:</h2>
+<ul>
+<li>PubSub TCP (donation)</li>
+<li>PubSub Avro bin serializer</li>
+<li>PubSub Websocket (donation)</li>
+<li>HTTP Admin (donation)</li>
+<li>Shell Web UI (using HTTP Admin) d</li>
+</ul>
+<h2 id="improvements">Improvements</h2>
+<ul>
+<li>CELIX-438: Refactored celix api so that include files and symbols have a _celix &ldquo;namespace&rdquo;</li>
+<li>CELIX-459: Adds PubSub health/usage monitoring</li>
+<li>CELIX-467: Adds doxygen generation</li>
+<li>Refactored etcdlib to supported multiple instances</li>
+</ul>
+<h2 id="bugs">Bugs</h2>
+<ul>
+<li>CELIX-410: Fixes issue with property loader duplicating spaces and tabs</li>
+<li>CELIX-454: Fixed race condition in the etcd pubsub discovery</li>
+<li>CELIX-460: Fixed issue with msg not found in pub/sub serializer map due to signed/unsigned difference</li>
+<li>CELIX-466: Fixed race condition Race condition in adding/removing service listener hooks</li>
+</ul>
+<h1 id="changes-for-210">Changes for 2.1.0</h1>
+<h2 id="new-features-1">New Features:</h2>
+<ul>
+<li>CELIX-408: Adds support for generating runtime shell scripts so that multiple Celix containers and other executable can be run with a single command.</li>
+<li>CELIX-418: Adds support for generating properties in the Celix container launcher.</li>
+<li>CELIX-407: Adds support for serializers as a service for PubSub. This way PubSubAdmin are purely focused on transport techniques.</li>
+<li>CELIX-401: Adds support for creating Celix docker images using a CMake function.</li>
+<li>CELIX-397: Adds support for PubSub selection based on a match function. This way multiple PubSubAdmin can be active.</li>
+<li>CELIX-389: Adds the PubSub implementation. A set of bundles which together operates as a service based publish subscribe technology agnostic abstraction.</li>
+<li>CELIX-385: Adds etcdlib as library. This libray can be used to communicate with etcd using a C abstraction.</li>
+<li>CELIX-370: Adds C++11 support by adding a C++ Dependency Manager library. This is moslty a header based library.</li>
+</ul>
+<h2 id="improvements-1">Improvements:</h2>
+<ul>
+<li>CELIX-415: Improves handling of ANSI control sequences to better support running in IDE&rsquo;s.</li>
+<li>CELIX-414: Improves support for running Celix container inside IDE&rsquo;s by basicly handling Celix containers as add_executable CMake target.</li>
+<li>CELIX-406: Improves handling of descriptor files, by allowing different directories for Remote Services and PubSub.</li>
+<li>CELIX-399: Improves PubSub to use etcdlib instead of local copy of etcd.c file.</li>
+<li>CELIX-396: Improves the ZMQ PubSub security so that enabling/disable of security can be done per topic.</li>
+<li>CELIX-395: Improves Remote Service to use the etcdlib instead of a local etcd.c file.</li>
+<li>CELIX-392: Removes the use of the deprecated readdir_r function.</li>
+</ul>
+<h2 id="bugs-1">Bugs:</h2>
+<ul>
+<li>CELIX-416: Fixes an issue for the Android build.</li>
+<li>CELIX-410: Fixes an issue where spaces and tabs are duplicated when loading properties.</li>
+<li>CELIX-405: Fixes an issue with crashes because of invalid DFI descriptors.</li>
+<li>CELIX-404: Fixes an issue with crashes using the inspect shell command.</li>
+<li>CELIX-403: Fixes an memory leak in the service tracker.</li>
+<li>CELIX-400: Fixes an issue with private libraries being loaded twice.</li>
+<li>CELIX-398: Fixes an issue with PubSub and multiple UDP connections.</li>
+<li>CELIX-393: Fixes an issue with the add_bundle CMake function and using existing libaries.</li>
+<li>CELIX-391: Fixes an issue with the utils_stringHash not genering unique (enough) hashes.</li>
+<li>CELIX-390: Fixes an issue with cycle dependency between the Celix framework and Celix utils libraries.</li>
+<li>CELIX-387: Fixes an issue with the travis build and OSX</li>
+<li>CELIX-386: Fixes an issue with the C++ dependency manager and register multiple C++ services.</li>
+</ul>
+<h1 id="changes-for-200">Changes for 2.0.0</h1>
+<h2 id="new-features-2">New Features</h2>
+<ul>
+<li>CELIX-77 Configuration Admin Implementation</li>
+<li>CELIX-116 Event admin</li>
+<li>CELIX-119 Remove apr usage from framework</li>
+<li>CELIX-172 Bonjour Shell</li>
+<li>CELIX-237 RSA with libffi</li>
+<li>CELIX-269 New Dependency Manager</li>
+<li>CELIX-370 Add C++ support</li>
+</ul>
+<h2 id="improvements-2">Improvements</h2>
+<ul>
+<li>CELIX-63 make cmake directory useable for custom bundle projects</li>
+<li>CELIX-66 Refactor shell service struct</li>
+<li>CELIX-90 add additional build options for RSA components</li>
+<li>CELIX-111 Support multiple libraries</li>
+<li>CELIX-115 logservice bundle entries list grows indefinitely</li>
+<li>CELIX-118 Deployment Admin - Support auditlog of Apache ACE</li>
+<li>CELIX-123 enable code coverage for utils_test</li>
+<li>CELIX-125 CMakeCelix module</li>
+<li>CELIX-134 Update source from incubator structure to TLP</li>
+<li>CELIX-138 Parameterise launcher</li>
+<li>CELIX-144 Document Developing Celix with Eclipse</li>
+<li>CELIX-146 Replace printfs wit fw_log calls</li>
+<li>CELIX-149 Add log_writer_syslog</li>
+<li>CELIX-152 Added Discovery/ETCD support</li>
+<li>CELIX-153 add cmake configuration options for rsa_bundles</li>
+<li>CELIX-156 Enable all warnings</li>
+<li>CELIX-158 RSA is unable to re-use already started proxy factory</li>
+<li>CELIX-165 Add port collision auto-correction to RSA</li>
+<li>CELIX-169 Add port collision auto-correction to discovery</li>
+<li>CELIX-182 loghelper eases log_service tracking</li>
+<li>CELIX-187 discovery_etcd: add watchindex, handle expire action</li>
+<li>CELIX-193 support portable celix_thread_t initalization</li>
+<li>CELIX-199 Code Coverage should be optional rather than required by cmake</li>
+<li>CELIX-200 SEGFAULT occurs when remote services are closed</li>
+<li>CELIX-216 Replace strtok with strtok_r</li>
+<li>CELIX-230 Refactoring of the shell command service</li>
+<li>CELIX-242 Fix Warnings</li>
+<li>CELIX-245 Update civetweb to latest version</li>
+<li>CELIX-246 enable Travis CI for Apache Celix</li>
+<li>CELIX-247 Enable ANDROID support</li>
+<li>CELIX-249 Refactor most char * usage to const char *</li>
+<li>CELIX-251 missing includes in device access example</li>
+<li>CELIX-255 Update default BUILD option</li>
+<li>CELIX-258 framework uses  dlopen/dlsym to set the bundleActivator</li>
+<li>CELIX-259 dispatcherThread does not perform a graceful shutdown</li>
+<li>CELIX-275 Can&rsquo;t do mkstemp on root system (deploymentAdmin_download)</li>
+<li>CELIX-278 Adding tags to ACE target through deployment admin</li>
+<li>CELIX-284 Restrict export and imports based on properties</li>
+<li>CELIX-285 Discovery SHM: remove obsolete jansson dependency</li>
+<li>CELIX-295 Many compiling warnings in unit tests</li>
+<li>CELIX-296 Framework unit tests improvement</li>
+<li>CELIX-309 Make DFI available for common use</li>
+<li>CELIX-317 Dependency Manager suspend state</li>
+<li>CELIX-320 outdated utils tests (threads, hashmap)</li>
+<li>CELIX-323 Version and version_range moved from framework to utils</li>
+<li>CELIX-326 Add service version support to dependency manager</li>
+<li>CELIX-327 Filter does not support greater than and lesser than operators</li>
+<li>CELIX-328 Service version support for RSA DFI</li>
+<li>CELIX-330 document using markdown</li>
+<li>CELIX-333 integrate coverity scans</li>
+<li>CELIX-335 Refactor deploying bundles with cmake</li>
+<li>CELIX-339 celix_log_mock doesnt show logs to the user</li>
+<li>CELIX-341 Fix coverity issues in Shell / Shell TUI</li>
+<li>CELIX-348 The utils_stringHash does not generate unique hashes.</li>
+<li>CELIX-352 RSA_DFI and embedded celix</li>
+<li>CELIX-353 Make bundle context retrievable form dm component</li>
+<li>CELIX-365 Refactor some usage of void* to const void*</li>
+</ul>
+<h2 id="bugs-2">Bugs</h2>
+<ul>
+<li>CELIX-104 deployment_admin bundle won&rsquo;t start when missing properties</li>
+<li>CELIX-105 Fixed array_list_test</li>
+<li>CELIX-114 Potential deadlock in log_service bundle during stop</li>
+<li>CELIX-122 missing dependency uuid</li>
+<li>CELIX-124 Celix memory leaks fixing</li>
+<li>CELIX-127 Makefiles not generated using CMake 3.0</li>
+<li>CELIX-128 remote_shell port cannot be changed</li>
+<li>CELIX-129 Update RSA to be compatible with the Amdatu RSA implementation</li>
+<li>CELIX-130 Implement Configured Endpoint discovery compatible with Amdatu RSA</li>
+<li>CELIX-136 contrib Configured endpoint discovery</li>
+<li>CELIX-137 Possible concurrency issues in topology manager</li>
+<li>CELIX-139 Update tests and mocks to latest CppUTest</li>
+<li>CELIX-147 RSA_SHM: concurrency issue when client segfaults</li>
+<li>CELIX-150 Topology Manager segfaults when RSA/bundle w/ exp. service stops in wrong order</li>
+<li>CELIX-154 echo exampe not working</li>
+<li>CELIX-155 Fix CMake warnings during configuration</li>
+<li>CELIX-157 service_reference misses functions to get property keys and values</li>
+<li>CELIX-159 PThread usage not correct for Linux</li>
+<li>CELIX-161 newly added RSA cannot manage already exported/imported services</li>
+<li>CELIX-162 Update encoding/decoding of replies.</li>
+<li>CELIX-167 Update command to be able to pass a pointer (handle)</li>
+<li>CELIX-168 discovery_etcd:Make root-path configurable</li>
+<li>CELIX-170 Remote services can fail to restart when felix restarts</li>
+<li>CELIX-173 stopping rsa_http bundle does not stop rsa webserver</li>
+<li>CELIX-174  invalid bundle_context during fw shutdown</li>
+<li>CELIX-175 segfault during shutdown when calculator is already stopped</li>
+<li>CELIX-177 not all endpoints are unistalled when rsa_http bundle is stopped</li>
+<li>CELIX-178 Shell_Tui bundle hangs on stop</li>
+<li>CELIX-179 memory leak in rsa_http callback</li>
+<li>CELIX-180 framework_tests do not compile</li>
+<li>CELIX-181 Incorrect reply status when no data is returned on a remote call.</li>
+<li>CELIX-185 Memory leaks in Discovery Endpoint Descriptor Reader</li>
+<li>CELIX-186 deployment_admin segfaults while downloading bundle</li>
+<li>CELIX-188 Add missing log_service headers to installations</li>
+<li>CELIX-189 LogService segfaults when log message pointer is overwritten</li>
+<li>CELIX-190 remote services memory leaks</li>
+<li>CELIX-192 rsa_http: add locking</li>
+<li>CELIX-194 Refactor RemoteService proxy factory</li>
+<li>CELIX-195 SEGFAULT occurs when running a log command.</li>
+<li>CELIX-197 insufficient memory allocated</li>
+<li>CELIX-198 Logging can segfault for strings 512 characters or longer</li>
+<li>CELIX-201 SEGFAULT occurs when restarting apache_celix_rs_topology_manager</li>
+<li>CELIX-202 Not all components are disabled with a clean build</li>
+<li>CELIX-205 RSA Discovery (Configured) bundle gets stuck</li>
+<li>CELIX-213 SEGFAULT occurs due to memory access after memory is free&rsquo;d</li>
+<li>CELIX-215 curl_global_init() not called directly</li>
+<li>CELIX-218 Memory leaks in service_registry.c</li>
+<li>CELIX-219 Memory Leaks</li>
+<li>CELIX-221 Deployment admin segfaults when deploying a bundle</li>
+<li>CELIX-223 Celix crashes because of wrong bundle versions</li>
+<li>CELIX-224 Wrong use of errno in launcher.c</li>
+<li>CELIX-226 __unused atttibute does not work with  Linux</li>
+<li>CELIX-227 compile error under linux due to missing header include</li>
+<li>CELIX-229 Make APR optional</li>
+<li>CELIX-231 Missing log_helper creation in discovery_etcd</li>
+<li>CELIX-238 Contributing page links incorrect</li>
+<li>CELIX-239 TopologyManager does not maintain exportedServices</li>
+<li>CELIX-240 RSA: deadlock when stopping</li>
+<li>CELIX-241 remote_interface incorrect</li>
+<li>CELIX-248 too many arguments for format</li>
+<li>CELIX-250 config.h is not exported</li>
+<li>CELIX-252 discovery_etcd cannot handle celix restarts</li>
+<li>CELIX-253 Deployment admin does not always download the latest version from ACE</li>
+<li>CELIX-254 Memory leakage in deployment_admin</li>
+<li>CELIX-260 missing include in deployment admin</li>
+<li>CELIX-262 Fix minor issues in hashMap/linkedList</li>
+<li>CELIX-263 replace utils cunit tests w/ cpputest tests</li>
+<li>CELIX-264 Missing strdup leads to invalid free</li>
+<li>CELIX-270 Fix Code Coverage</li>
+<li>CELIX-271 setup coveralls.io</li>
+<li>CELIX-272 framework: improve locking / synchronization</li>
+<li>CELIX-274 waitForShutdown issue when starting two embedded celix frameworks.</li>
+<li>CELIX-279 Celix fails to compile w/ CMake 3.3</li>
+<li>CELIX-280 deployment_admin misses proper shutdown functionality</li>
+<li>CELIX-287 racecondition for framework event listener</li>
+<li>CELIX-288 Archive directory not properly read</li>
+<li>CELIX-289 Fix celix mocks</li>
+<li>CELIX-290 Mock fixes, CMakelist fix, build warning fix</li>
+<li>CELIX-292 Memory leak in refactored shell</li>
+<li>CELIX-294 changed dfi library from static to shared</li>
+<li>CELIX-298 Memory leaks in rsa_dfi</li>
+<li>CELIX-300 Invalid read in serviceRegistry during framework_shutdown</li>
+<li>CELIX-301 Memory leaks in rsa_shm</li>
+<li>CELIX-302 Service Tracker Test error breaks the build</li>
+<li>CELIX-304 Memory leaks in manifest parser, requirement, capability; out-of-date tests</li>
+<li>CELIX-305 Memory leaks in RSA_SHM, RSA_DFI, RSA_HTTP</li>
+<li>CELIX-306 Memory leaks in remote_proxy_factory, unit tests issues</li>
+<li>CELIX-307 &ldquo;service registration set properties&rdquo; deadlocks</li>
+<li>CELIX-308 Dependency Manager memory leaks</li>
+<li>CELIX-310 &ldquo;serviceRegistry_getRegisteredServices&rdquo; deadlocks</li>
+<li>CELIX-311 Framework Tests Build broken</li>
+<li>CELIX-312 ServiceReference usage counter inconsistent state</li>
+<li>CELIX-313 out of date/defunct tests</li>
+<li>CELIX-316 Wrong conversion for &lsquo;N&rsquo; type in json_serializer</li>
+<li>CELIX-322 Memory leaks in resolver and framework tests</li>
+<li>CELIX-324 Version support in dfi library</li>
+<li>CELIX-325 Bundle test sporadicly fails</li>
+<li>CELIX-329 framework &ldquo;service_&rdquo; tests are outdates, some small bugs in the sources</li>
+<li>CELIX-331 test configuraiton needs update for newer CMake</li>
+<li>CELIX-332 filter tests absent, small bugs in the source</li>
+<li>CELIX-334 Race Condition in Topology Manager causes spurious segfaults</li>
+<li>CELIX-336 resolver_test doesn&rsquo;t compile</li>
+<li>CELIX-343 configuration_unbind never called</li>
+<li>CELIX-344 service tracker removes wrong service</li>
+<li>CELIX-345 Typo in Dependency Manager interface</li>
+<li>CELIX-346 celix-bootstrap problems</li>
+<li>CELIX-347 Memory leaks in dm_service_dependency</li>
+<li>CELIX-349 ServiceTracker update references list after invoking added callback</li>
+<li>CELIX-350 shell_tui wrong handling service reference</li>
+<li>CELIX-354 Coverity High Impact issues</li>
+<li>CELIX-356 Import libraries not supported in revamped cmake commands</li>
+<li>CELIX-357 Coverity Medium Impact issues</li>
+<li>CELIX-358 Coverity Low+New High Impact issues</li>
+<li>CELIX-359 Android build stopped working</li>
+<li>CELIX-360 Coverity leftover issues</li>
+<li>CELIX-361 etcd_watcher notifications loss when ETCD transaction rate is high</li>
+<li>CELIX-363 Memory leak in DFI exportRegistration_create</li>
+<li>CELIX-364 Incorrect destroy of dependency manager info struct</li>
+<li>CELIX-366 eclipse launch file not correctly generated</li>
+<li>CELIX-367 Memory leak in properties</li>
+<li>CELIX-369 Tests fail with sanitizer</li>
+<li>CELIX-371 Due to a fixed maximum length of lines in property file not all bundles are started</li>
+<li>CELIX-372 serviceRegistry_clearReferencesFor warning info unclear</li>
+<li>CELIX-373 Endpoint Server number is fixed and too low</li>
+<li>CELIX-374 RTLD_NODELETE flag</li>
+<li>CELIX-375 Topology manager deadlocks when interacts with dependency manager</li>
+<li>CELIX-377 wrong rpath setup in CMake files</li>
+<li>CELIX-378 Travis build errors on Max OSX</li>
+<li>CELIX-379 Extend cmake fucntion add_deploy with an option to specify the launcher</li>
+<li>CELIX-376 serviceRegistration sometimes paired to invalidated serviceReference</li>
+<li>CELIX-380 PROPERTIES_FOR_EACH macro does not iterate over all keys</li>
+<li>CELIX-381 Invoke set for dependency manager called before suspending the component</li>
+</ul>
+
+
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+
+<footer class="py-3 bg-secondary">
+    <div class="container">
+        <div class="row">
+            <div class="col-md-8 text-center">
+                <p class="m-0 text-white">
+                    Copyright &copy; 2020 The Apache Software Foundation, Licensed under
+                    the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+                    <br>
+                    Apache Celix, Celix, Apache, the Apache feather logo and the Apache Celix logo are trademarks of The Apache Software Foundation.
+                </p>
+            </div>
+            <div class="col-md-4 text-center">
+                <a href="https://www.apache.org/events/current-event.html" target="_blank">
+                    <img src="https://www.apache.org/events/current-event-234x60.png" title="Apache Event" width="234" height="60" border="0">
+                </a>
+            </div>
+        </div>
+    </div>
+</footer>
+
+
+<script src="/assets/js/jquery.min.js"></script>
+<script src="/assets/js/bootstrap.bundle.min.js"></script>
+
+
+</body>
+</html>
diff --git a/content/docs/celix/README.html b/content/docs/2.2.0/celix/README.html
similarity index 71%
rename from content/docs/celix/README.html
rename to content/docs/2.2.0/celix/README.html
index 4734a0c..6afddb7 100644
--- a/content/docs/celix/README.html
+++ b/content/docs/2.2.0/celix/README.html
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,21 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,22 +128,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="apache-celix-build-status-https-travis-ci-org-apache-celix-svg-branch-develop-https-travis-ci-org-apache-celix-coverage-status-https-coveralls-io-repos-apache-celix-badge-svg-branch-develop-service-github-https-coveralls-io-github-apache-celix-branch-develop-coverity-scan-build-status-https-scan-coverity-com-projects-6685-badge-svg-https-scan-coverity-com-projects-6685">Apache Celix <a href="https://travis-ci.org/apache/celix"><img src="https://travis-ci.org/apache/celix.svg?bran [...]
-
-<p>Apache Celix is an implementation of the OSGi specification adapted to C and C++ (C++11). It is a provides a framework to develop (dynamic) modular software applications using component and/or service-oriented programming.</p>
-
+<h1 id="apache-celix-build-statushttpstravis-ciorgapachecelixsvgbranchdevelophttpstravis-ciorgapachecelix-coverage-statushttpscoverallsioreposapachecelixbadgesvgbranchdevelopservicegithubhttpscoverallsiogithubapachecelixbranchdevelop-coverity-scan-build-statushttpsscancoveritycomprojects6685badgesvghttpsscancoveritycomprojects6685">Apache Celix <a href="https://travis-ci.org/apache/celix"><img src="https://travis-ci.org/apache/celix.svg?branch=develop" alt="Build Status"></a> <a href="ht [...]
+<p>Apache Celix is an implementation of the OSGi specification adapted to C and C++ (C++11). It is a framework to develop (dynamic) modular software applications using component and/or service-oriented programming.</p>
 <h2 id="building">Building</h2>
-
-<p>For information how to build Apache Celix see <a href="documents/building/readme.html">Building Apache Celix</a></p>
-
+<p>For information how to build Apache Celix see <a href="documents/building/README.html">Building Apache Celix</a></p>
 <h2 id="introduction-to-apache-celix">Introduction to Apache Celix</h2>
-
-<p>For an introduction into Apache Celix see <a href="documents/intro/readme.html">Apache Celix Intro</a></p>
-
+<p>For an introduction into Apache Celix see <a href="documents/intro/README.html">Apache Celix Intro</a></p>
 <h2 id="getting-started-with-apache-celix">Getting Started with Apache Celix</h2>
-
-<p>For a guide how to start writing your own bundles and services see <a href="documents/getting_started/readme.html">Getting Started Guide</a></p>
+<p>For a guide how to start writing your own bundles and services see <a href="documents/getting_started/README.html">Getting Started Guide</a></p>
 
 
                 </div>
diff --git a/content/docs/celix/deployment_admin/README.html b/content/docs/2.2.0/celix/bundles/deployment_admin/README.html
similarity index 74%
rename from content/docs/celix/deployment_admin/README.html
rename to content/docs/2.2.0/celix/bundles/deployment_admin/README.html
index 9424f6d..b1a0911 100644
--- a/content/docs/celix/deployment_admin/README.html
+++ b/content/docs/2.2.0/celix/bundles/deployment_admin/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Deployment Admin / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,21 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/deployment_admin/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/bundles/deployment_admin/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,25 +128,28 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="deployment-admin">Deployment Admin</h2>
-
 <p>The Celix Deployment Admin implements the OSGi Deployment Admin specification, which provides functionality to manage deployment packages. Deployment package are bundles and other artifacts that can be installed, updated and uninstalled as single unit.</p>
-
 <p>It can be used for example with Apache Ace, which allows you to centrally manage and distribute software components, configuration data and other artifacts.</p>
-
 <h6 id="properties">Properties</h6>
-
-<pre><code>deployment_admin_identification     id used by the deployment admin to identify itself
-deployment_admin_url                url of the deployment server
-deployment_cache_dir                possible cache dir for the deployment admin update
-deployment_tags                     tags used by the deployment admin
+<pre><code>              tags used by the deployment admin
 </code></pre>
-
-<h6 id="cmake-option">CMake option</h6>
-
+<h2 id="cmake-option">CMake option</h2>
 <pre><code>BUILD_DEPLOYMENT_ADMIN=ON
 </code></pre>
+<h2 id="deployment-admin-config-options">Deployment Admin Config Options</h2>
+<ul>
+<li>deployment_admin_identification     id used by the deployment admin to identify itself</li>
+<li>deployment_admin_url                url of the deployment server</li>
+<li>deployment_cache_dir                possible cache dir for the deployment admin update</li>
+<li>deployment_tags</li>
+</ul>
+<h2 id="using-info">Using info</h2>
+<p>If the Celix Deployment Admin is installed, &lsquo;find_package(Celix)&rsquo; will set:</p>
+<ul>
+<li>The <code>Celix::deployment_admin_api</code> interface (i.e. headers only) library target</li>
+<li>The <code>Celix::deployment_admin</code> bundle target</li>
+</ul>
 
 
                 </div>
diff --git a/content/docs/celix/device_access/README.html b/content/docs/2.2.0/celix/bundles/device_access/README.html
similarity index 76%
rename from content/docs/celix/device_access/README.html
rename to content/docs/2.2.0/celix/bundles/device_access/README.html
index 1007de0..109cfa1 100644
--- a/content/docs/celix/device_access/README.html
+++ b/content/docs/2.2.0/celix/bundles/device_access/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Device Access / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,21 +98,28 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/device_access/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/bundles/device_access/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at
-   
+
     http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
@@ -112,21 +128,22 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
 <h2 id="device-access">Device Access</h2>
-
 <p>The Device Access contains a for Celix adapted implementation of the OSGi Compendium Device Access Specification.</p>
-
-<h6 id="properties">Properties</h6>
-
+<h2 id="properties">Properties</h2>
 <pre><code>DRIVER_LOCATOR_PATH     Path to the directory containing the driver bundles, defaults to &quot;drivers&quot;.
                         The Driver Locator uses this path to find drivers.
 </code></pre>
-
-<h6 id="cmake-option">CMake option</h6>
-
+<h2 id="cmake-option">CMake option</h2>
 <pre><code>BUILD_DEVICE_ACCESS=ON
 </code></pre>
+<h2 id="using-info">Using info</h2>
+<p>If the Celix Device Access is installed, &lsquo;find_package(Celix)&rsquo; will set:</p>
+<ul>
+<li>The <code>Celix::device_access_api</code> interface (i.e. headers only) library target</li>
+<li>The <code>Celix::device_manager</code> bundle target</li>
+<li>The <code>Celix::driver_locator</code> bundle target</li>
+</ul>
 
 
                 </div>
diff --git a/content/docs/celix/log_writer/README.html b/content/docs/2.2.0/celix/bundles/device_access/example/base_driver/README.html
similarity index 74%
copy from content/docs/celix/log_writer/README.html
copy to content/docs/2.2.0/celix/bundles/device_access/example/base_driver/README.html
index b341285..6c93a1b 100644
--- a/content/docs/celix/log_writer/README.html
+++ b/content/docs/2.2.0/celix/bundles/device_access/example/base_driver/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Base driver / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,21 +98,28 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/log_writer/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/bundles/device_access/example/base_driver/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at
-   
+
     http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
@@ -112,16 +128,12 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h2 id="log-writer">Log Writer</h2>
-
-<p>The Celix Log Writers are components that read/listen to the Log Service and print the Log entries to the console or syslog, respectively.</p>
-
-<h6 id="cmake-options">CMake options</h6>
-
-<pre><code>BUILD_LOG_WRITER=ON
-BUILD_LOG_WRITER_SYSLOG=ON
-</code></pre>
+<h1 id="base-driver">Base driver</h1>
+<p>The base driver is a &ldquo;special&rdquo; driver that will not be loaded by the device manager.
+Normally the device manager will load drivers if it find device which are idle&hellip; But before that can happen
+at least one device should exists. This is the role of a base driver and it should function like a &ldquo;normal&rdquo; OSGi
+bundle which registers a device service.</p>
+<p>In this example the base driver will provide two device service with a DEVICE_CATEGORY of &ldquo;char&rdquo;.</p>
 
 
                 </div>
diff --git a/content/docs/celix/pubsub/examples/keys/README.html b/content/docs/2.2.0/celix/bundles/device_access/example/consuming_driver/README.html
similarity index 76%
copy from content/docs/celix/pubsub/examples/keys/README.html
copy to content/docs/2.2.0/celix/bundles/device_access/example/consuming_driver/README.html
index 83ca946..07c29d6 100644
--- a/content/docs/celix/pubsub/examples/keys/README.html
+++ b/content/docs/2.2.0/celix/bundles/device_access/example/consuming_driver/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Consuming driver / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,9 +98,18 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/pubsub/examples/keys/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/bundles/device_access/example/consuming_driver/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
+
+                    
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
                     
 	<!--
@@ -101,7 +119,7 @@ this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at
-   
+
     http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
@@ -110,25 +128,10 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<p>Store the AES key for encrypting and decrypting the encoded secret keys safe in a file!
-Default file is <code>/etc/pubsub.keys</code> with the following format:</p>
-
-<pre><code>aes_key:{32 character AES key here}
-aes_iv:{16 character AES iv here}
-</code></pre>
-
-<p>Use the $PROJECT_BUILD/pubsub/keygen/makecert for generating keypairs
-Use the $PROJECT_BUILD/pubsub/keygen/ed_file for encrypting and decrypting private keys</p>
-
-<p>Public keys need to be stored in the &lsquo;public&rsquo; folder having the following format:
-- pub<em>{topic}.pub
-- sub</em>{topic}.pub</p>
-
-<p>Secret keys need to be stored in the &lsquo;private&rsquo; folder having the following format:
-- pub<em>{topic}.key.enc
-- sub</em>{topic}.key.enc
-These files need to be encrypted using the &lsquo;ed_file&rsquo; executable.</p>
+<h1 id="consuming-driver">Consuming driver</h1>
+<p>A consuming driver will be able to attach to certain device services,
+but will not - in contrast with a refining driver - publish device services.</p>
+<p>In this example the consuming driver will look for &ldquo;word&rdquo; services and will print the result a few times.</p>
 
 
                 </div>
diff --git a/content/docs/celix/shell/README.html b/content/docs/2.2.0/celix/bundles/device_access/example/refining_driver/README.html
similarity index 75%
copy from content/docs/celix/shell/README.html
copy to content/docs/2.2.0/celix/bundles/device_access/example/refining_driver/README.html
index 3ab74a0..016a8ae 100644
--- a/content/docs/celix/shell/README.html
+++ b/content/docs/2.2.0/celix/bundles/device_access/example/refining_driver/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Refining driver / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,21 +98,28 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/shell/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/bundles/device_access/example/refining_driver/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at
-   
+
     http://www.apache.org/licenses/LICENSE-2.0
 
 Unless required by applicable law or agreed to in writing, software
@@ -112,41 +128,14 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="shell">Shell</h1>
-
-<p>The Celix Shell provides a service interface which can be used to interact with the Celix framework. Note that it does not offer a user interface. This modular approach enables having multiple frontends, e.g. textual or graphical.</p>
-
-<p>While the shell can be extended with additional commands by other bundles, it already offers some built in commands:</p>
-
-<pre><code>lb            list bundles
-install       install additional bundle
-uninstall     uninstall bundles
-update        update bundles
-
-start         start bundle
-stop          stop bundle
-
-help          displays available commands
-inspect       inspect service and components
-
-log           print log
-</code></pre>
-
-<p>Further information about a command can be retrieved by using <code>help</code> combined with the command.</p>
-
-<h2 id="shell-config-options">Shell Config Options</h2>
-
+<h1 id="refining-driver">Refining driver</h1>
+<p>A refining driver is a driver which is able to attach to certain device services and
+as result publishes different - refined - device services.
+This example will attach to device services with a &ldquo;char&rdquo; device category and publish</p>
 <ul>
-<li>SHELL_USE_ANSI_COLORS - Wether shell command are allowed to use
-ANSI colors when printing info. default is true.</li>
+<li>for every char device services found - a &ldquo;word&rdquo; device services.</li>
 </ul>
 
-<h2 id="cmake-options">CMake options</h2>
-
-<pre><code>BUILD_SHELL=ON
-</code></pre>
-
 
                 </div>
             </div>
diff --git a/content/docs/celix/shell_tui/README.html b/content/docs/2.2.0/celix/bundles/http_admin/README.html
similarity index 60%
copy from content/docs/celix/shell_tui/README.html
copy to content/docs/2.2.0/celix/bundles/http_admin/README.html
index b7f8aad..344a6e1 100644
--- a/content/docs/celix/shell_tui/README.html
+++ b/content/docs/2.2.0/celix/bundles/http_admin/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>HTTP Admin / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,21 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/shell_tui/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/bundles/http_admin/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,24 +128,31 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="shell-tui">Shell TUI</h1>
-
-<p>The Celix Shell TUI implements a textual user interface for the Celix Shell.</p>
-
+<h2 id="http-admin">HTTP Admin</h2>
+<p>The HTTP admin provides a service tracker and starts a HTTP web server. The civetweb web server is used as an embedded
+web server. Websockets are supported by the HTTP admin.</p>
+<p>Services can register and implement HTTP requests or websocket support for a specified URI.
+The supported HTTP requests are: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS and PATCH.
+The websocket service can support different callback handlers: connect, ready, data and close.</p>
+<p>Aliasing is also supported for both HTTP services and websocket services. Multiple aliases can be added by using the comma as seperator.
+Adding aliasing is done by adding the following function to the target CMakeFile (fill in <Alias path> and <Path to destination>):</p>
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_headers</span>(<span style="color:#b44">&lt;TARGET&gt;</span>
+        <span style="color:#b44">&#34;X-Web-Resource: /&lt;Alias path&gt;$&lt;SEMICOLON&gt;/&lt;Path to destination&gt;, /&lt;Alias path 2&gt;$&lt;SEMICOLON&gt;/&lt;Path to destination&gt;&#34;</span>
+)<span style="">
+</span></code></pre></div><p>Bundle alias resources can be added by the with the following function in the bundle CMakefile:</p>
+<div class="highlight"><pre style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-CMake" data-lang="CMake"><span style="color:#a2f">celix_bundle_add_dir</span>(<span style="color:#b44">&lt;TARGET&gt;</span> <span style="color:#b44">&lt;Document</span> <span style="color:#b44">root</span> <span style="color:#b44">of</span> <span style="color:#b44">bundle&gt;</span> <span style="color:#b44">DESTINATION</span> <span style="color:#b44">&#34;.&#34;</s [...]
+</span></code></pre></div><h3 id="celix-supported-configproperties">Celix supported config.properties</h3>
+<pre><code>CELIX_HTTP_ADMIN_LISTENING_PORTS                 default = 8080, can be multiple ports divided by a comma
+CELIX_HTTP_ADMIN_PORT_RANGE_MIN                  default = 8000
+CELIX_HTTP_ADMIN_PORT_RANGE_MAX                  default = 9000
+CELIX_HTTP_ADMIN_USE_WEBSOCKETS                  default = true
+CELIX_HTTP_ADMIN_WEBSOCKET_TIMEOUT_MS            default = 3600000
+CELIX_HTTP_ADMIN_NUM_THREADS                     default = 1
+</code></pre>
 <h2 id="cmake-option">CMake option</h2>
-
-<pre><code>BUILD_SHELL_TUI=ON
+<pre><code>BUILD_HTTP_ADMIN=ON
 </code></pre>
 
-<h2 id="config-options">Config options</h2>
-
-<ul>
-<li>SHELL_USE_ANSI_CONTROL_SEQUENCES - Wether to use ANSI control
-sequences to support backspace, left, up, etc key commands in the
-shell tui. Default is true if a TERM environment is set else false.</li>
-</ul>
-
 
                 </div>
             </div>
diff --git a/content/docs/celix/log_service/README.html b/content/docs/2.2.0/celix/bundles/logging/log_service/README.html
similarity index 72%
copy from content/docs/celix/log_service/README.html
copy to content/docs/2.2.0/celix/bundles/logging/log_service/README.html
index b1c8e57..e40fb4d 100644
--- a/content/docs/celix/log_service/README.html
+++ b/content/docs/2.2.0/celix/bundles/logging/log_service/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Log Service / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,46 +98,37 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/log_service/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/bundles/logging/log_service/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
 
                     
-	
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-   
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-<h2 id="log-service">Log Service</h2>
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
+                    
+	<h1 id="log-service">Log Service</h1>
 <p>The Celix Log Service realizes an adapted implementation of the OSGi Compendium Log Service. This is a very simple implementation which only stores the log in memory. It can be combined with one of the available Log Writers to forward the buffered entries to e.g. stdout or syslog.</p>
-
-<p>To ease the use of the Log Service, the <a href="public/include/log_helper.h">Log Helper</a> can be used. It wraps and therefore simplifies the log service usage.</p>
-
-<h6 id="properties">Properties</h6>
-
+<p>To ease the use of the Log Service, the <a href="loghelper_include/log_helper.h">Log Helper</a> can be used. It wraps and therefore simplifies the log service usage.</p>
+<h2 id="properties">Properties</h2>
 <pre><code>LOGHELPER_ENABLE_STDOUT_FALLBACK      If set to any value and in case no Log Service is found the logs
                                       are still printed on stdout. 
 </code></pre>
-
-<h6 id="cmake-option">CMake option</h6>
-
+<h2 id="cmake-option">CMake option</h2>
 <pre><code>BUILD_LOG_SERVICE=ON
 </code></pre>
+<h2 id="using-info">Using info</h2>
+<p>If the Celix Log Service is installed, &lsquo;find_package(Celix)&rsquo; will set:</p>
+<ul>
+<li>The <code>Celix::log_service_api</code> interface (i.e. header only) library target</li>
+<li>The <code>Celix::log_service</code> bundle target</li>
+<li>The <code>Celix::log_helper</code> static library target</li>
+</ul>
 
 
                 </div>
diff --git a/content/docs/celix/log_writer/README.html b/content/docs/2.2.0/celix/bundles/logging/log_writer/README.html
similarity index 74%
rename from content/docs/celix/log_writer/README.html
rename to content/docs/2.2.0/celix/bundles/logging/log_writer/README.html
index b341285..05b0ebe 100644
--- a/content/docs/celix/log_writer/README.html
+++ b/content/docs/2.2.0/celix/bundles/logging/log_writer/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Log Writer / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,39 +98,32 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/log_writer/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/bundles/logging/log_writer/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
 
                     
-	
-
-<!--
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-   
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-
-<h2 id="log-writer">Log Writer</h2>
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
+                    
+	<h1 id="log-writer">Log Writer</h1>
 <p>The Celix Log Writers are components that read/listen to the Log Service and print the Log entries to the console or syslog, respectively.</p>
-
-<h6 id="cmake-options">CMake options</h6>
-
+<h2 id="cmake-options">CMake options</h2>
 <pre><code>BUILD_LOG_WRITER=ON
 BUILD_LOG_WRITER_SYSLOG=ON
 </code></pre>
+<h2 id="using-info">Using info</h2>
+<p>If the Celix Log Writers are installed <code>find_package(CELIX)</code> will set:</p>
+<ul>
+<li>The <code>Celix::log_writer_stdout</code> bundle target</li>
+<li>The <code>Celix::log_writer_syslog</code> bundle target</li>
+</ul>
 
 
                 </div>
diff --git a/content/docs/celix/pubsub/README.html b/content/docs/2.2.0/celix/bundles/pubsub/README.html
similarity index 80%
rename from content/docs/celix/pubsub/README.html
rename to content/docs/2.2.0/celix/bundles/pubsub/README.html
index ea39936..8cb2c2a 100644
--- a/content/docs/celix/pubsub/README.html
+++ b/content/docs/2.2.0/celix/bundles/pubsub/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Publisher / subscriber implementation / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
-                <li class="nav-item active">
-                    <a class="nav-link" href="/docs/docs.html">Docs</a>
+                <li class="nav-item dropdown active">
+                    <a class="nav-link dropdown-toggle" href="#" id="ddDocs" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Docs
+                    </a>
+                    <div class="dropdown-menu" aria-labelledby="ddDocs">
+                        <a class="dropdown-item" href="/docs/2.2.0/docs.html">2.2.0 (latest)</a>
+                        <a class="dropdown-item" href="/docs/2.1.0/docs.html">2.1.0</a>
+                    </div>
                 </li>
                 <li class="nav-item dropdown">
-                    <a class="nav-link dropdown-toggle" href="#" id="ddCommunity" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
-                        Community
+                    <a class="nav-link dropdown-toggle" href="#" id="ddContributing" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                        Contributing
                     </a>
-                    <div class="dropdown-menu" aria-labelledby="ddCommunity">
+                    <div class="dropdown-menu" aria-labelledby="ddContributing">
                         <a class="dropdown-item" href="/contributing/youatcelix.html">You at Celix</a>
                         <a class="dropdown-item" href="/contributing/submitting-patches.html">Submitting patches</a>
+                        <a class="dropdown-item" href="/contributing/source-and-builds.html">Source code and builds</a>
+                        <hr>
                         <a class="dropdown-item" href="/contributing/releasing.html">Releasing</a>
                         <a class="dropdown-item" href="/contributing/volunteers.html">Volunteers</a>
                         <a class="dropdown-item" href="https://whimsy.apache.org/board/minutes/Celix.html">Board Reports</a>
@@ -76,6 +84,7 @@
                         <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>
                         <a class="dropdown-item" href="https://www.apache.org/security/">Security</a>
+                        <a class="dropdown-item" href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a>
                     </div>
                 </li>
             </ul>
@@ -89,14 +98,21 @@
         <div class="row py-4">
             <div class="col-sm-12 card">
                 <div class="card-body pt-5">
-                     
-                    <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/docs/celix/pubsub/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
-                    <a href="/docs/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
+                    
+                        
+                        
+                            <a class="edit-on-gh" href="https://github.com/apache/celix/edit/develop/bundles/pubsub/README.md" title="Edit this page on GitHub">Edit on GitHub</a>
+                        
+                    
 
                     
-	
+                        
+                        <a href="/docs/2.2.0/docs.html" title="back to documentation">&lt;&lt; back to documentation</a>
+                    
 
-<!--
+                    
+	<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
@@ -112,36 +128,24 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-
-<h1 id="publisher-subscriber-implementation">Publisher / subscriber implementation</h1>
-
+<h1 id="publisher--subscriber-implementation">Publisher / subscriber implementation</h1>
 <p>This subdirectory contains an implementation for a publish-subscribe remote services system, that use dfi library for message serialization.
 For low-level communication, UDP and ZMQ is used.</p>
-
 <h1 id="description">Description</h1>
-
 <p>This publisher / subscriber implementation is based on the concepts of the remote service admin (i.e. rsa / topology / discovery pattern).</p>
-
 <p>Publishers are senders of data, subscribers can receive data. Publishers can publish/send data to certain channels (called &lsquo;topics&rsquo; further on), subscribers can subscribe to these topics. For every topic a publisher service is created by the pubsub admin. This publisher is announced through etcd. So etcd is used for discovery of the publishers. Subscribers are also registered as a service by the pubsub admin and will watch etcd for changes and when a new publisher is annou [...]
-
 <p>The dfi library is used for message serialization. The publisher / subscriber implementation will arrange that every message which will be send gets an unique id.</p>
-
 <p>For communication between publishers and subscribers UDP and ZeroMQ can be used. When using ZeroMQ it&rsquo;s also possible to setup a secure connection to encrypt the traffic being send between publishers and subscribers. This connection can be secured with ZeroMQ by using a curve25519 key pair per topic.</p>
-
 <p>The publisher/subscriber implementation supports sending of a single message and sending of multipart messages.</p>
-
 <h2 id="getting-started">Getting started</h2>
-
-<p>The publisher/subscriber implementation contains 2 different PubSubAdmins for managing connections:
-  * PubsubAdminUDP: This pubsub admin is using linux sockets to setup a connection.
-  * PubsubAdminZMQ (LGPL License): This pubsub admin is using ZeroMQ and is disabled as default. This is a because the pubsub admin is using ZeroMQ which is licensed as LGPL (<a href="https://github.com/zeromq/libzmq#license">View ZeroMQ License</a>).</p>
-
+<p>The publisher/subscriber implementation contains 2 different PubSubAdmins for managing connections:</p>
+<ul>
+<li>PubsubAdminUDP: This pubsub admin is using linux sockets to setup a connection.</li>
+<li>PubsubAdminZMQ (LGPL License): This pubsub admin is using ZeroMQ and is disabled as default. This is a because the pubsub admin is using ZeroMQ which is licensed as LGPL (<a href="https://github.com/zeromq/libzmq#license">View ZeroMQ License</a>).</li>
+</ul>
 <p>The ZeroMQ pubsub admin can be enabled by specifying the build flag <code>BUILD_PUBSUB_PSA_ZMQ=ON</code>. To get the ZeroMQ pubsub admin running, <a href="https://github.com/zeromq/libzmq">ZeroMQ</a> and <a href="https://github.com/zeromq/czmq">CZMQ</a> need to be installed. Also, to make use of encrypted traffic, <a href="https://github.com/openssl/openssl">OpenSSL</a> is required.</p>
-
 <h2 id="running-instructions">Running instructions</h2>
-
 <h3 id="running-psa-udp-multicast">Running PSA UDP-Multicast</h3>
-
 <ol>
 <li>Open a terminal</li>
 <li>Run <code>etcd</code></li>
@@ -152,13 +156,9 @@ For low-level communication, UDP and ZMQ is used.</p>
 <li>Run <code>cd deploy/pubsub/pubsub_subscriber_udp_mc</code></li>
 <li>Run <code>sh run.sh</code></li>
 </ol>
-
 <p>Design information can be found at pubsub_admin_udp_mc/README.md</p>
-
 <h3 id="running-psa-zmq">Running PSA ZMQ</h3>
-
 <p>For ZeroMQ without encryption, skip the steps 1-12 below</p>
-
 <ol>
 <li>Run <code>touch ~/pubsub.keys</code></li>
 <li>Run <code>echo &quot;aes_key:{AES_KEY here}&quot; &gt;&gt; ~/pubsub.keys</code>. Note that AES_KEY is just a sequence of random bytes. To generate such a key, you can use the command <code>cat /dev/urandom | hexdump -v -e '/1 &quot;%02X&quot;' | head -c 32</code> (this will take out of /dev/urandom 16 bytes, thus a 128bit key)</li>
@@ -170,11 +170,9 @@ For low-level communication, UDP and ZMQ is used.</p>
 <li>Encrypt the private key file using <code>pubsub/keygen/ed_file ~/pubsub.keys pub_&lt;topic_name&gt;.key pub_&lt;topic&gt;.key.enc</code></li>
 <li>Store the keys in the pubsub/examples/keys/ directory, as described in the pubsub/examples/keys/README.</li>
 <li>Build project to include these keys (check the CMakeLists.txt files to be sure that the keys are included in the bundles)</li>
-<li>Add to the config.properties the property SECURE_TOPICS=<list_of_secure_topics></li>
+<li>Add to the config.properties the property SECURE_TOPICS=&lt;list_of_secure_topics&gt;</li>
 </ol>
-
 <p>For ZeroMQ without encryption, start here</p>
-
 <ol>
 <li>Run <code>etcd</code></li>
 <li>Open second terminal on pubsub root</li>
@@ -186,6 +184,12 @@ For low-level communication, UDP and ZMQ is used.</p>
 <li>Run <code>cat ~/pubsub.conf &gt;&gt; config.properties</code> (only for ZeroMQ with encryption)</li>
 <li>Run <code>sh run.sh</code></li>
 </ol>
+<h3 id="properties-psa-zmq">Properties PSA ZMQ</h3>
+<p>Some properties can be set to configure the PSA-ZMQ. If not configured defaults will be used. These
+properties can be set in the config.properties file (<PROPERTY>=<VALUE> format)</p>
+<pre><code>PSA_IP                              The local IP address to be used by the ZMQ admin to publish its data. Default te first IP not on localhost
+PSA_INTERFACE                       The local ethernet interface to be used by the ZMQ admin to publish its data (ie eth0). Default the first non localhost interface
+PSA_ZMQ_RECEIVE_TIMEOUT_MICROSEC    Set the polling interval of the ZMQ receive thread. Default 1ms</code></pre>
 
 
                 </div>
diff --git a/content/docs/celix/pubsub/examples/keys/README.html b/content/docs/2.2.0/celix/bundles/pubsub/examples/keys/README.html
similarity index 78%
copy from content/docs/celix/pubsub/examples/keys/README.html
copy to content/docs/2.2.0/celix/bundles/pubsub/examples/keys/README.html
index 83ca946..7d82cc4 100644
--- a/content/docs/celix/pubsub/examples/keys/README.html
+++ b/content/docs/2.2.0/celix/bundles/pubsub/examples/keys/README.html
@@ -7,7 +7,7 @@
     <meta name="description" content="">
     <meta name="author" content="">
 
-    <title>README.md / Apache Celix</title>
+    <title>Pubsub Keys / Apache Celix</title>
 
     
     <link rel="icon" href="/assets/img/favicon.ico">
@@ -41,16 +41,24 @@
                 <li class="nav-item">
                     <a class="nav-link" href="/download.cgi">Download</a>
                 </li>
... 10569 lines suppressed ...