You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by bu...@apache.org on 2015/09/01 08:05:20 UTC

svn commit: r963800 [4/16] - in /websites/staging/felix/trunk/content: ./ documentation/ documentation/community/ documentation/development/ documentation/faqs/ documentation/subprojects/ documentation/subprojects/apache-felix-commons/ documentation/su...

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-framework/apache-felix-framework-osgi-r4-3-ct-results.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-framework/apache-felix-framework-osgi-r4-3-ct-results.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-framework/apache-felix-framework-osgi-r4-3-ct-results.html Tue Sep  1 06:05:17 2015
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><a href="/news.html">news</a>  <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><a href="/news.html">news</a>  <br />
 <a href="/license.html">license</a>  <br />
 <a href="/downloads.cgi">downloads</a>  <br />
 <a href="/documentation.html">documentation</a>  <br />
@@ -66,7 +77,18 @@
       </div>
 
       <h1>Apache Felix Framework OSGi R4.3 CT Results</h1>
-      <h1 id="overview">Overview</h1>
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="overview">Overview<a class="headerlink" href="#overview" title="Permanent link">&para;</a></h1>
 <p>The following results are for the OSGi R4.3 core framework TCK test suites:</p>
 <ul>
 <li><em>org.osgi.test.cases.framework</em> - Tests framework functionality.
@@ -88,39 +110,39 @@
 <li><em>org.osgi.test.cases.condpermadmin</em> - Test Conditional Permission Admin implementation.</li>
 <li><em>org.osgi.test.cases.permissionadmin</em> - Test Permission Admin implementation.</li>
 </ul>
-<h1 id="results">Results</h1>
+<h1 id="results">Results<a class="headerlink" href="#results" title="Permanent link">&para;</a></h1>
 <p><em>Results from: September 26th, 2011</em></p>
 <p>The results for the test suites are as follows:</p>
 <ul>
 <li><em>org.osgi.test.cases.framework</em>
 <strong> <em>activationpolicy</em>
 <strong><em> PASSED
-<em><em> </em>classloading</em></em></strong> PASSED</strong> <em>classpath</em>
+</em><em> </em>classloading*</strong>* PASSED</strong> <em>classpath</em>
 <strong><em> PASSED
-<em><em> </em>context</em></em></strong> PASSED
+</em><em> </em>context*</strong><em> PASSED
 <strong> <em>div</em>
 <strong><em> PASSED
-<em><em> </em>dynpkgimport</em></em></strong> PASSED</strong> <em>filter</em>
+</em><em> </em>dynpkgimport*</strong>* PASSED</strong> </em>filter<em>
 <strong><em> PASSED
-<em><em> </em>fragments</em></em></strong> PASSED
+</em><em> </em>fragments*</strong></em> PASSED
 <strong> <em>frameworkutil</em>
 <strong><em> PASSED
-<em><em> </em>hooks.bundle</em></em></strong> PASSED</strong> <em>hooks.resolver</em>
+</em><em> </em>hooks.bundle*</strong>* PASSED</strong> <em>hooks.resolver</em>
 <strong><em> PASSED
-<em><em> </em>hooks.service</em></em></strong> PASSED
+</em><em> </em>hooks.service*</strong><em> PASSED
 <strong> <em>hooks.weaving</em>
 <strong><em> PASSED
-<em><em> </em>lifecycle</em></em></strong> PASSED</strong> <em>permissions</em>
+</em><em> </em>lifecycle*</strong>* PASSED</strong> </em>permissions<em>
 <strong><em> PASSED
-<em><em> </em>resources</em></em></strong> PASSED
+</em><em> </em>resources*</strong></em> PASSED
 <strong> <em>service</em>
 <strong><em> PASSED
-<em><em> </em>signature</em></em></strong> PASSED</strong> <em>startlevel</em>
+</em><em> </em>signature*</strong>* PASSED</strong> <em>startlevel</em>
 <strong><em> PASSED
-<em><em> </em>syncbundlelistener</em></em></strong> PASSED
-<em><em> </em>version</em>
+</em><em> </em>syncbundlelistener*</strong><em> PASSED
+</em><em> </em>version<em>
 <strong><em> PASSED
-<em><em> </em>wiring</em></em></strong> PASSED</li>
+</em><em> </em>wiring*</strong></em> PASSED</li>
 <li><em>org.osgi.test.cases.framework.secure</em>
 ** PASSED</li>
 <li><em>org.osgi.test.cases.framework.launch</em>
@@ -134,10 +156,10 @@
 <li><em>org.osgi.test.cases.permissionadmin</em>
 ** PASSED</li>
 </ul>
-<h1 id="certification">Certification</h1>
+<h1 id="certification">Certification<a class="headerlink" href="#certification" title="Permanent link">&para;</a></h1>
 <p>Framework 4.0 plus Framework Security Provider 2.0 pass the OSGi R4.3 CTs, but have <em>not</em> been certified compliant.</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1422427 by fmeschbe on Sun, 16 Dec 2012 00:36:51 +0000
+        Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-gogo.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-gogo.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-gogo.html Tue Sep  1 06:05:17 2015
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><a href="/news.html">news</a>  <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><a href="/news.html">news</a>  <br />
 <a href="/license.html">license</a>  <br />
 <a href="/downloads.cgi">downloads</a>  <br />
 <a href="/documentation.html">documentation</a>  <br />
@@ -66,9 +77,20 @@
       </div>
 
       <h1>Apache Felix Gogo</h1>
-      <h1 id="apache-felix-gogo">Apache Felix Gogo</h1>
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="apache-felix-gogo">Apache Felix Gogo<a class="headerlink" href="#apache-felix-gogo" title="Permanent link">&para;</a></h1>
 <p>Apache Felix Gogo is a subproject of Apache Felix implementing the OSGi RFC 147, which describes a standard shell for OSGi-based environments. See <a href="/documentation/subprojects/apache-felix-gogo/rfc-147-overview.html">RFC 147 Overview</a> for more information.</p>
-<h2 id="using-gogo-with-the-felix-framework">Using Gogo with the Felix Framework</h2>
+<h2 id="using-gogo-with-the-felix-framework">Using Gogo with the Felix Framework<a class="headerlink" href="#using-gogo-with-the-felix-framework" title="Permanent link">&para;</a></h2>
 <p>The Gogo subproject consists of three bundles:</p>
 <ol>
 <li><em>runtime</em> - implements the core command processing functionality.</li>
@@ -95,7 +117,7 @@ $ <span class="n">java</span> <span clas
 
 <p>Gogo shell integration in the framework distribution is also discussed in the <a href="/documentation/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.html">framework usage document</a></p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1422427 by fmeschbe on Sun, 16 Dec 2012 00:36:51 +0000
+        Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-gogo/rfc-147-overview.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-gogo/rfc-147-overview.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-gogo/rfc-147-overview.html Tue Sep  1 06:05:17 2015
@@ -39,7 +39,18 @@
     </div>
     
     <div class="menu"> 
-      <p><a href="/news.html">news</a>  <br />
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><a href="/news.html">news</a>  <br />
 <a href="/license.html">license</a>  <br />
 <a href="/downloads.cgi">downloads</a>  <br />
 <a href="/documentation.html">documentation</a>  <br />
@@ -66,7 +77,18 @@
       </div>
 
       <h1>RFC 147 Overview</h1>
-      <h1 id="rfc-147-overview">RFC-147 Overview</h1>
+      <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="rfc-147-overview">RFC-147 Overview<a class="headerlink" href="#rfc-147-overview" title="Permanent link">&para;</a></h1>
 <p>The RFC-147 draft is not yet publicly available. It used to be called RFC-132, which can be found in an <a href="http://www.osgi.org/download/osgi-4.2-early-draft.pdf">early specification draft</a></p>
 <p>This is an overview of its main features:</p>
 <div class="toc">
@@ -78,7 +100,7 @@
 </li>
 </ul>
 </div>
