You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by bu...@apache.org on 2011/11/17 14:08:05 UTC
svn commit: r798814 - in /websites/staging/celix/trunk/content/celix: ./
community/ community/boardreports/ community/contributing/ documentation/
examples/ support/
Author: buildbot
Date: Thu Nov 17 13:08:04 2011
New Revision: 798814
Log:
Staging update by buildbot
Added:
websites/staging/celix/trunk/content/celix/documentation/mapping.html
Modified:
websites/staging/celix/trunk/content/celix/background-links.html
websites/staging/celix/trunk/content/celix/background.html
websites/staging/celix/trunk/content/celix/celix-links.html
websites/staging/celix/trunk/content/celix/celix.html
websites/staging/celix/trunk/content/celix/community/boardreports/boardreports.html
websites/staging/celix/trunk/content/celix/community/boardreports/reports.html
websites/staging/celix/trunk/content/celix/community/community.html
websites/staging/celix/trunk/content/celix/community/contributing/contributing.html
websites/staging/celix/trunk/content/celix/community/contributing/links.html
websites/staging/celix/trunk/content/celix/community/links.html
websites/staging/celix/trunk/content/celix/documentation.html
websites/staging/celix/trunk/content/celix/documentation/buildingandrunning-links.html
websites/staging/celix/trunk/content/celix/documentation/buildingandrunning.html
websites/staging/celix/trunk/content/celix/documentation/design.html
websites/staging/celix/trunk/content/celix/documentation/examples.html
websites/staging/celix/trunk/content/celix/documentation/memorypools.html
websites/staging/celix/trunk/content/celix/download-links.html
websites/staging/celix/trunk/content/celix/download.html
websites/staging/celix/trunk/content/celix/examples/helloworld-links.html
websites/staging/celix/trunk/content/celix/examples/helloworld.html
websites/staging/celix/trunk/content/celix/index.html
websites/staging/celix/trunk/content/celix/links.html
websites/staging/celix/trunk/content/celix/support/issuetracking.html
websites/staging/celix/trunk/content/celix/support/links.html
websites/staging/celix/trunk/content/celix/support/mailinglist.html
websites/staging/celix/trunk/content/celix/support/support.html
Modified: websites/staging/celix/trunk/content/celix/background-links.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/background-links.html (original)
+++ websites/staging/celix/trunk/content/celix/background-links.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/background.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/background.html (original)
+++ websites/staging/celix/trunk/content/celix/background.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/celix-links.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/celix-links.html (original)
+++ websites/staging/celix/trunk/content/celix/celix-links.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/celix.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/celix.html (original)
+++ websites/staging/celix/trunk/content/celix/celix.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/community/boardreports/boardreports.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/community/boardreports/boardreports.html (original)
+++ websites/staging/celix/trunk/content/celix/community/boardreports/boardreports.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/community/boardreports/reports.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/community/boardreports/reports.html (original)
+++ websites/staging/celix/trunk/content/celix/community/boardreports/reports.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/community/community.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/community/community.html (original)
+++ websites/staging/celix/trunk/content/celix/community/community.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/community/contributing/contributing.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/community/contributing/contributing.html (original)
+++ websites/staging/celix/trunk/content/celix/community/contributing/contributing.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/community/contributing/links.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/community/contributing/links.html (original)
+++ websites/staging/celix/trunk/content/celix/community/contributing/links.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/community/links.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/community/links.html (original)
+++ websites/staging/celix/trunk/content/celix/community/links.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/documentation.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/documentation.html (original)
+++ websites/staging/celix/trunk/content/celix/documentation.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
@@ -107,6 +108,7 @@
<ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running Celix</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/documentation/buildingandrunning-links.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/documentation/buildingandrunning-links.html (original)
+++ websites/staging/celix/trunk/content/celix/documentation/buildingandrunning-links.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/documentation/buildingandrunning.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/documentation/buildingandrunning.html (original)
+++ websites/staging/celix/trunk/content/celix/documentation/buildingandrunning.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
@@ -109,20 +110,46 @@ Requirements</p>
<div class="codehilite"><pre>CMake (2.8.1)
GNU Make (3.81)
GCC (4.2.1)
-ZLib
-CUnit
Celix sources
+Sub-project dependencies
+</pre></div>
+
+
+<p>Note: Currently the framework and the examples are in one large project, this results in required libraries which aren't used by the framework itself.
+The following is a list of libraries per sub-project:</p>
+<div class="codehilite"><pre><span class="n">Utils:</span>
+<span class="o">-</span> <span class="n">Apache</span> <span class="n">Portable</span> <span class="n">Runtime</span>
+<span class="o">-</span> <span class="n">CUnit</span>
+
+<span class="n">Framework:</span>
+<span class="o">-</span> <span class="n">Apache</span> <span class="n">Portable</span> <span class="n">Runtime</span>
+<span class="o">-</span> <span class="n">CUnit</span>
+<span class="o">-</span> <span class="n">ZLib</span>
+<span class="o">-</span> <span class="n">Utils</span> <span class="p">(</span><span class="n">Celix</span> <span class="n">sub</span><span class="o">-</span><span class="n">project</span><span class="p">)</span>
+
+<span class="n">Shell:</span>
+<span class="o">-</span> <span class="n">all</span> <span class="n">framework</span> <span class="n">dependencies</span>
+<span class="o">-</span> <span class="n">cURL</span>
+
+<span class="n">Remote</span> <span class="n">Services:</span>
+<span class="o">-</span> <span class="n">all</span> <span class="n">framework</span> <span class="n">dependencies</span>
+<span class="o">-</span> <span class="n">Jansson</span> <span class="p">(</span><span class="n">library</span> <span class="k">for</span> <span class="n">encoding</span><span class="o">/</span><span class="n">decoding</span> <span class="n">JSON</span><span class="p">)</span>
+<span class="o">-</span> <span class="n">Apache</span> <span class="n">Portable</span> <span class="n">Runtime</span> <span class="n">Utils</span>
+
+<span class="n">Paint</span> <span class="n">example:</span>
+<span class="o">-</span> <span class="n">all</span> <span class="n">framework</span> <span class="n">dependencies</span>
+<span class="o">-</span> <span class="n">GTK</span> <span class="p">(</span><span class="mf">2.14</span> <span class="ow">or</span> <span class="n">higher</span><span class="p">)</span>
</pre></div>
<h2 id="building">Building</h2>
<p>Celix uses CMake to generate makefile. There are cmake scripts to build the libraries, but also to deploy created bundles to a named target.
-To start building and using Celix these makefiles have to be created.</p>
+To start building and using Celix these makefiles have to be created. CMake supports out-of-source builds, for Celix the build directory is used for this.</p>
<div class="codehilite"><pre><span class="sr">//</span> <span class="n">First</span> <span class="n">extract</span> <span class="n">the</span> <span class="n">sources</span>
-<span class="n">tar</span> <span class="o">-</span><span class="n">xvzf</span> <span class="n">celix</span><span class="o">.</span><span class="n">tar</span><span class="o">.</span><span class="n">gz</span>
+<span class="n">svn</span> <span class="n">co</span> <span class="n">https:</span><span class="sr">//s</span><span class="n">vn</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">org</span><span class="sr">/repos/</span><span class="n">asf</span><span class="sr">/incubator/c</span><span class="n">elix</span><span class="sr">/trunk/</span> <span class="n">celix</span>
<span class="n">cd</span> <span class="n">celix</span>
-<span class="sr">//</span> <span class="n">Create</span> <span class="ow">and</span> <span class="n">go</span> <span class="n">to</span> <span class="n">the</span> <span class="n">build</span> <span class="n">directory</span>
+<span class="sr">//</span> <span class="n">Create</span> <span class="ow">and</span> <span class="n">go</span> <span class="n">to</span> <span class="n">the</span> <span class="n">build</span> <span class="n">directory</span> <span class="n">to</span> <span class="n">be</span> <span class="n">able</span> <span class="n">to</span> <span class="k">do</span> <span class="n">an</span> <span class="n">out</span><span class="o">-</span><span class="n">of</span><span class="o">-</span><span class="n">source</span> <span class="n">build</span>
<span class="nb">mkdir</span> <span class="n">build</span>
<span class="n">cd</span> <span class="n">build</span>
@@ -131,39 +158,62 @@ To start building and using Celix these
</pre></div>
-<p>After generating the make files, the sources can be build. There are several build targets to build the libraries, deploy the bundles and package archives.</p>
-<div class="codehilite"><pre><span class="sr">//</span> <span class="n">Build</span> <span class="n">all</span> <span class="n">libraries</span>
-<span class="n">make</span>
-<span class="sr">//</span> <span class="n">Create</span> <span class="n">all</span> <span class="n">bundles</span> <span class="n">in</span> <span class="n">the</span> <span class="s">"bundles"</span> <span class="n">directory</span>
-<span class="n">make</span> <span class="n">bundles</span>
-<span class="sr">//</span> <span class="n">Create</span> <span class="n">all</span> <span class="n">targets</span> <span class="n">in</span> <span class="n">the</span> <span class="s">"deploy"</span> <span class="n">directory</span>
-<span class="n">make</span> <span class="n">deploy</span>
-<span class="sr">//</span> <span class="n">Create</span> <span class="n">archives</span> <span class="n">in</span> <span class="n">the</span> <span class="s">"packages"</span> <span class="n">directory</span>
-<span class="n">make</span> <span class="n">packages</span>
+<p>After generating the make files, the sources can be build. There are several build targets to build the bundles, deploy and package them.
+The following targets are available:
+ // Build all libraries, bundles and packages
+ make all -> build all libraries, bundles and packages</p>
+<div class="codehilite"><pre><span class="sr">//</span> <span class="n">Deploy</span> <span class="n">all</span> <span class="n">deployment</span> <span class="n">targets</span>
+<span class="n">make</span> <span class="n">deploy</span> <span class="o">-></span> <span class="n">deploys</span> <span class="n">all</span> <span class="n">deployments</span>
+
+<span class="sr">//</span> <span class="n">Build</span> <span class="n">a</span> <span class="n">single</span> <span class="n">bundle</span> <span class="p">(</span><span class="ow">and</span> <span class="n">its</span> <span class="n">dependencies</span><span class="p">)</span>
+<span class="n">make</span> <span class="p">{</span><span class="n">bundle_name</span><span class="p">}</span>
+
+<span class="sr">//</span> <span class="n">Deploy</span> <span class="n">a</span> <span class="n">singe</span> <span class="n">deployment</span> <span class="n">target</span> <span class="p">(</span><span class="ow">and</span> <span class="n">its</span> <span class="n">dependencies</span><span class="p">)</span>
+<span class="n">make</span> <span class="n">deploy_</span><span class="p">{</span><span class="n">deployment_name</span><span class="p">}</span> <span class="o">-></span> <span class="n">deploys</span> <span class="n">a</span> <span class="n">single</span> <span class="n">deployment</span> <span class="p">(</span><span class="ow">and</span> <span class="n">dependencies</span><span class="p">)</span>
+
+<span class="sr">//</span> <span class="n">Clean</span> <span class="n">the</span> <span class="n">entire</span> <span class="n">build</span><span class="p">,</span> <span class="n">including</span> <span class="n">deployment</span><span class="p">,</span> <span class="n">bundles</span><span class="p">,</span> <span class="n">libraries</span> <span class="n">etc</span>
+<span class="n">make</span> <span class="n">clean</span> <span class="o">-></span> <span class="n">removes</span> <span class="n">all</span> <span class="n">deployments</span><span class="p">,</span> <span class="n">bundles</span><span class="p">,</span> <span class="n">libraries</span> <span class="n">etc</span>
+
+<span class="sr">//</span> <span class="n">Build</span> <span class="n">a</span> <span class="s">"framework.zip"</span> <span class="n">file</span> <span class="n">with</span> <span class="n">the</span> <span class="n">framework</span><span class="p">,</span> <span class="n">headers</span> <span class="ow">and</span> <span class="n">selected</span> <span class="n">bundles</span>
+<span class="n">make</span> <span class="n">install</span><span class="o">-</span><span class="n">fw</span>
</pre></div>
+<p>Also it is possible to enter sub directories of the build and run the build from there. So when running make from "build/shell" only the shell
+(and dependencies) will be build. This is the same as running "make shell" in the build root.</p>
+<p>Note: The build files are recursive. If a target is build, all required dependencies are build (bundles, libraries etc).</p>
<h2 id="bundles">Bundles</h2>
-<p>In Celix a bundle is a library packed in a zip file. Libraries are created using the standard CMake commands (add_library etc).
-The actual bundle is created using the "bundle" command.
-To export files (eg a header file describing the service), a package is created using the "package" command.</p>
-<div class="codehilite"><pre>add_library(bundleName SHARED sourcefile1 sourcefile2)
-include_directories("<span class="cp">${</span><span class="n">PROJECT_SOURCE_DIR</span><span class="cp">}</span>/includeDir")
-target_link_libraries(bundleName libraryName)
+<p>In Celix a bundle is a library packed in a zip file. A bundle is a top level build target and can be added using the following macro:</p>
+<div class="codehilite"><pre><span class="n">bundle</span><span class="p">(</span><span class="sr"><bundle_name></span>
+ <span class="n">SOURCES</span> <span class="n">source1</span> <span class="n">source2</span> <span class="o">...</span> <span class="n">sourceN</span>
+ <span class="p">[</span><span class="n">DIRECTORIES</span> <span class="n">dir1</span> <span class="n">dir2</span> <span class="o">...</span> <span class="n">dirN</span><span class="p">]</span>
+ <span class="p">[</span><span class="n">FILES</span> <span class="n">file1</span> <span class="n">file2</span> <span class="o">...</span> <span class="n">fileN</span><span class="p">])</span>
+</pre></div>
+
+
+<p>Include directories and link libraries can be defined using the standard CMake commands.
+The given examples are simplified for basic usage, see the CMake documentation for more information and advanced options.</p>
+<div class="codehilite"><pre><span class="n">include_directories</span><span class="p">(</span><span class="n">dir1</span> <span class="n">dir2</span> <span class="o">...</span><span class="p">)</span>
+<span class="n">target_link_libraries</span><span class="p">(</span><span class="sr"><bundle_name></span> <span class="p">[</span><span class="n">lib1</span> <span class="p">[</span><span class="n">lib2</span> <span class="p">[</span><span class="o">...</span><span class="p">]]])</span>
+</pre></div>
+
-bundle(bundleName)
-package(bundleName FILES exportedHeader.h)
+<p>To export files (eg a header file describing the service), a package is created using the "package" command.</p>
+<div class="codehilite"><pre><span class="nb">package</span><span class="p">(</span><span class="sr"><bundle_name></span>
+ <span class="p">[</span><span class="n">DIRECTORIES</span> <span class="n">dir1</span> <span class="n">dir2</span> <span class="o">...</span> <span class="n">dirN</span><span class="p">]</span>
+ <span class="p">[</span><span class="n">FILES</span> <span class="n">file1</span> <span class="n">file2</span> <span class="o">...</span> <span class="n">fileN</span><span class="p">])</span>
</pre></div>
+<p>This can be used to create a package which contains the bundle and additional files (headers etc) needed to use the bundle in different projects.</p>
<h2 id="targets">Targets</h2>
<p>A named target is used to deploy a group of bundles and create a default configuration file.
To create a target the following command is needed:</p>
-<div class="codehilite"><pre><span class="n">deploy</span><span class="p">(</span><span class="s">"targetName"</span> <span class="n">BUNDLES</span> <span class="n">bundle1</span> <span class="n">bundle2</span><span class="p">)</span>
+<div class="codehilite"><pre><span class="n">deploy</span><span class="p">(</span><span class="sr"><target_name></span> <span class="n">BUNDLES</span> <span class="n">bundle1</span> <span class="n">bundle2</span> <span class="o">...</span> <span class="n">bundleN</span><span class="p">)</span>
</pre></div>
-<p>A target is deployed to the build/deploy/{targetName} directory.</p>
+<p>A target is deployed to the build directory where the deploy macro is used. So if in <root>/examples a deploy macro is used, the deployment can be found in <root>/<build_root>/examples.</p>
<h2 id="running">Running</h2>
<p>After building a target, it can be run. To run a target a launcher is needed. This launcher is build as part of the standard Celix build, and is located in build/launcher.
The launcher is a simple executable requiring a configuration file in which required bundles are listed.
@@ -181,6 +231,7 @@ Finally before the launcher can be execu
<p>If the library path is set, the launcher can be started.</p>
<p>{build_root}/launcher/launcher</p>
+<p>Note: for the provided examples a "run.sh" script is generated which takes care of setting up the library path.</p>
</div>
<div id="homeright">
Modified: websites/staging/celix/trunk/content/celix/documentation/design.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/documentation/design.html (original)
+++ websites/staging/celix/trunk/content/celix/documentation/design.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
@@ -128,7 +129,7 @@ So basically the pointer is merely used
<p>Java uses packages for the namespace of classes, and methods are grouped by class. In C there is no alternative. To
prevent name clashes, function names are prefixed with the name of the class defined in the specification.</p>
<p>Function in C:</p>
-<div class="codehilite"><pre><span class="n">SERVICE_REGISTRATION</span> <span class="n">bundleContext_registerService</span><span class="p">(</span><span class="n">BUNDLE_CONTEXT</span> <span class="n">context</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">serviceName</span><span class="p">,</span> <span class="kt">void</span> <span class="o">*</span> <span class="n">svcObj</span><span class="p">,</span> <span class="n">HASHTABLE</span> <span class="n">properties</span><span class="p">);</span>
+<div class="codehilite"><pre><span class="n">celix_status_t</span> <span class="n">bundleContext_registerService</span><span class="p">(</span><span class="n">BUNDLE_CONTEXT</span> <span class="n">context</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">serviceName</span><span class="p">,</span> <span class="kt">void</span> <span class="o">*</span> <span class="n">svcObj</span><span class="p">,</span> <span class="n">HASHTABLE</span> <span class="n">properties</span><span class="p">,</span> <span class="n">SERVICE_REGISTRATION</span> <span class="o">*</span><span class="n">registration</span><span class="p">);</span>
</pre></div>
@@ -137,6 +138,7 @@ prevent name clashes, function names are
</pre></div>
+<p>More details about the mapping from Java to C can be found at <a href="/celix/documentation/mapping.html">Mapping</a></p>
<h2 id="imported_and_exported_packages">Imported and Exported Packages</h2>
<p>The OSGi Specification uses packages for importing and exporting service interfaces and additional types. As explained
before, C does not have packages, so it is not possible to export packages. Instead, services are exported and imported.
@@ -146,20 +148,8 @@ available, they can be used.
So it is up to the implementer of a service to define the struct and public types separately from the inner types of the
component. The public definitions can be published in a header file.</p>
<h2 id="exception_handling">Exception Handling</h2>
-<p>OSGi uses exceptions to report errors and problems. To be able to handle this in C there are two options:</p>
-<ul>
-<li>
-<p>Return a status</p>
-<p>This requires that each method must return an integer which indicates the state. For returned pointers/values (OUT)
-call-by-reference must be used.</p>
-</li>
-<li>
-<p>Use an exception handling interface for C</p>
-<p>There are several exception handling solutions available for C. They all introduce a try/catch mechanism. This makes
-it possible to follow the OSGi spec more closely, without letting each function explicitly return a state.
-(for example http://www.nicemice.net/cexcept/)</p>
-</li>
-</ul>
+<p>OSGi uses exceptions to report errors and problems. Celix return a status from every call. This requires that each method
+must return an integer which indicates the state. For returned pointers/values (OUT) call-by-reference must be used.</p>
</div>
<div id="homeright">
Modified: websites/staging/celix/trunk/content/celix/documentation/examples.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/documentation/examples.html (original)
+++ websites/staging/celix/trunk/content/celix/documentation/examples.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Added: websites/staging/celix/trunk/content/celix/documentation/mapping.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/documentation/mapping.html (added)
+++ websites/staging/celix/trunk/content/celix/documentation/mapping.html Thu Nov 17 13:08:04 2011
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ 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.
+-->
+
+ <link rel="stylesheet" type="text/css"
+ href="http://yui.yahooapis.com/2.8.1/build/reset-fonts-grids/reset-fonts-grids.css">
+ <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/base/base-min.css">
+ <link rel="stylesheet" type="text/css" href="/celix/css/superfish.css" media="screen">
+ <!-- link rel="stylesheet" type="text/css" href="/celix/css/BreadCrumb.css" media="screen" -->
+ <link rel="stylesheet" type="text/css" href="/celix/css/celix.css">
+ <link rel="stylesheet" type="text/css" href="/celix/css/pygments.css">
+
+
+ <title>Apache Celix - Mapping</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
+ <script type="text/javascript" src="/celix/js/jquery.gradient.js"></script>
+ <script type="text/javascript" src="/celix/js/jquery.dimensions.js"></script>
+ <script type="text/javascript" src="/celix/js/jquery.hoverIntent.js"></script>
+ <script type="text/javascript" src="/celix/js/superfish.js"></script>
+ <script type="text/javascript" src="/celix/js/supersubs.js"></script>
+ <!-- script type="text/javascript" src="/celix/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript" src="/celix/js/jquery.jBreadCrumb.1.1.js"></script-->
+ <script type="text/javascript"><!--
+ // initialize plugins
+ jQuery(function() {
+ jQuery('#navbar ul:first').addClass('sf-menu');
+ //Nav bar: Supersubs dropdown menus
+ jQuery('#navbar ul:first').supersubs({extraWidth: 1}).superfish({animation:{opacity:0.97,height:'show'}});
+ });
+
+ //jQuery(document).ready(function() {
+ // jQuery("#breadCrumb").jBreadCrumb();
+ // })
+ --></script>
+</head>
+
+<body>
+ <div id="page">
+ <div id="header">
+ <a href="/celix/index.html"><img id="headerimage" src="/celix/images/celix.png" alt="Apache Celix"
+ height="130px"></a>
+ <div id="navbar">
+ <ul>
+<li><a href="/celix/index.html">Home</a></li>
+<li><a href="/celix/celix.html">About</a><ul>
+<li><a href="/celix/celix.html">Celix</a></li>
+<li><a href="/celix/background.html">Background</a></li>
+</ul>
+</li>
+<li><a href="/celix/documentation.html">Documentation</a><ul>
+<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
+<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
+<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
+<li><a href="/celix/documentation/examples.html">Examples</a><ul>
+<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="/celix/download.html">Download</a></li>
+<li><a href="/celix/community/community.html">Community</a><ul>
+<li><a href="/celix/community/contributing/contributing.html">Contributing</a></li>
+<li><a href="/celix/community/boardreports/boardreports.html">Board Reports</a></li>
+</ul>
+</li>
+<li><a href="/celix/support/support.html">Support</a><ul>
+<li><a href="/celix/support/mailinglist.html">Mailing List</a></li>
+<li><a href="/celix/support/issuetracking.html">Issue Tracking</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+ <!-- div id="breadCrumbHolder" class="module">
+ <div id="breadCrumb" class="breadCrumb module">
+ <ul>
+
+ </ul>
+ </div>
+ </div-->
+ </div>
+
+ <div id="center">
+ <div id="main">
+ <div id="homecenter">
+ <div id="homeleft">
+ <h1 class="title">Mapping</h1>
+ <p>To be able to follow the OSGi specification, a standard mapping from C to Java is defined. This mapping
+takes care of how instances, parameters, return values and error codes are used.</p>
+<h2 id="example">Example</h2>
+<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="codehilite"><pre><span class="n">celix_status_t</span> <span class="n">bundleContext_getServiceReferences</span><span class="p">(</span><span class="n">BUNDLE_CONTEXT</span> <span class="n">context</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">serviceName</span><span class="p">,</span> <span class="kt">char</span> <span class="o">*</span> <span class="n">filter</span><span class="p">,</span> <span class="n">ARRAY_LIST</span> <span class="o">*</span><span class="n">service_references</span><span class="p">)</span>
+
+<span class="o">:::</span><span class="n">java</span>
+<span class="n">public</span> <span class="n">ServiceReference</span><span class="p">[]</span> <span class="n">getServiceReferences</span><span class="p">(</span><span class="n">String</span> <span class="n">clazz</span><span class="p">,</span> <span class="n">String</span> <span class="n">filter</span><span class="p">)</span> <span class="n">throws</span> <span class="n">InvalidSyntaxException</span>
+</pre></div>
+
+
+<h2 id="template">Template</h2>
+<p>Using the provided example, the following template can be extracted:</p>
+<div class="codehilite"><pre><span class="cm">/**</span>
+<span class="cm"> * celix_status_t: return type of the status code</span>
+<span class="cm"> * </span>
+<span class="cm"> * typeName: name of the object/type this function is part of</span>
+<span class="cm"> * functionName: the name of the function</span>
+<span class="cm"> * </span>
+<span class="cm"> * typeName_t: The actual instance to "invoke" this function on</span>
+<span class="cm"> * pool: optional pool on which the output is allocated</span>
+<span class="cm"> * parameters: default function parameters</span>
+<span class="cm"> * output parameters: the output which the caller can use</span>
+<span class="cm"> */</span>
+<span class="n">celix_status_t</span> <span class="n">typeName_functionName</span><span class="p">([</span><span class="n">typeName_t</span> <span class="n">instance</span><span class="p">,</span> <span class="p">][</span><span class="n">apr_pool_t</span> <span class="o">*</span><span class="n">pool</span><span class="p">,</span> <span class="p">][</span><span class="n">parameters</span><span class="p">,</span> <span class="p">][</span><span class="n">output</span> <span class="n">parameters</span><span class="p">]);</span>
+</pre></div>
+
+
+<h2 id="details">Details</h2>
+<p>To fully explain the mapping, the following items will be detailed:</p>
+<ul>
+<li>Instance parameter</li>
+<li>Error codes</li>
+<li>Output parameters</li>
+<li>Memory pools</li>
+</ul>
+<h3 id="instances">Instances</h3>
+<p>When using Java, methods are related to an instance of a type. So for example, when the "getServiceReferences" method is used,
+it is always executed on an instance of BundleContext.
+When using C, functions are not related to any type, and as such, no instance information is available. To make this possible
+in Celix a pointer to the needed instance is always passed as first argument. The only exception are the "create" functions, they
+are used to create a new instance.</p>
+<p>Furthermore, the instance typename is used as part of the function name, see "design.html" for more information.</p>
+<h3 id="error_codes">Error codes</h3>
+<p>The OSGi specification uses Java Exceptions for error handling. Even though there are Exceptions-like solutions for C, Celix uses
+the simpler approach. Every method in Celix returns an status code (celix_status_t), this code can be used for error handling.</p>
+<h3 id="output_parameters">Output parameters</h3>
+<p>Since the return value is always used for the status code output parameters are used to get a possible result from a function.
+Celix uses pass-by-reference for this, the uses has to supply a pointer to the function to get the results. Using this mechanism it is
+also possible to use multiple output parameters.
+Celix always uses the last parameter(s) for output, and the caller has to NULL-initialize the result field.</p>
+<h3 id="memory_pools">Memory pools</h3>
+<p>Celix uses APR memory pools for allocation. In the case a functions result has to be allocated to the caller its own pool, the pool has
+to be supplied as an parameter. Note: Not all of Celix' API have been updated to use APR (and memory pools), this is a work in progress.</p>
+ </div>
+ <div id="homeright">
+
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="footer">
+ <div class="copyright">
+ <p>
+ Copyright © 2011 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 and the Apache feather logo are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</div>
+</body>
+</html>
Modified: websites/staging/celix/trunk/content/celix/documentation/memorypools.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/documentation/memorypools.html (original)
+++ websites/staging/celix/trunk/content/celix/documentation/memorypools.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/download-links.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/download-links.html (original)
+++ websites/staging/celix/trunk/content/celix/download-links.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/download.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/download.html (original)
+++ websites/staging/celix/trunk/content/celix/download.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/examples/helloworld-links.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/examples/helloworld-links.html (original)
+++ websites/staging/celix/trunk/content/celix/examples/helloworld-links.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/examples/helloworld.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/examples/helloworld.html (original)
+++ websites/staging/celix/trunk/content/celix/examples/helloworld.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/index.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/index.html (original)
+++ websites/staging/celix/trunk/content/celix/index.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/links.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/links.html (original)
+++ websites/staging/celix/trunk/content/celix/links.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/support/issuetracking.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/support/issuetracking.html (original)
+++ websites/staging/celix/trunk/content/celix/support/issuetracking.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/support/links.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/support/links.html (original)
+++ websites/staging/celix/trunk/content/celix/support/links.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/support/mailinglist.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/support/mailinglist.html (original)
+++ websites/staging/celix/trunk/content/celix/support/mailinglist.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>
Modified: websites/staging/celix/trunk/content/celix/support/support.html
==============================================================================
--- websites/staging/celix/trunk/content/celix/support/support.html (original)
+++ websites/staging/celix/trunk/content/celix/support/support.html Thu Nov 17 13:08:04 2011
@@ -69,6 +69,7 @@
<li><a href="/celix/documentation.html">Documentation</a><ul>
<li><a href="/celix/documentation/buildingandrunning.html">Building and Running</a></li>
<li><a href="/celix/documentation/design.html">Design</a></li>
+<li><a href="/celix/documentation/mapping.html">Mapping</a></li>
<li><a href="/celix/documentation/memorypools.html">Memory Pools</a></li>
<li><a href="/celix/documentation/examples.html">Examples</a><ul>
<li><a href="/celix/examples/helloworld.html">Hello World Example</a></li>