-<h2 id="standard-way-to-implement-and-run-commands-for-any-osgi-42-framework">Standard way to implement and run commands for any OSGi 4.2 framework</h2>
+<h2 id="standard-way-to-implement-and-run-commands-for-any-osgi-42-framework">Standard way to implement and run commands for any OSGi 4.2 framework<a class="headerlink" href="#standard-way-to-implement-and-run-commands-for-any-osgi-42-framework" title="Permanent link">&para;</a></h2>
 <p>Commands are registered via service attributes, you don't have to register a specific service. This allows commands to be registered by existing services, just by adding the new attributes:</p>
 <p>{code:template=java}
 Dictionary<String, Object> dict = new Hashtable<String, Object>();
@@ -209,7 +231,7 @@ public interface org.apache.felix.servic
 </pre></div>
 
 
-<h2 id="normal-commands-can-provide-control-primitives">Normal commands can provide control primitives.</h2>
+<h2 id="normal-commands-can-provide-control-primitives">Normal commands can provide control primitives.<a class="headerlink" href="#normal-commands-can-provide-control-primitives" title="Permanent link">&para;</a></h2>
 <p>{code:template=java}public void each(CommandSession session, Collection<Object> list, Function, closure) throws Exception {
     for (Object x : list) {
         closure.execute(session, null);
@@ -229,7 +251,7 @@ public interface org.apache.felix.servic
 <span class="p">{</span><span class="n">note</span><span class="p">}</span>
 </pre></div>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1422427 by fmeschbe on Sun, 16 Dec 2012 00:36:51 +0000
+        Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo.html Tue Sep  1 06:05:17 2015
@@ -171,7 +171,18 @@
 
     <div class="container">
         <div class="content">
-            <header class="jumbotron subhead">
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<header class="jumbotron subhead">
     <div class="row">
     <div class="span6">
         <h1>iPOJO</h1>
@@ -247,8 +258,19 @@ current iPOJO snapshot: 1.12.2-SNAPSHOT
 
 <p><hr/>
 <section id="section-news"></p>
-<h1 id="news">News</h1>
-<p><p><em>iPOJO Manipulator (1.12.1) and Runtime (1.12.1)</em> are now available in the <a href="http://felix.apache.org/downloads.cgi">downloads</a> section and from the Maven repository. (December 24, 2014)</p>
+<h1 id="news">News<a class="headerlink" href="#news" title="Permanent link">&para;</a></h1>
+<p><style type="text/css">
+/<em> The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css </em>/
+/<em>
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ </em>/
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover &gt; .headerlink, h3:hover &gt; .headerlink, h1:hover &gt; .headerlink, h6:hover &gt; .headerlink, h4:hover &gt; .headerlink, h5:hover &gt; .headerlink, dt:hover &gt; .elementid-permalink { visibility: visible }</style>
+<p><em>iPOJO Manipulator (1.12.1) and Runtime (1.12.1)</em> are now available in the <a href="http://felix.apache.org/downloads.cgi">downloads</a> section and from the Maven repository. (December 24, 2014)</p>
 <i class="icon-chevron-right"></i> <a href="/documentation/subprojects/apache-felix-ipojo/ipojo-news.html">all news...</a>
 </section></p>
         </div>
@@ -265,7 +287,7 @@ current iPOJO snapshot: 1.12.2-SNAPSHOT
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1575940 by clement on Mon, 10 Mar 2014 13:42:23 +0000
+                Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
                 </div>
             </div>
         </footer>

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/dive-into-the-ipojo-manipulation-depths.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/dive-into-the-ipojo-manipulation-depths.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/dive-into-the-ipojo-manipulation-depths.html Tue Sep  1 06:05:17 2015
@@ -171,7 +171,18 @@
 
     <div class="container">
         <div class="content">
-            <h1 id="dive-into-the-ipojo-manipulation-depths">Dive into the iPOJO Manipulation depths</h1>
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="dive-into-the-ipojo-manipulation-depths">Dive into the iPOJO Manipulation depths<a class="headerlink" href="#dive-into-the-ipojo-manipulation-depths" title="Permanent link">&para;</a></h1>
 <p>iPOJO (primitive) components are managed using byte code manipulation. Don't be afraid, you don't have to be fluent in byte code to understand components. This page explains how the manipulation works and how your class file is transformed. This manipulation takes care to <strong>NOT</strong> change the behavior of the manipulated class.</p>
 <div class="toc">
 <ul>
@@ -193,7 +204,7 @@
 </li>
 </ul>
 </div>
-<h2 id="why-manipulate-bundle-byte-code">Why manipulate bundle byte code?</h2>
+<h2 id="why-manipulate-bundle-byte-code">Why manipulate bundle byte code?<a class="headerlink" href="#why-manipulate-bundle-byte-code" title="Permanent link">&para;</a></h2>
 <p>The iPOJO byte code manipulation goals are two-fold:</p>
 <ul>
 <li>Preparing classes to be managed at run time and</li>
@@ -203,7 +214,7 @@
 <p>iPOJO follows a container approach and more specially employs <a href="http://en.wikipedia.org/wiki/Inversion_of_control">inversion of control</a> and [dependency injections|http://en.wikipedia.org/wiki/Dependency_injection]. The iPOJO container manages component instantiation and injection (service, properties and so on...). To inject values and supervise the execution inside component implementation class, iPOJO uses an interception and injection framework. To facilitate this, iPOJO uses class byte code manipulation. </p>
 <p><img src="injection.png"></p>
 <p>Besides manipulating byte code, iPOJO translates the XML or annotation metadata to an internal syntax. This eliminates any run-time dependencies on the particular metadata format. </p>
-<h2 id="how-bundle-byte-code-is-manipulated">How bundle byte code is manipulated</h2>
+<h2 id="how-bundle-byte-code-is-manipulated">How bundle byte code is manipulated<a class="headerlink" href="#how-bundle-byte-code-is-manipulated" title="Permanent link">&para;</a></h2>
 <p>For each class used as a component implementation class, the manipulation process prepares the class to be managed at run time. This means providing the ability to intercept methods and field accesses. This manipulation is independent of the component metadata. A component class will always result in the same final manipulated class, regardless of its metadata. This means it is possible to use a class as the implementation of several component types. As illustrated in the following image, the manipulated class instance interacts with an instance manager that delegates to handlers. The metadata impacts the set of handlers; it does not impact the manipulated class, nor the instance manager (which is the iPOJO container foundation).</p>
 <p><img src="principles.png"></p>
 <p>The following image explains what happens during the manipulation.</p>
@@ -212,7 +223,7 @@
 <p>For each field, getter and setter methods are generated. They are called <code>\*\*get$FIELD*NAME</code> and <code>\*\*set$FIELD*NAME</code>. A boolean field is injected named <code>\*\*F$FIELD_NAME</code>. This flag enables or disables the container delegation for this field. When delegation is disabled, the field is managed as a regular field: getter and setter methods just return and set the field value. When delegation is enabled, the field never receives a value, the container stores the field value. The getter method asks the container to get the value. The setter method asks to the container to update the stored value. All the field accesses (except ones from specific constructors) of the class are adapted to call the getter or the setter method.</p>
 <p>In order to intercept methods, each method is substituted by a generated method. Each method is renamed to <code>\*\*METHOD_NAME</code> and becomes private. The original method is replaced by iPOJO code. This code allows method interception. As with fields, method delegation is enabled or disabled by an injected boolean field. If the method is not to be intercepted, the iPOJO-generated method just calls the original method. Otherwise, the iPOJO-generated method notifies the container of method entries, exits, and potential errors.</p>
 <p>Finally, the constructors are also manipulated. Empty constructors and constructors receiving a <code>BundleContext</code> object are manipulated as others methods. However, they receive another argument: the <code>InstanceManager</code>. This instance manager is set just after the call to the super constructor. While setting the instance manager, all flags enabling/disabling delegation are set. This allows the component to use injected values inside the constructor code itself. Constructors receiving other kind of arguments are not manipulated, and so can be used to create non-managed instance. In this case, fields won't be delegated, and methods won't be intercepted.</p>
-<h3 id="the-annotation-special-case">The annotation special case</h3>
+<h3 id="the-annotation-special-case">The annotation special case<a class="headerlink" href="#the-annotation-special-case" title="Permanent link">&para;</a></h3>
 <p>The manipulation has a special behavior when a visible (at run time) method or constructor annotation is detected. As the methods are replaced by private methods, the annotations are moved to the iPOJO-generated methods, such as in:</p>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">MyClass</span> <span class="o">{</span>
   <span class="nd">@MyAnnotation</span>
@@ -235,16 +246,16 @@
 </pre></div>
 
 
-<h2 id="avoiding-xml-at-run-time">Avoiding XML at run time</h2>
+<h2 id="avoiding-xml-at-run-time">Avoiding XML at run time<a class="headerlink" href="#avoiding-xml-at-run-time" title="Permanent link">&para;</a></h2>
 <p>iPOJO does not use XML or annotations at run time. The manipulation process replaces the XML or annotation metadata by an internal format (between LISP and XML). The XML or annotation metadata are translated and written into the bundle manifest. Additionally, various type information in the component metadata is computed during the byte code manipulation phase to avoid having to use reflection at run time (which would require loading the class) to get class elements (such as available fields, methods, implemented interfaces, and so on).</p>
 <p>If you want to see how XML or annotation metadata are <em>tortured</em>, just open the manifest file of a manipulated bundle, and look at the <code>iPOJO-COMPONENTS</code> entry (and appreciate the Lisp-like syntax :-))...</p>
-<h2 id="extending-manipulator">Extending manipulator</h2>
+<h2 id="extending-manipulator">Extending manipulator<a class="headerlink" href="#extending-manipulator" title="Permanent link">&para;</a></h2>
 <p>Annotations are more and more used to provide a simple and elegant programming model. iPOJO had supported generic annotations (<code>@Component</code>, <code>@Handler</code>, ...) for a long time.
 But supporting your own annotations and bind them to a particular handler in iPOJO was awkward (naming conventions, id and parent resolution, ...).</p>
 <p>For example, how to re-use an external annotation (let's say <code>@javax.inject.Inject</code>) that do not respect the iPOJO naming convention ?
 Or how can you contribute information to the component's metadata when an annotation is found ?</p>
 <p>The solution is to extend the manipulator with new annotation' support.</p>
-<h3 id="annotation-binding-module">Annotation Binding Module</h3>
+<h3 id="annotation-binding-module">Annotation Binding Module<a class="headerlink" href="#annotation-binding-module" title="Permanent link">&para;</a></h3>
 <p>That can be done through the implementation of a <code>Module</code>:</p>
 <div class="codehilite"><pre><span class="kn">import</span> <span class="nn">org.apache.felix.ipojo.manipulator.spi.AbsBindingModule</span><span class="o">;</span>
 <span class="kn">import</span> <span class="nn">org.apache.felix.ipojo.manipulator.spi.AnnotationVisitorFactory</span><span class="o">;</span>
@@ -269,7 +280,7 @@ Or how can you contribute information to
 <p>The <code>AbsBindingModule.configure()</code> method has to be implemented by each new Module. It contains the annotation binding specification(s).
 An annotation binding simply declares what to do when a given annotation is found.</p>
 <p>In the example case, when the <code>@Hello</code> annotation is encountered in a class' bytecode, the manipulator will find an annotation binding for <code>@Hello</code> and call it's <code>AnnotationVisitorFactory.newAnnotationVisitor()</code> method to obtain a dedicated <code>AnnotationVisitor</code> (here <code>HelloVisitor</code>).</p>
-<h3 id="visitors">Visitors</h3>
+<h3 id="visitors">Visitors<a class="headerlink" href="#visitors" title="Permanent link">&para;</a></h3>
 <p>Here are the <code>@Hello</code> annotation and <code>HelloVisitor</code> class for better understanding:</p>
 <div class="codehilite"><pre><span class="nd">@Target</span><span class="o">(</span><span class="n">ElementType</span><span class="o">.</span><span class="na">TYPE</span><span class="o">)</span>
 <span class="kd">public</span> <span class="nd">@interface</span> <span class="n">Hello</span> <span class="o">{</span>
@@ -312,7 +323,7 @@ An annotation binding simply declares wh
 <p>The <code>HelloVisitor</code> is an ASM <code>AnnotationVisitor</code>. <code>AnnotationVisitor.visit(String, Object)</code> is called for each declared attribute of the annotation. Declared means that if an attribute is non-mandatory and was not part of the annotation declaration, it will not be visible by the <code>AnnotationVisitor</code>. Each attribute is visited only once.
 In HelloVisitor we only react to the <code>name</code> attribute, and store its value as an Attribute in the Element.</p>
 <p>Finally, in <code>visitEnd()</code>, we contribute our Element to the workbench.</p>
-<h3 id="declaring-the-module">Declaring the Module</h3>
+<h3 id="declaring-the-module">Declaring the Module<a class="headerlink" href="#declaring-the-module" title="Permanent link">&para;</a></h3>
 <p>Last work to do: declare the new <code>Module</code> in a <code>META-INF/services/org.apache.felix.ipojo.manipulator.spi.Module</code> file:</p>
 <div class="codehilite"><pre>org.apache.felix.ipojo.sample.SampleBindingModule
 </pre></div>
@@ -321,7 +332,7 @@ In HelloVisitor we only react to the <co
 <p>At this point, we can use the jar file that contains the extension within the manipulator.
 In maven, it's as simple as adding a plugin dependency to the <code>maven-bundle-plugin</code> (in addition of the <code>bnd-ipojo-plugin</code>).
 In ant, It's probably a matter of changing the classpath.</p>
-<h3 id="finally">Finally</h3>
+<h3 id="finally">Finally<a class="headerlink" href="#finally" title="Permanent link">&para;</a></h3>
 <p>At the end, all this mechanics will help you to simply your code from:</p>
 <div class="codehilite"><pre><span class="nt">&lt;ipojo</span> <span class="na">xmlns:s=</span><span class="s">&quot;org.apache.felix.ipojo.sample&quot;</span><span class="nt">&gt;</span>
   <span class="nt">&lt;component</span> <span class="err">...</span><span class="nt">&gt;</span>
@@ -359,7 +370,7 @@ In ant, It's probably a matter of changi
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1531524 by clement on Sat, 12 Oct 2013 09:57:48 +0000
+                Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
                 </div>
             </div>
         </footer>

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-use-ipojo-manipulation-metadata.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-use-ipojo-manipulation-metadata.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-use-ipojo-manipulation-metadata.html Tue Sep  1 06:05:17 2015
@@ -171,7 +171,18 @@
 
     <div class="container">
         <div class="content">
-            <h1 id="how-to-use-ipojo-manipulation-metadata">How to use iPOJO Manipulation Metadata</h1>
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="how-to-use-ipojo-manipulation-metadata">How to use iPOJO Manipulation Metadata<a class="headerlink" href="#how-to-use-ipojo-manipulation-metadata" title="Permanent link">&para;</a></h1>
 <p><em>During the manipulation process, iPOJO gathers information about the manipulated classes. These metadata are stored inside the bundle manifest and are used to avoid reflection on the manipulated class. By using these metadata, your handler can check that the implementation class contains required fields, methods, check implemented interfaces.</em></p>
 <div class="toc">
 <ul>
@@ -185,7 +196,7 @@
 </li>
 </ul>
 </div>
-<h2 id="contained-information">Contained information</h2>
+<h2 id="contained-information">Contained information<a class="headerlink" href="#contained-information" title="Permanent link">&para;</a></h2>
 <p>Manipulation metadata contains:</p>
 <ul>
 <li>Interfaces implemented by component type implementation</li>
@@ -193,7 +204,7 @@
 <li>Methods of the component type implementation</li>
 </ul>
 <p>Field Metadata contains field name and type. Method Metadata contains method name, the sorted list of argument types and return type.</p>
-<h2 id="building-manipulation-metadata">Building Manipulation Metadata</h2>
+<h2 id="building-manipulation-metadata">Building Manipulation Metadata<a class="headerlink" href="#building-manipulation-metadata" title="Permanent link">&para;</a></h2>
 <p>Manipulation (i.e. PojoMetadata) can be obtained form the factory of a (primitive) component type such as in:</p>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="kt">void</span> <span class="nf">configure</span><span class="o">(</span><span class="n">InstanceManager</span> <span class="n">im</span><span class="o">,</span> <span class="n">Element</span> <span class="n">metadata</span><span class="o">,</span> <span class="n">Dictionary</span> <span class="n">configuration</span><span class="o">)</span>  <span class="o">{</span>
     <span class="o">...</span>
@@ -203,7 +214,7 @@
 </pre></div>
 
 
-<h2 id="getting-metadata">Getting Metadata</h2>
+<h2 id="getting-metadata">Getting Metadata<a class="headerlink" href="#getting-metadata" title="Permanent link">&para;</a></h2>
 <p>From the manipulation metadata, you can query manipulation information by using following methods:</p>
 <ul>
 <li><code>MethodMetadata[] getMethods()</code> : Get all methods</li>
@@ -217,7 +228,7 @@
 <li><code>MethodMetadata getMethod(String name, String[] types)</code> : Look for the method with the given name and argument type list. Returns null if not found.</li>
 </ul>
 <p>From a Field Metadata object, you can obtain the field name, type, and 'reflective' type. From a Method Metadata object, you can obtain the method name, the argument type array, and the returned type ('void' for void method).</p>
-<h2 id="creating-callback-from-manipulation-metadata">Creating Callback from Manipulation Metadata</h2>
+<h2 id="creating-callback-from-manipulation-metadata">Creating Callback from Manipulation Metadata<a class="headerlink" href="#creating-callback-from-manipulation-metadata" title="Permanent link">&para;</a></h2>
 <p>You often need to invoke method on the POJO objects. iPOJO provides an helper class, named Callback, allow you to manage this invocation easily. You can obtain a Callback object from the Method Metadata. By this way, you are sure that the method exists in the implementation. To create the callback, use the following code:</p>
 <div class="codehilite"><pre><span class="n">PojoMetadata</span> <span class="n">manip</span> <span class="o">=</span> <span class="n">getFactory</span><span class="o">().</span><span class="na">getPojoMetadata</span><span class="o">();</span>
 <span class="n">MethodMetadata</span> <span class="n">method</span> <span class="o">=</span> <span class="n">manip</span><span class="o">.</span><span class="na">getMethod</span><span class="o">(</span><span class="s">&quot;your_method_name&quot;</span><span class="o">);</span>
@@ -232,7 +243,7 @@
 </pre></div>
 
 
-<h2 id="types-reflective-types">Types &amp; Reflective Types</h2>
+<h2 id="types-reflective-types">Types &amp; Reflective Types<a class="headerlink" href="#types-reflective-types" title="Permanent link">&para;</a></h2>
 <p>When querying field (or a method argument) type, the API returns following code identifiers:</p>
 <ul>
 <li>For primitive types : int, long, short, byte, char, double, float, boolean</li>
@@ -255,7 +266,7 @@
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1475720 by clement on Thu, 25 Apr 2013 12:13:11 +0000
+                Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
                 </div>
             </div>
         </footer>

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-write-your-own-handler.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-write-your-own-handler.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-devguide/how-to-write-your-own-handler.html Tue Sep  1 06:05:17 2015
@@ -171,7 +171,18 @@
 
     <div class="container">
         <div class="content">
-            <h1 id="how-to-write-your-ipojo-handler">How to write your iPOJO Handler</h1>
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="how-to-write-your-ipojo-handler">How to write your iPOJO Handler<a class="headerlink" href="#how-to-write-your-ipojo-handler" title="Permanent link">&para;</a></h1>
 <p><em>This document explains how developers can use iPOJO extensibility mechanism to extend the (primitive) component instance container. Such extensibility mechanism does not require to modify the iPOJO core.</em></p>
 <div class="toc">
 <ul>
@@ -229,7 +240,7 @@
 </div>
 <p>First, iPOJO concepts are briefly explained. The second section explains the steps to create a handler. The two last sections describes the implementation and the usage of two small example handlers : a Log Handler, logging messages inside the OSGi log service, and a Property Handler, injecting properties values inside fields.</p>
 <p>The code is available in this <a href="ipojo-handler-tutorial-project.zip">archive file</a>.</p>
-<h2 id="ipojo-concepts">iPOJO Concepts</h2>
+<h2 id="ipojo-concepts">iPOJO Concepts<a class="headerlink" href="#ipojo-concepts" title="Permanent link">&para;</a></h2>
 <p>iPOJO is a service oriented component model aiming to simplify OSGi applications development. iPOJO is based on the POJO concepts. A POJO is a simple Java class without any dependency on its runtime environment. In iPOJO, POJO are encapsulated in a container managing the relation between the POJO and the external world. This container keeps separated the POJO from the external "wild" world. Moreover, this container can be extended, using handlers.</p>
 <p>Basically, iPOJO contains two main concepts: component type and component instance. A component type is a type of component. A component type defines its implementation class, its creation policy, and its container. A component instance is a configured instance of a component type. This instance is created with the component type factory. A component instance inherits of all component type characteristics but has a unique name and its own configuration (set of &lt;key, value&gt;).</p>
 <p>Above these concepts, iPOJO runtime will manage component type factories and component instances. Each component instance is managed separately (but the factory can delete them).</p>
@@ -241,11 +252,11 @@
 iPOJO core contains 6 "core" handlers managing service providing, service dependencies, lifecycle callbacks, lifecycle controller, instance dynamic configuration, and component instance architecture. Theses handlers follow the same rules than external handlers, except that they use the iPOJO default namespace (i.e. <code>org.apache.felix.ipojo</code>).
 </div>
 
-<h2 id="handler-development-basis">Handler development basis</h2>
-<h3 id="fundamentals">Fundamentals</h3>
+<h2 id="handler-development-basis">Handler development basis<a class="headerlink" href="#handler-development-basis" title="Permanent link">&para;</a></h2>
+<h3 id="fundamentals">Fundamentals<a class="headerlink" href="#fundamentals" title="Permanent link">&para;</a></h3>
 <p>As explain above, the handler interacts with the POJO, with the component's container and with the external world (e.g. : other components, services, bundles, the OSGi framework, ...). The skeleton of such an agent is defined in iPOJO is defined by the <code>PrimitiveHandler</code> (abstract) class that can be found in the <code>org.apache.felix.ipojo</code> package.</p>
 <p>You need to implement the three basic lifecycle methods of this class, but you can extends this model by redefining some other methods (e.g. : to intercept POJO method calls, field accesses, ...).</p>
-<h3 id="declaring-your-handler">Declaring your handler</h3>
+<h3 id="declaring-your-handler">Declaring your handler<a class="headerlink" href="#declaring-your-handler" title="Permanent link">&para;</a></h3>
 <p>You first need to declare your handler, so iPOJO will be able to initialize, configure and use it when needed. First, you must give a name and a namespace to your handler. By doing that, iPOJO can recognize that a certain component uses your handler, so it can initialize it. You need to declare, using the <code>@Handler</code> annotations. You can, of course, declare several handlers, and even declare components using these handlers, in the same bundle.</p>
 <div class="codehilite"><pre><span class="nd">@Handler</span><span class="o">(</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Log&quot;</span><span class="o">,</span> <span class="n">namespace</span> <span class="o">=</span> <span class="n">LogHandler</span><span class="o">.</span><span class="na">NAMESPACE</span><span class="o">)</span>
 <span class="kd">public</span> <span class="kd">class</span> <span class="nc">LogHandler</span> <span class="kd">extends</span> <span class="n">PrimitiveHandler</span> <span class="o">{</span>
@@ -260,7 +271,7 @@ iPOJO core contains 6 "core" handlers ma
 In order to use iPOJO annotations processing, the namespace must be a valid package name and the name must be a valid annotation name (without the '@'). Refer to the <a href="#annotations">annotations</a> section.
 </div>
 
-<h3 id="handler-lifecycle">Handler lifecycle</h3>
+<h3 id="handler-lifecycle">Handler lifecycle<a class="headerlink" href="#handler-lifecycle" title="Permanent link">&para;</a></h3>
 <p>A handler lifecycle is composed of four different states.</p>
 <p><img src="Handler-Lifecycle.png"></p>
 <ul>
@@ -274,7 +285,7 @@ In order to use iPOJO annotations proces
 Keep in mind that the <code>stop()</code> method of your handler is called when the component instance is stopped (not necessarily destroyed). This instance can be restarted later, so the same instance of your handler must have to ability to restart too.
 </div>
 
-<h3 id="reading-handler-and-instance-configurations">Reading handler and instance configurations</h3>
+<h3 id="reading-handler-and-instance-configurations">Reading handler and instance configurations<a class="headerlink" href="#reading-handler-and-instance-configurations" title="Permanent link">&para;</a></h3>
 <p>Your handler need to read how it is configured in the using component type description. The configuration is written in the <code>metadata.xml</code> of the using bundle, but is passed to the <code>initializeComponentFactory()</code> and <code>configure()</code> methods as an <code>Element</code> object.</p>
 <p>The <code>Element</code> type (from the <code>org.apache.felix.ipojo.metadata package</code>), coupled with the <code>Attribute</code> type, is used to retrieve the structure and the content of the component configuration. The <code>Element</code> parameter, passed to the initialization and configuration methods, represents the root of the component type description (i.e. the root of the tree is the <code>component</code> tag).</p>
 <p>Several methods allows to browse the entire configuration from the root <code>Element</code> :</p>
@@ -329,7 +340,7 @@ Keep in mind that the <code>stop()</code
 </pre></div>
 
 
-<h3 id="interacting-with-the-pojo">Interacting with the POJO</h3>
+<h3 id="interacting-with-the-pojo">Interacting with the POJO<a class="headerlink" href="#interacting-with-the-pojo" title="Permanent link">&para;</a></h3>
 <p>One of the most interesting features of an handler is the ability to interact with the component's POJO. Indeed, you can intercept method calls and returns, inject values in the POJO's fields...</p>
 <p>The <code>getPojoMetadata()</code> method of the PrimitiveHandler class lets you access the structure of the POJO (represented by the <code>PojoMetadata</code> type) without having to use (slow) reflection. It allows you to list all fields and methods of the POJO, and get informations about implemented interfaces and the super-class. The <code>PojoMetadata</code> class implements the following operations :</p>
 <ul>
@@ -421,7 +432,7 @@ The <code>InstanceManager</code> has to
 The <code>PrimitiveHandler</code> abstract class implements the <code>FieldInterceptor</code> and <code>MethodInterceptor</code> interfaces, which declares the methods described just above. You can create your own interceptor class (implementing one or both of these interfaces) and give it to the <code>InstanceManager</code> register method instead of the handler object itself.
 </div>
 
-<h3 id="using-your-handler">Using your handler</h3>
+<h3 id="using-your-handler">Using your handler<a class="headerlink" href="#using-your-handler" title="Permanent link">&para;</a></h3>
 <p>Once your handler has been declared, you can use it in iPOJO components. To do so, you first have to be bound to your handler's namespace (using standard XML namespace declaration). Then you can configure the handler in your components type description. An example of bundle's <code>metadata.xml</code> declaring components using the handler is shown hereafter :</p>
 <div class="codehilite"><pre><span class="nt">&lt;ipojo</span> <span class="na">xmlns:your-shortcut=</span><span class="s">&quot;the.namespace.of.your.handler&quot;</span><span class="nt">&gt;</span>
     ...
@@ -463,9 +474,9 @@ The <code>PrimitiveHandler</code> abstra
 <p>The remainder of this document describes two examples of handlers:
 <em> A log handler logging messages in the OSGi Log Service
 </em> A properties handler reading a property files to configure POJO field</p>
-<h2 id="log-handler-example">Log Handler example</h2>
+<h2 id="log-handler-example">Log Handler example<a class="headerlink" href="#log-handler-example" title="Permanent link">&para;</a></h2>
 <p>This section describes how to create a simple handler. This handler logs a message in the <em>OSGi Log Service</em> (if present) when the component instance state changes.</p>
-<h3 id="handler-metadata">Handler metadata</h3>
+<h3 id="handler-metadata">Handler metadata<a class="headerlink" href="#handler-metadata" title="Permanent link">&para;</a></h3>
 <p>The handler namespace is <code>org.apache.felix.ipojo.log.handler.LogHandler</code>. It is also the name of the handler implementation class. You can note that the handler has an optional dependency on a OSGi log service.</p>
 <div class="codehilite"><pre><span class="c1">// Declare a handler.</span>
 <span class="nd">@Handler</span><span class="o">(</span><span class="n">name</span> <span class="o">=</span> <span class="s">&quot;Log&quot;</span><span class="o">,</span> <span class="n">namespace</span> <span class="o">=</span> <span class="n">LogHandler</span><span class="o">.</span><span class="na">NAMESPACE</span><span class="o">)</span>
@@ -483,14 +494,14 @@ The <code>PrimitiveHandler</code> abstra
 </pre></div>
 
 
-<h3 id="handler-implementation">Handler implementation</h3>
+<h3 id="handler-implementation">Handler implementation<a class="headerlink" href="#handler-implementation" title="Permanent link">&para;</a></h3>
 <p>The handler needs to override following methods:
 <em>  <code>configure</code> : to parse the metadata and load the properties file
 </em>  <code>stateChanged</code> : to log messages when the instance state changes.</p>
-<h4 id="loghandler-class">LogHandler class</h4>
+<h4 id="loghandler-class">LogHandler class<a class="headerlink" href="#loghandler-class" title="Permanent link">&para;</a></h4>
 <p>The handler is implemented inside the <code>LogHandler</code> class in the <code>org.apache.felix.ipojo.handler.log</code> package. This class extends the <code>org.apache.felix.ipojo.PrimitiveHandler</code> class.
 The handler needs to be notified when component instances becomes valid or invalid, thus it implements the <code>InstanceStateListener</code> interface.</p>
-<h4 id="configure-method">Configure Method</h4>
+<h4 id="configure-method">Configure Method<a class="headerlink" href="#configure-method" title="Permanent link">&para;</a></h4>
 <p>This method reads the component description and configures the handler. Then, the handler registers itself to the instance manager to be informed of the component's validity changes.</p>
 <div class="codehilite"><pre><span class="cm">/**</span>
 <span class="cm"> * Parses the component&#39;s metadata to retrieve the log level in which we log messages.</span>
@@ -523,7 +534,7 @@ The handler needs to be notified when co
 </pre></div>
 
 
-<h4 id="statechanged-method">StateChanged Method</h4>
+<h4 id="statechanged-method">StateChanged Method<a class="headerlink" href="#statechanged-method" title="Permanent link">&para;</a></h4>
 <p>This method is called by the instance manager to notify that the component instance state changes. The handler needs to log a message containing the new state.</p>
 <div class="codehilite"><pre><span class="cm">/**</span>
 <span class="cm"> * Logging messages when the instance state is changing</span>
@@ -545,7 +556,7 @@ The handler needs to be notified when co
 </pre></div>
 
 
-<h3 id="start-and-stop">Start and Stop</h3>
+<h3 id="start-and-stop">Start and Stop<a class="headerlink" href="#start-and-stop" title="Permanent link">&para;</a></h3>
 <p>The handler also contains two methods called by the instance manager when the underlying instance starts and stops.</p>
 <div class="codehilite"><pre><span class="cm">/**</span>
 <span class="cm"> * The instance is starting.</span>
@@ -567,9 +578,9 @@ The handler needs to be notified when co
 </pre></div>
 
 
-<h2 id="handler-packaging">Handler packaging</h2>
+<h2 id="handler-packaging">Handler packaging<a class="headerlink" href="#handler-packaging" title="Permanent link">&para;</a></h2>
 <p>This handler needs to be packaged inside an iPOJO bundle. The bundle will import the <code>org.apache.felix.ipojo</code>, <code>org.osgi.framework</code> and <code>org.osgi.service.log</code> packages.</p>
-<h3 id="handler-usage">Handler usage</h3>
+<h3 id="handler-usage">Handler usage<a class="headerlink" href="#handler-usage" title="Permanent link">&para;</a></h3>
 <p>To use this handler, a component use the <code>Log</code> annotation, with a level attribute. This level attribute's value can be <code>"error"</code>, <code>"warning"</code> or <code>"info"</code>. Here is an usage example:</p>
 <div class="codehilite"><pre><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">felix</span><span class="o">.</span><span class="na">ipojo</span><span class="o">.</span><span class="na">log</span><span class="o">.</span><span class="na">handler</span><span class="o">.</span><span class="na">example</span><span class="o">;</span>
 
@@ -599,7 +610,7 @@ The handler needs to be notified when co
 </pre></div>
 
 
-<h3 id="playing-with-the-handler">Playing with the handler</h3>
+<h3 id="playing-with-the-handler">Playing with the handler<a class="headerlink" href="#playing-with-the-handler" title="Permanent link">&para;</a></h3>
 <p>The archive contains a project named <code>Log-Handler-In-Felix</code>, which once built, provides a Felix framework with all the bundles deployed.</p>
 <p>Unzip the archive, and build the whole project using Maven: <code>mvn clean install</code>. It builds the log handler and the property handler. Then navigate to the felix-framework-VERSION directory:</p>
 <div class="codehilite"><pre>mvn clean install
@@ -646,10 +657,10 @@ The component instance my.simple.consume
 
 
 <p>By stopping the Foo service bundle, you withdrew the foo service from the service registry making our component invalid (and unhappy). The handler is notified of the new state and logs a message. When the bundle restarts, the service is republished. So the instance becomes valid again. The handler is notified and logs another message.</p>
-<h2 id="properties-handler-example">Properties Handler example</h2>
+<h2 id="properties-handler-example">Properties Handler example<a class="headerlink" href="#properties-handler-example" title="Permanent link">&para;</a></h2>
 <p>This section presents a second handler. This handler loads a property file containing field name and initial value. Then it injects and maintains these values inside POJO fields. In this example, only String values are managed.</p>
 <p>This handler is always valid, so do not participate to the component instance lifecycle. Moreover, the handler does not need to be notified when the component instance state changed. But, it need to be notified when POJO fields need a value or change their value.</p>
-<h3 id="handler-implementation_1">Handler implementation</h3>
+<h3 id="handler-implementation_1">Handler implementation<a class="headerlink" href="#handler-implementation_1" title="Permanent link">&para;</a></h3>
 <p>The handler needs to override following methods:</p>
 <ul>
 <li><code>configure</code> : to parse the metadata and load the properties file </li>
@@ -657,7 +668,7 @@ The component instance my.simple.consume
 <li><code>onGet</code> : to inject a values inside a field </li>
 <li><code>onSet</code> : to obtain the new field value </li>
 </ul>
-<h4 id="propertieshandler-class">PropertiesHandler class</h4>
+<h4 id="propertieshandler-class">PropertiesHandler class<a class="headerlink" href="#propertieshandler-class" title="Permanent link">&para;</a></h4>
 <p>The handler is implemented by the <code>PropertiesHandler</code> class present in the <code>org.apache.felix.ipojo.properties.handler</code> package. The class has several fields:</p>
 <ul>
 <li>The properties to maintain (<code>m_properties</code>) </li>
@@ -693,7 +704,7 @@ The component instance my.simple.consume
 </pre></div>
 
 
-<h4 id="configure-method_1">Configure Method</h4>
+<h4 id="configure-method_1">Configure Method<a class="headerlink" href="#configure-method_1" title="Permanent link">&para;</a></h4>
 <p>This method begins by parsing the component type metadata. The handler needs a properties element from its namespace. According to the result, the configure method can return immediately or parse the file attribute (to get the properties file path). Then, it builds a field list (String array) to register to field notification. By registering with a field array, the handler is going to be notified of field access.</p>
 <div class="codehilite"><pre><span class="cm">/**</span>
 <span class="cm"> * This method is the first to be invoked.</span>
@@ -769,7 +780,7 @@ The component instance my.simple.consume
 
 
 <p>Notice that the handler is using the instance configuration. So instances can set their own file location using the <code>properties.file</code> property.</p>
-<h4 id="the-start-and-stop-methods">The start and stop methods</h4>
+<h4 id="the-start-and-stop-methods">The start and stop methods<a class="headerlink" href="#the-start-and-stop-methods" title="Permanent link">&para;</a></h4>
 <p>The start method does nothing, but needs to be implemented.</p>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="kt">void</span> <span class="nf">start</span><span class="o">()</span> <span class="o">{}</span>
 </pre></div>
@@ -788,7 +799,7 @@ The component instance my.simple.consume
 </pre></div>
 
 
-<h4 id="onget-and-onset-methods">onGet and onSet methods</h4>
+<h4 id="onget-and-onset-methods">onGet and onSet methods<a class="headerlink" href="#onget-and-onset-methods" title="Permanent link">&para;</a></h4>
 <p>The onGet method is called when the POJO need a field value. When called, the method needs to return the stored value.The onSet method is called when the POJO modifies a field value. If the new value if null, the handler will remove this properties from the property list.</p>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="n">Object</span> <span class="nf">onGet</span><span class="o">(</span><span class="n">Object</span> <span class="n">pojo</span><span class="o">,</span> <span class="n">String</span> <span class="n">field</span><span class="o">,</span> <span class="n">Object</span> <span class="n">o</span><span class="o">)</span> <span class="o">{</span> 
     <span class="c1">// When the pojo requires a value for a managed field,</span>
@@ -806,7 +817,7 @@ The component instance my.simple.consume
 </pre></div>
 
 
-<h3 id="creating-the-annotation">Creating the annotation</h3>
+<h3 id="creating-the-annotation">Creating the annotation<a class="headerlink" href="#creating-the-annotation" title="Permanent link">&para;</a></h3>
 <p>The handler provides an annotation to ease its use:</p>
 <div class="codehilite"><pre><span class="kn">package</span> <span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">felix</span><span class="o">.</span><span class="na">ipojo</span><span class="o">.</span><span class="na">handler</span><span class="o">.</span><span class="na">properties</span><span class="o">;</span>
 
@@ -826,9 +837,9 @@ The component instance my.simple.consume
 </pre></div>
 
 
-<h3 id="handler-packaging_1">Handler packaging</h3>
+<h3 id="handler-packaging_1">Handler packaging<a class="headerlink" href="#handler-packaging_1" title="Permanent link">&para;</a></h3>
 <p>This handler needs to be inside a bundle importing the <code>org.apache.felix.ipojo</code> packages and exporting the <code>org.apache.felix.ipojo.properties.handler</code> package.</p>
-<h3 id="playing-with-the-handler_1">Playing with the handler</h3>
+<h3 id="playing-with-the-handler_1">Playing with the handler<a class="headerlink" href="#playing-with-the-handler_1" title="Permanent link">&para;</a></h3>
 <p>As for the log handler , the archive contains a felix distribution with all bundles deployed.</p>
 <div class="codehilite"><pre><span class="nb">cd </span>Property-Handler-In-Felix/target/felix-framework-4.2.1/
 java -jar bin/felix.jar
@@ -868,12 +879,12 @@ g!
 </pre></div>
 
 
-<h2 id="advanced-topics">Advanced topics</h2>
-<h3 id="handler-reconfiguration">Handler reconfiguration</h3>
+<h2 id="advanced-topics">Advanced topics<a class="headerlink" href="#advanced-topics" title="Permanent link">&para;</a></h2>
+<h3 id="handler-reconfiguration">Handler reconfiguration<a class="headerlink" href="#handler-reconfiguration" title="Permanent link">&para;</a></h3>
 <p>iPOJO has the ability to reconfigure component instances while they are running. When instances are reconfigured, their used handler need to update their configuration (if they support such an operation). 
 To do so, reconfigurable handlers must override the <code>reconfigure()</code> method, which notify the concerned handlers of the new instance configuration (represented as a <code>Dictionary</code>).</p>
 <p><a name="description"></a></p>
-<h3 id="describing-your-handler">Describing your handler</h3>
+<h3 id="describing-your-handler">Describing your handler<a class="headerlink" href="#describing-your-handler" title="Permanent link">&para;</a></h3>
 <p>Handlers have the possibility to describe their state, overriding the <code>getDescription()</code> method and the <code>HandlerDescription</code> class. 
 By default, only the handler's name and validity are displayed in component instance's description (informations displayed by the (<code>arch -instance an.instance.name</code> command). The standard way to add description to your handler is shown hereafter :</p>
 <div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">YourHandler</span> <span class="kd">extends</span> <span class="n">PrimitiveHandler</span> <span class="o">{</span>  
@@ -907,7 +918,7 @@ By default, only the handler's name and
 
 
 <p><a name="annotations"></a></p>
-<h2 id="handlers-annotations">Handler's annotations</h2>
+<h2 id="handlers-annotations">Handler's annotations<a class="headerlink" href="#handlers-annotations" title="Permanent link">&para;</a></h2>
 <p>Your handle can also provide annotations. Annotations will allows users to configure the Handler from the source code (avoiding XML edition). iPOJO supports annotation of external handlers. Indeed, it detects annotations and re-creates the <code>Element-Attribute</code> structure.
 So, first, external Handler annotations <em>MUST</em> follow some principles:</p>
 <ul>
@@ -991,9 +1002,9 @@ Then, 'scalar' annotation attributes are
 
 <p><em>Note:</em> To customize this hierarchy, you can also use the <code>id/parent</code> annotation attributse. The id attribute is used to refer to an Element. An annotation with a <code>parent</code> (targeting an <code>id</code>) attribute will be processed as a sub-element of the Element identified by the given <code>id</code>.</p>
 <p><a name="schemas"></a></p>
-<h2 id="handlers-xsd">Handler's XSD</h2>
+<h2 id="handlers-xsd">Handler's XSD<a class="headerlink" href="#handlers-xsd" title="Permanent link">&para;</a></h2>
 <p>Coming soon...</p>
-<h2 id="conclusion">Conclusion</h2>
+<h2 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">&para;</a></h2>
 <p>In this document, we present how-to develop handler for your components. We describe two small examples : a log handler and a properties handler. These handlers are plugged on (primitive) instance. However, it is possible to extends <code>CompositeHandler</code> too to customize the composition model.</p>
 <p>If you develop handler and you want to share it, feel free to contact us by sending a mail on the Felix mailing list.</p>
         </div>
@@ -1010,7 +1021,7 @@ Then, 'scalar' annotation attributes are
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1530195 by guillaume on Tue, 8 Oct 2013 09:12:32 +0000
+                Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
                 </div>
             </div>
         </footer>

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-eclipse-integration.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-eclipse-integration.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-eclipse-integration.html Tue Sep  1 06:05:17 2015
@@ -171,7 +171,18 @@
 
     <div class="container">
         <div class="content">
-            <h1 id="building-and-running-ipojo-bundles-from-eclipse">Building and Running iPOJO bundles from Eclipse</h1>
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="building-and-running-ipojo-bundles-from-eclipse">Building and Running iPOJO bundles from Eclipse<a class="headerlink" href="#building-and-running-ipojo-bundles-from-eclipse" title="Permanent link">&para;</a></h1>
 <p><em>This page explains how to build and run iPOJO bundles without exiting Eclipse and breaking the compile-run cycle. Bundles are executed inside Equinox.</em></p>
 <div class="toc">
 <ul>
@@ -186,17 +197,17 @@
 </li>
 </ul>
 </div>
-<h2 id="1-import-the-ipojo-bundle-project">1) Import the iPOJO Bundle project</h2>
+<h2 id="1-import-the-ipojo-bundle-project">1) Import the iPOJO Bundle project<a class="headerlink" href="#1-import-the-ipojo-bundle-project" title="Permanent link">&para;</a></h2>
 <p>Download the <a href="MyiPOJOBundle-1.4.2.zip">project archive</a>, and import it as an <em>Existing Project into the Workspace</em></p>
 <p><img src="Picture 1.png">
 <img src="Picture 2.png">
 <img src="Picture 3.png"></p>
 <p>Then click on <em>finish</em></p>
-<h2 id="2-configure-the-target-platform">2) Configure the target platform</h2>
+<h2 id="2-configure-the-target-platform">2) Configure the target platform<a class="headerlink" href="#2-configure-the-target-platform" title="Permanent link">&para;</a></h2>
 <p><img src="Picture 4.png">
 <img src="Picture 5.png"></p>
 <p>The resulting project, you looks like the left picture.</p>
-<h2 id="3-develop-you-bundle">3) Develop you bundle</h2>
+<h2 id="3-develop-you-bundle">3) Develop you bundle<a class="headerlink" href="#3-develop-you-bundle" title="Permanent link">&para;</a></h2>
 <p>The imported project contains a very simple component using annotations. But, obviously you can delete/change it. For XML-metadata, use <code>metadata.xml</code> file is in the project root.</p>
 <div class="codehilite"><pre><span class="nd">@Component</span>
 <span class="kd">public</span> <span class="kd">class</span> <span class="nc">MyComponentImpl</span> <span class="o">{</span>
@@ -216,14 +227,14 @@
 
 
 <p>Once you're done, you are able to run your bundle !</p>
-<h2 id="4-run-your-bundle">4) Run your bundle</h2>
+<h2 id="4-run-your-bundle">4) Run your bundle<a class="headerlink" href="#4-run-your-bundle" title="Permanent link">&para;</a></h2>
 <p><img src="Picture 6.png"></p>
 <p>Right-click on the <em>.launch</em> file and then go on <em>Run-As -&gt; MyiPOJOBundle</em>. Equinox will be started and your iPOJO bundle deployed and started:
 Once run for the first time, you can re-run it from the  icon. In the console view, you get your Equinox shell, and you see your application result. If you don't edit the given development, the output is as:</p>
 <p><img src="Picture 8.png"></p>
-<h2 id="iterate-">Iterate :-)</h2>
+<h2 id="iterate-">Iterate :-)<a class="headerlink" href="#iterate-" title="Permanent link">&para;</a></h2>
 <p>Then, go back to the step 3, change your components, and see the new result... That's it !</p>
-<h2 id="changes-in-the-140">Changes in the 1.4.0</h2>
+<h2 id="changes-in-the-140">Changes in the 1.4.0<a class="headerlink" href="#changes-in-the-140" title="Permanent link">&para;</a></h2>
 <p>The 1.4.0+ iPOJO manipulator allows manipulating classes from a directory ([FELIX-943|http://cwiki.apache.org/jira/browse/FELIX-943]). This feature is very convenient for the Eclipse integration because it avoids creating the Jar and unzipping it inside the Eclipse build directory. Moreover, it allows reusing the Java Eclipse builder (compiling classes).</p>
         </div>
     </div>
@@ -239,7 +250,7 @@ Once run for the first time, you can re-
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1467268 by clement on Fri, 12 Apr 2013 13:42:34 +0000
+                Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
                 </div>
             </div>
         </footer>

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-feature-overview.html Tue Sep  1 06:05:17 2015
@@ -171,9 +171,20 @@
 
     <div class="container">
         <div class="content">
-            <h1 id="apache-felix-ipojo-feature-overview">Apache Felix iPOJO Feature Overview</h1>
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="apache-felix-ipojo-feature-overview">Apache Felix iPOJO Feature Overview<a class="headerlink" href="#apache-felix-ipojo-feature-overview" title="Permanent link">&para;</a></h1>
 <p><em>This page is an attempt to put all of the features and benefits of iPOJO into a single high-level list so that it is easy to see why you will want to use iPOJO for your applications. This list is not exhaustive, but represents the set of features that are potentially most likely to be needed or are unique.</em></p>
-<h2 id="core-features">Core Features</h2>
+<h2 id="core-features">Core Features<a class="headerlink" href="#core-features" title="Permanent link">&para;</a></h2>
 <ul>
 <li><em>POJO-based approach</em> - Most components can simply be POJOs and need not have iPOJO- or OSGi-specific API in them.</li>
 <li><em>Simple service provisioning</em> - iPOJO manages all aspects of providing an OSGi service.</li>
@@ -222,7 +233,7 @@
 </li>
 <li><em>Extensible</em> - All      iPOJO features are implemented via a set of <code>handlers</code>, which is an      extensibility mechanism open to developers by which they can support      custom functionality (e.g., exporting a provided service remotely, etc.).</li>
 </ul>
-<h2 id="advancedexperimental-features">Advanced/Experimental Features</h2>
+<h2 id="advancedexperimental-features">Advanced/Experimental Features<a class="headerlink" href="#advancedexperimental-features" title="Permanent link">&para;</a></h2>
 <ul>
 <li><em>Composite model</em> -      iPOJO supports a flexible architectural-like model for composing services.<ul>
 <li><em>Flexible composites</em> - A       composite is an abstract component implementation.</li>
@@ -251,7 +262,7 @@
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1443380 by clement on Thu, 7 Feb 2013 10:01:34 +0000
+                Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
                 </div>
             </div>
         </footer>

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/apache-felix-ipojo-dosgi.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/apache-felix-ipojo-dosgi.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-gettingstarted/apache-felix-ipojo-dosgi.html Tue Sep  1 06:05:17 2015
@@ -171,7 +171,18 @@
 
     <div class="container">
         <div class="content">
-            <h1 id="using-distributed-services-with-ipojo">Using Distributed Services with iPOJO</h1>
+            <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="using-distributed-services-with-ipojo">Using Distributed Services with iPOJO<a class="headerlink" href="#using-distributed-services-with-ipojo" title="Permanent link">&para;</a></h1>
 <p><em>Distributed Service defines how to deal with remote services in OSGi. This page describes the CXF Distributed OSGi with iPOJO demo.This demo uses iPOJO to create a remote OSGi service from an iPOJO component. The consumer side also uses iPOJO to create a component that consumes the remote OSGi service. By using iPOJO, you don't need to write code to interact with the OSGi Service Registry at all. That's all handled through injection, which hugely simplifies the code. Moreover thanks to iPOJO's advanced features such as property propagation, the service is exported without any impact on its implementation.</em></p>
 <p>In this demo, you will show how to use iPOJO:</p>
 <ul>
@@ -192,7 +203,7 @@
 </li>
 </ul>
 </div>
-<h2 id="demo-design">Demo design</h2>
+<h2 id="demo-design">Demo design<a class="headerlink" href="#demo-design" title="Permanent link">&para;</a></h2>
 <p>This demo is quite similar to the DS demo of DOSGi demo in structure. It consists of 5 bundles:</p>
 <ul>
 <li>An interface bundle defining the Adder Service interface. </li>
@@ -210,9 +221,9 @@ The Adder Service interface is as follow
 </pre></div>
 
 
-<h2 id="sources">Sources</h2>
+<h2 id="sources">Sources<a class="headerlink" href="#sources" title="Permanent link">&para;</a></h2>
 <p>The sources and a pre-configured version of Felix are available in the <a href="http://people.apache.org/~clement/ipojo/tutorials/dosgi/dosgi-tutorial.zip">dosgi-tutorial archive</a>. Once downloaded unzip the archive. To compile, run from the root : <code>mvn clean install</code>. To run the application. go to the <code>felix</code> directory containing a pre-configured Felix.</p>
-<h2 id="the-adder-service-implementation">The Adder Service Implementation</h2>
+<h2 id="the-adder-service-implementation">The Adder Service Implementation<a class="headerlink" href="#the-adder-service-implementation" title="Permanent link">&para;</a></h2>
 <p>The service implementation is a simplistic implementation of the Adder service, which is instantiated as an iPOJO component. This implementation uses annotations to define its component type. The <code>@provides</code> annotation just says that it provides a service. Moreover, the <code>propagation=true</code> attribute enables property propagation.</p>
 <p>In the <a href="http://svn.apache.org/repos/asf/felix/sandbox/clement/ipojo-tutorials/dosgi/AdderServiceProvider/src/main/resources/metadata.xml">metadata.xml</a> file, an instance of the component type is declared. Note that this instance declaration defines three properties used by DOSGi to exports the service. These properties instruct Distributed OSGi into making the service available on http://localhost:9090/adder. Those properties are not declared in the component type itself. Indeed, the component type enables property propagation; so all defined properties will be published on exported services. This propagation also works with the configuration admin. This feature is pretty nice, as it does not impact the component implementation and its description.</p>
 <div class="codehilite"><pre><span class="nt">&lt;instance</span> <span class="na">component=</span><span class="s">&quot;org.apache.felix.ipojo.remote.adder.impl.AdderServiceImpl&quot;</span><span class="nt">&gt;</span>
@@ -236,7 +247,7 @@ start file:../AdderServiceProvider/targe
 
 <p>At this point, the service should be available remotely (wait until the console stops printing stuff), you can check this by obtaining the WSDL: <a href="http://localhost:9090/adder?wsdl">http://localhost:9090/adder?wsdl</a></p>
 <p><img src="wsdl.png" width="600px"></p>
-<h2 id="the-adder-service-consumer">The Adder Service Consumer</h2>
+<h2 id="the-adder-service-consumer">The Adder Service Consumer<a class="headerlink" href="#the-adder-service-consumer" title="Permanent link">&para;</a></h2>
 <p>The service consumer is also created using iPOJO. Thanks to DOSGi, iPOJO can inject the service as any regular OSGi service. So, the code is pretty simple:</p>
 <div class="codehilite"><pre><span class="nd">@Component</span>
 <span class="kd">public</span> <span class="kd">class</span> <span class="nc">AdderConsumer</span> <span class="o">{</span>
@@ -290,7 +301,7 @@ Using adder service: 1 + <span class="nv
 
 
 <p>That's it !</p>
-<h2 id="conclusion">Conclusion</h2>
+<h2 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">&para;</a></h2>
 <p>This tutorial has illustrated how to easily create remote services and consume them with iPOJO. Subscribe to the Felix users mailing list by sending a message to <a href="mailto:users-subscribe@felix.apache.org">users-subscribe@felix.apache.org</a>; after subscribing, email questions or feedback to <a href="mailto:users@felix.apache.org">users@felix.apache.org</a>.</p>
         </div>
     </div>
@@ -306,7 +317,7 @@ Using adder service: 1 + <span class="nv
                 may be trademarks or registered trademarks of their respective owners.
                 </div>
                 <div class="timestamp span3 offset2">
-                Rev. 1443557 by clement on Thu, 7 Feb 2013 15:34:03 +0000
+                Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
                 </div>
             </div>
         </footer>