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 [14/16] - in /websites/staging/felix/trunk/content: ./ documentation/ documentation/community/ documentation/development/ documentation/faqs/ documentation/subprojects/ documentation/subprojects/apache-felix-commons/ documentation/s...

Modified: websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-application-demonstration.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-application-demonstration.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-application-demonstration.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 Application Demonstration</h1>
-      <h1 id="apache-felix-application-demonstration">Apache Felix Application Demonstration</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-application-demonstration">Apache Felix Application Demonstration<a class="headerlink" href="#apache-felix-application-demonstration" title="Permanent link">&para;</a></h1>
 <p><em>(This document is a work in progress.)</em></p>
 <p>Apache Felix provides a foundation for creating modular and dynamically extensible applications. This page presents an example application to demonstrate the various approaches to consider when creating a OSGi/Felix-based application. It is recommended that you have a look at the more <a href="">basic examples</a> such as [FELIX:Apache Felix Framework Usage Documentation] before you start with this one.</p>
 <p>In order to follow this example you need three things:</p>
@@ -76,7 +98,7 @@
 <li><a href="http://maven.apache.org">Maven</a> to build the source code.</li>
 </ol>
 <p>The source code of the examples is available in the Felix SVN repository at <a href="http://svn.apache.org/repos/asf/felix/trunk/examples">http://svn.apache.org/repos/asf/felix/trunk/examples</a>. If you feel more familiar with git, you can use the git mirror at: [git://git.apache.org/felix.git] or browse the source code at github: [https://github.com/apache/felix]</p>
-<h2 id="potential-approaches">Potential Approaches</h2>
+<h2 id="potential-approaches">Potential Approaches<a class="headerlink" href="#potential-approaches" title="Permanent link">&para;</a></h2>
 <p>When creating an OSGi-based application there are two main orthogonal issues to consider:</p>
 <ol>
 <li>Service model vs. extender model</li>
@@ -85,10 +107,10 @@
 <p>The first issue is actually a general issue when creating OSGi-based applications. There are two general approaches that can be used when creating an extensible OSGi application. The service model approach uses the OSGi service concept and the service registry as the extensibility mechanism. The extender model approach uses the OSGi installed bundle set as the extensibility mechanism. Both approaches have their advantages and disadvantages and they can be used independently or together.</p>
 <p>The second issue is related to whether your application is run completely on top of the OSGi framework as a set of bundles or whether your application hosts an embedded OSGi framework instance. Creating applications completely as a set of bundles is the preferred approach since it allows the application to run on any OSGi framework, but this it not always possible. In such cases where it is not possible or desired, then you may host a framework instance inside your application, which will likely tie your application to that framework implementation (although less so with the framework launching API introduced in the OSGi R4.2 specification).</p>
 <p>The remainder of this document will present variations of an example application that demonstrates these different approaches.</p>
-<h2 id="example-application-overview">Example Application Overview</h2>
+<h2 id="example-application-overview">Example Application Overview<a class="headerlink" href="#example-application-overview" title="Permanent link">&para;</a></h2>
 <p>The example application is a very simple paint program that effectively functions identically whether using services/extensions or running embedded/hosted. The application, called the host, defines a <code>SimpleShape</code> service/extension that it uses to draw shapes. Different implementations of the <code>SimpleShape</code> can be created to allow the application to draw different shapes. Each shape service/extension has name and icon properties that the application uses for manipulating the services/extensions. Available shapes are displayed in the application's tool bar. To draw a shape, click on its button in the tool bar and then click in the drawing canvas. Shapes can be dragged, but not resized. When new shape services/extensions appear they are automatically added to the tool bar and they are automatically removed when the shape services/extensions disappear. Closing the application window causes the framework and the JVM to shut down. The following is a screen shot of
  the application.</p>
 <p>!example-application.png|align=center!</p>
-<h2 id="getting-the-source-code">Getting the source code</h2>
+<h2 id="getting-the-source-code">Getting the source code<a class="headerlink" href="#getting-the-source-code" title="Permanent link">&para;</a></h2>
 <p>Currently, the example application is only available in our source control repositories. We have created two applications, one for the service-based and one for the extender-based approach. Both examples can be run as a bundled application on top of any OSGi implementation or by hosting an embedded framework. Assuming you are using svn to get the source code, you can find the source at the following locations:</p>
 <div class="codehilite"><pre><span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">svn</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">felix</span><span class="o">/</span><span class="n">trunk</span><span class="o">/</span><span class="n">examples</span><span class="o">/</span><span class="n">servicebased</span><span class="p">.</span><span class="n">host</span>
 <span class="n">http</span><span class="p">:</span><span class="o">//</span><span class="n">svn</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">org</span><span class="o">/</span><span class="n">repos</span><span class="o">/</span><span class="n">asf</span><span class="o">/</span><span class="n">felix</span><span class="o">/</span><span class="n">trunk</span><span class="o">/</span><span class="n">examples</span><span class="o">/</span><span class="n">servicebased</span><span class="p">.</span><span class="n">circle</span>
@@ -107,7 +129,7 @@
 </pre></div>
 
 
-<h2 id="building-and-running-the-examples">Building and running the examples</h2>
+<h2 id="building-and-running-the-examples">Building and running the examples<a class="headerlink" href="#building-and-running-the-examples" title="Permanent link">&para;</a></h2>
 <p>Once you have checked out the projects you can go into each sub-directory and build it using Maven; this assumes you have Maven properly installed. To build, simply perform the following in each project directory:</p>
 <div class="codehilite"><pre><span class="n">mvn</span> <span class="n">clean</span> <span class="n">install</span>
 </pre></div>
@@ -125,9 +147,9 @@
 
 
 <p>For more details on running an application with an embedded framework scroll down to the bottom of the page.</p>
-<h2 id="service-based-application">Service-Based Application</h2>
+<h2 id="service-based-application">Service-Based Application<a class="headerlink" href="#service-based-application" title="Permanent link">&para;</a></h2>
 <p>The service-based application uses the OSGi service concept and the service registry as the extensibility mechanism. Therefore the host bundle contains a service interface located at <code>org.apache.felix.example.servicebased.host.service.SimpleShape</code>. The SimpleShape service has two properties: a name and an icon. Besides that it defines one operation: <code>draw(Graphics2D g2, Point p)</code>.</p>
-<h3 id="defining-shapes-as-services">Defining shapes as services</h3>
+<h3 id="defining-shapes-as-services">Defining shapes as services<a class="headerlink" href="#defining-shapes-as-services" title="Permanent link">&para;</a></h3>
 <p>Bundles that want to contribute a shape service have to implement the <code>SimpleShape</code> interface. Take a look at the circle bundle for example. The circle bundle only contains one class, the <code>Activator</code>. A <code>[BundleActivator](http://www.osgi.org/javadoc/r4v43/org/osgi/framework/BundleActivator.html)</code> is responsible for starting up a bundle. Therefore it gets passed in a <code>[BundleContext|http://www.osgi.org/javadoc/r4v43/org/osgi/framework/BundleContext.html]</code>, that can be used to perform registration of services within the framework. The <code>Activator</code> also contains an inner class that implements the <code>SimpleShape</code> interface and therefore represents the <code>SimpleShape</code> implementation of a circle. The <code>start(BundleContext context</code> method is used to register the circle implementation as a service:</p>
 <div class="codehilite"><pre><span class="n">Dictionary</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span> <span class="n">Object</span><span class="o">&gt;</span> <span class="n">dict</span> <span class="p">=</span> <span class="n">new</span> <span class="n">Hashtable</span><span class="o">&lt;</span><span class="n">String</span><span class="p">,</span> <span class="n">Object</span><span class="o">&gt;</span><span class="p">();</span>
 <span class="n">dict</span><span class="p">.</span><span class="n">put</span><span class="p">(</span><span class="n">SimpleShape</span><span class="p">.</span><span class="n">NAME_PROPERTY</span><span class="p">,</span> &quot;<span class="n">Circle</span>&quot;<span class="p">);</span>
@@ -137,11 +159,11 @@
 
 
 <p>First a <code>[Dictionary](http://docs.oracle.com/javase/6/docs/api/java/util/Dictionary.html)</code> is created to hold the service's properties. The two service properties are added to the dictionary. The icon of the circle service is located under src/main/resources/org/apache/example/servicebased/circle/circle.png. It gets loaded as an <code>[ImageIcon|http://docs.oracle.com/javase/6/docs/api/javax/swing/ImageIcon.html]</code> and added as icon property. The service then gets registered in the service registry by passing the name of the service interface, a service object and the service's properties.</p>
-<h3 id="detecting-shape-services">Detecting shape services</h3>
+<h3 id="detecting-shape-services">Detecting shape services<a class="headerlink" href="#detecting-shape-services" title="Permanent link">&para;</a></h3>
 <p>The host's <code>Activator</code> creates a <code>DrawingFrame</code> for displaying the different shapes. It then delegates adding and removing of <code>SimpleShape</code> services to a <code>[ServiceTracker](http://www.osgi.org/javadoc/r4v43/org/osgi/util/tracker/ServiceTracker.html)</code> implementation. The <code>ShapeTracker</code> gets notified, when a new <code>SimpleShape</code> service is added to, modified or removed from the service registry.</p>
-<h2 id="extender-based-application">Extender-Based Application</h2>
+<h2 id="extender-based-application">Extender-Based Application<a class="headerlink" href="#extender-based-application" title="Permanent link">&para;</a></h2>
 <p>In contrast to the service-based example, the extender-based example uses bundles as it's primary extensibility mechanism. The host bundle contains a <code>SimpleShape</code> interface that is much like the one from the service based example. It also contains a <code>draw(Graphics2D g2, Point p)</code> method and defines a set of properties. This time the properties are not used as properties for registering a service, but for defining bundle header properties in the bundle's <code>MANIFEST.MF</code> file.</p>
-<h3 id="defining-shapes-as-extensions">Defining shapes as extensions</h3>
+<h3 id="defining-shapes-as-extensions">Defining shapes as extensions<a class="headerlink" href="#defining-shapes-as-extensions" title="Permanent link">&para;</a></h3>
 <p>Bundles that want to contribute a <code>SimpleShape</code> extension have to implement the <code>SimpleShape</code> interface. Have a look at the extender-based circle implementation, for example. It only contains one class, <code>Circle</code>, that implements <code>SimpleShape</code>. Note, that in contrast to the service-based example there is no need to define a <code>[BundleActivator](http://www.osgi.org/javadoc/r4v43/org/osgi/framework/BundleActivator.html)</code>. This is because, there is no need to register a service within the framework. Information about the provided shape implementation is located in the bundle headers instead. Have a look at the circle's <code>MANIFEST.MF</code> file:</p>
 <div class="codehilite"><pre><span class="n">Manifest</span><span class="o">-</span><span class="n">Version</span><span class="p">:</span> 1<span class="p">.</span>0
 <span class="n">Private</span><span class="o">-</span><span class="n">Package</span><span class="p">:</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">example</span><span class="p">.</span><span class="n">extenderbased</span><span class="p">.</span><span class="n">circle</span>
@@ -167,16 +189,16 @@
 
 <p>As you can see, the three bundle properties, defined in the <code>SimpleShape</code> interface are set as bundle headers.</p>
 <p>Note: The manifest file is generated by the Maven build, so you will only find it in the compiled jar. If you are interested in automatically creating manifest files for your bundles, have a look at the configuration of the <a href="http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html">org.apache.felix.maven-bundle-plugin</a> in the pom.xml.</p>
-<h3 id="detecting-shape-bundles">Detecting shape bundles</h3>
+<h3 id="detecting-shape-bundles">Detecting shape bundles<a class="headerlink" href="#detecting-shape-bundles" title="Permanent link">&para;</a></h3>
 <p>Like the <code>[ServiceTracker](http://www.osgi.org/javadoc/r4v43/org/osgi/util/tracker/ServiceTracker.html)</code> for tracking services, there is a <code>[BundleTracker|http://www.osgi.org/javadoc/r4v42/org/osgi/util/tracker/BundleTracker.html]</code> for tracking bundles. A <code>BundleTracker</code> get's notified, when the state of tracked bundles change. Have a look at <code>org.apache.felix.example.extenderbased.host.ShapeBundleTracker</code>. The constructor defines that only active bundles should be tracked. The <code>addingBundle(Bundle bundle, BundleEvent event)</code> method gets called by the framework, when a bundle enters the activated state. The tracker then checks if the bundle's headers contain the extension name property and, if so, adds the icon to the application.</p>
-<h2 id="embedding-the-framework">Embedding the Framework</h2>
+<h2 id="embedding-the-framework">Embedding the Framework<a class="headerlink" href="#embedding-the-framework" title="Permanent link">&para;</a></h2>
 <p>The OSGi R4.2 specification defines APIs to allow an application to host it's own embedded framework instance. Therefore an implementation of the <code>[FrameworkFactory](http://www.osgi.org/javadoc/r4v42/org/osgi/framework/launch/FrameworkFactory.html)</code> interface has to be used. OSGi implementers specify their <code>FrameworkFactory</code> implementation in the <code>META-INF/services/org.osgi.framework.launch.FrameworkFactory</code> file. Prior to Java 6, one had to parse the class name in that file by oneself. Luckily Java 6 has the <code>[ServiceLoader&lt;S&gt;|http://docs.oracle.com/javase/6/docs/api/java/util/ServiceLoader.html]</code> class, that lets you easily instantiate a <code>FrameworkFactoy</code>. Have a look at the contents of the <code>org.apache.felix.example.extenderbased.host.launch</code> package in the extender-based host bundle (the implementation is the same for the service-based example).</p>
 <p>The <code>Application</code> class is responsible for creating the framework and installing and starting the bundles. It uses a <code>ConfigUtil</code> for creating the framework configuration that is needed to create a framework using the <code>FrameworkFactory</code>. The <code>ConfigUtil</code> also creates a temporary cache directory for the framework. If the creation of the framework is successful, <code>installAndStartBundles(String... bundleLocations)</code> will be called to start the actual application. Therefore the <code>Activator</code> of the host bundle is instantiated. Note, that the host bundle can not register itself within the framework it just created. Only the extension bundles will be registered within the framework.</p>
 <p>As you can see no Felix-specific code is involved in any of the examples. That's one of the advantages of OSGi specification. Bundles that run on Felix will run on every other implementation of the same OSGi release.</p>
-<h2 id="feedback">Feedback</h2>
+<h2 id="feedback">Feedback<a class="headerlink" href="#feedback" title="Permanent link">&para;</a></h2>
 <p>Subscribe to the Felix users mailing list by sending a message to <a href="">users-subscribe@felix.apache.org</a>; after subscribing, email questions or feedback to [users@felix.apache.org|mailto:users@felix.apache.org].</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/tutorials-examples-and-presentations/apache-felix-osgi-tutorial.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial.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 OSGi Tutorial</h1>
-      <h1 id="apache-felix-osgi-tutorial">Apache Felix OSGi Tutorial</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-osgi-tutorial">Apache Felix OSGi Tutorial<a class="headerlink" href="#apache-felix-osgi-tutorial" title="Permanent link">&para;</a></h1>
 <p>This tutorial creates successively more complex OSGi bundles to illustrate most of the features and functionality offered by the OSGi framework.</p>
 <p>Trails:</p>
 <ul>
@@ -84,7 +106,7 @@
 <li><a href="">Apache Felix Tutorial Example 11</a>: A bundle that implements a spell checker service using iPOJO. Coming soon...</li>
 </ul>
       <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/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-1.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-1.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-1.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 Tutorial Example 1</h1>
-      <h1 id="apache-felix-tutorial-example-1-service-event-listener-bundle">Apache Felix Tutorial Example 1 - Service Event Listener Bundle</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-tutorial-example-1-service-event-listener-bundle">Apache Felix Tutorial Example 1 - Service Event Listener Bundle<a class="headerlink" href="#apache-felix-tutorial-example-1-service-event-listener-bundle" title="Permanent link">&para;</a></h1>
 <p>This example creates a simple bundle that listens for OSGi service events. This example does not do much at first, because it only prints out the details of registering and unregistering services. In the next example we will create a bundle that implements a service, which will cause this bundle to actually do something. For now, we will just use this example to help us understand the basics of creating a bundle.</p>
 <p>A bundle gains access to the OSGi framework using a unique instance of <code>BundleContext</code>. In order for a bundle to get its unique bundle context, it must implement the <code>BundleActivator</code> interface; this interface has two methods, <code>start()</code> and <code>stop()</code>, that both receive the bundle's context and are called when the bundle is started and stopped, respectively. In the following source code, our bundle implements the <code>BundleActivator</code> interface and uses the context to add itself as a listener for service events (the file for our bundle is called <code>Activator.java</code>):</p>
 <div class="codehilite"><pre><span class="cm">/*</span>
@@ -173,7 +195,7 @@
 
 <p>The above command installs and starts the bundle in a single step; it is also possible to install and start the bundle in two steps by using the Felix <code>install</code> and <code>start</code> shell commands. To stop the bundle, use the Felix <code>stop</code> shell command. Keep in mind, that this bundle will not do much at this point since it only listens for service events and we are not registering any services. In the next example we will register a service that will generate an event for this bundle to receive. To exit Felix, we use the <code>shutdown</code> command.</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/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-2.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-2.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-2.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 Tutorial Example 2</h1>
-      <h2 id="example-2-dictionary-service-bundle">Example 2 - Dictionary Service Bundle</h2>
+      <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>
+<h2 id="example-2-dictionary-service-bundle">Example 2 - Dictionary Service Bundle<a class="headerlink" href="#example-2-dictionary-service-bundle" title="Permanent link">&para;</a></h2>
 <p>This example creates a bundle that implements an OSGi service. Implementing an OSGi service is a two-step process, first we must define the interface of the service and then we must define an implementation of the service interface. In this particular example, we will create a dictionary service that we can use to check if a word exists, which indicates if the word is spelled correctly or not. First, we will start by defining a simple dictionary service interface in a file called <code>DictionaryService.java</code>:</p>
 <div class="codehilite"><pre><span class="cm">/*</span>
 <span class="cm"> * Apache Felix OSGi tutorial.</span>
@@ -208,7 +230,7 @@
 
 <p>The above command installs and starts the bundle in a single step; it is also possible to install and start the bundle in two steps by using the Felix <code>install</code> and <code>start</code> shell commands. To stop the bundle, use the Felix <code>stop</code> shell command. If the bundle from Example 1 is still active, then we should see it print out the details of the service event it receives when our new bundle registers its dictionary service. Using the Felix shell <code>lb</code> command to get the bundle identifier number for our dictionary service bundle and we can stop and restart it at will using the <code>stop</code> and <code>start</code> commands, respectively. Each time we start and stop our dictionary service bundle, we should see the details of the associated service event printed from the bundle from Example 1. In Example 3, we will create a client for our dictionary service. To exit Felix, we use the <code>shutdown</code> command.</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/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-2b.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-2b.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-2b.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 Tutorial Example 2b</h1>
-      <h2 id="example-2b-alternate-dictionary-service-bundle">Example 2b - Alternate Dictionary Service Bundle</h2>
+      <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>
+<h2 id="example-2b-alternate-dictionary-service-bundle">Example 2b - Alternate Dictionary Service Bundle<a class="headerlink" href="#example-2b-alternate-dictionary-service-bundle" title="Permanent link">&para;</a></h2>
 <p>This example creates an alternative implementation of the dictionary service defined in Example 2. The source code for the bundle is identical except that instead of using English words, French words are used. The only other difference is that in this bundle we do not need to define the dictionary service interface again, since we can just import the definition from the bundle in Example 2. The main point of this example is to illustrate that multiple implementations of the same service may exist; this example will also be of use to us in Example 5.</p>
 <p>In the following source code, the bundle uses its bundle context to register the dictionary service. We implement the dictionary service as an inner class of the bundle activator class, but we could have also put it in a separate file. The source code for our bundle is as follows in a file called <code>Activator.java</code>:</p>
 <div class="codehilite"><pre><span class="cm">/*</span>
@@ -185,7 +207,7 @@
 
 <p>The above command installs and starts the bundle in a single step; it is also possible to install and start the bundle in two steps by using the Felix <code>install</code> and <code>start</code> shell commands. To stop the bundle, use the Felix <code>stop</code> shell command. If the bundle from Example 1 is still active, then we should see it print out the details of the service event it receives when our new bundle registers its dictionary service. Using the Felix shell <code>lb</code> command to get the bundle identifier number for our dictionary service bundle and we can stop and restart it at will using the <code>stop</code> and <code>start</code> commands, respectively. Each time we start and stop our dictionary service bundle, we should see the details of the associated service event printed from the bundle from Example 1. In Example 3, we will create a client for our dictionary service. To exit Felix, we use the <code>shutdown</code> command.</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/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-3.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-3.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-3.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 Tutorial Example 3</h1>
-      <p>Example 3 - Dictionary Client Bundle</p>
+      <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>Example 3 - Dictionary Client Bundle</p>
 <p>This example creates a bundle that is a client of the dictionary service implemented in Example 2. In the following source code, our bundle uses its bundle context to query for a dictionary service. Our client bundle uses the first dictionary service it finds and if none are found it simply prints a message saying so and stops. Using an OSGi service is the same as using any Java interface, we simply need to cast it to the known dictionary service interface. The source code for our bundle is as follows in a file called <code>Activator.java</code>:</p>
 <div class="codehilite"><pre><span class="cm">/*</span>
 <span class="cm"> * Apache Felix OSGi tutorial.</span>
@@ -205,7 +227,7 @@
 <p>The above command installs and starts the bundle in a single step; it is also possible to install and start the bundle in two steps by using the Felix <code>install</code> and start shell commands. When we start the bundle, it will use the shell thread to prompt us for words. Enter one word at a time to check the words and enter a blank line to stop checking words. To restart the bundle, we must use the Felix shell <code>lb</code> command to get the bundle identifier number for the bundle and first use the <code>stop</code> command to stop the bundle, then the <code>start</code> command to restart it. To test the dictionary service, enter any of the words in the dictionary (e.g., "welcome", "to", "the", "OSGi", "tutorial") or any word not in the dictionary.</p>
 <p>This example client is simple enough and, in fact, is too simple. What would happen if the dictionary service were to unregister suddenly? Our client would throw a null pointer exception when it tried to access the service object. This dynamic service availability issue is a central tenent of the OSGi service model. As a result, we must make our client more robust in dealing with such situations. In Example 4, we explore a slightly more complicated dictionary client that dynamically monitors service availability.</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/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-4.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-4.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-4.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 Tutorial Example 4</h1>
-      <h2 id="example-4-robust-dictionary-client-bundle">Example 4 - Robust Dictionary Client Bundle</h2>
+      <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>
+<h2 id="example-4-robust-dictionary-client-bundle">Example 4 - Robust Dictionary Client Bundle<a class="headerlink" href="#example-4-robust-dictionary-client-bundle" title="Permanent link">&para;</a></h2>
 <p>In Example 3, we create a simple client bundle for our dictionary service. The problem with that client was that it did not monitor the dynamic availability of the dictionary service, thus an error would occur if the dictionary service disappeared while the client was using it. In this example we create a client for the dictionary service that monitors the dynamic availability of the dictionary service. The result is a more robust client.</p>
 <p>The functionality of the new dictionary client is essentially the same as the old client, it reads words from standard input and checks for their existence in the dictionary service. Our bundle uses its bundle context to register itself as a service event listener; monitoring service events allows the bundle to monitor the dynamic availability of the dictionary service. Our client uses the first dictionary service it finds. The source code for our bundle is as follows in a file called <code>Activator.java</code>:</p>
 <div class="codehilite"><pre><span class="cm">/*</span>
@@ -296,7 +318,7 @@
 <p>The above command installs and starts the bundle in a single step; it is also possible to install and start the bundle in two steps by using the Felix <code>install</code> and <code>start</code> shell commands. When we start the bundle, it will use the shell thread to prompt us for words. Enter one word at a time to check the words and enter a blank line to stop checking words. To restart the bundle, we must use the Felix shell <code>lb</code> command to get the bundle identifier number for the bundle and first use the <code>stop</code> command to stop the bundle, then the <code>start</code> command to restart it. To test the dictionary service, enter any of the words in the dictionary (e.g., "welcome", "to", "the", "OSGi", "tutorial") or any word not in the dictionary.</p>
 <p>Since this client monitors the dynamic availability of the dictionary service, it is robust in the face of sudden departures of the the dictionary service. Further, when a dictionary service arrives, it automatically gets the service if it needs it and continues to function. These capabilities are a little difficult to demonstrate since we are using a simple single-threaded approach, but in a multi-threaded or GUI-oriented application this robustness is very useful.</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/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-5.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-5.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-5.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 Tutorial Example 5</h1>
-      <h2 id="example-5-service-tracker-dictionary-client-bundle">Example 5 - Service Tracker Dictionary Client Bundle</h2>
+      <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>
+<h2 id="example-5-service-tracker-dictionary-client-bundle">Example 5 - Service Tracker Dictionary Client Bundle<a class="headerlink" href="#example-5-service-tracker-dictionary-client-bundle" title="Permanent link">&para;</a></h2>
 <p>In Example 4, we created a more robust client bundle for our dictionary service. Due to the complexity of dealing with dynamic service availability, even that client may not sufficiently address all situations. To deal with this complexity the OSGi Alliance defined the <code>ServiceTracker</code> utility class back in 2001. In this example we create a client for the dictionary service that uses the <code>ServiceTracker</code> class to monitor the dynamic availability of the dictionary service, resulting in an even more robust client.</p>
 <p>The functionality of the new dictionary client is essentially the same as the one from Example 4. Our bundle uses its bundle context to create a <code>ServiceTracker</code> instance to track the dynamic availability of the dictionary service on our behalf. Our client uses the dictionary service return by the <code>ServiceTracker</code>, which is selected based on a ranking algorithm defined by the OSGi specification. The source code for our bundle is as follows in a file called <code>Activator.java</code>:</p>
 <div class="codehilite"><pre><span class="cm">/*</span>
@@ -218,7 +240,7 @@
 <p>The above command installs and starts the bundle in a single step; it is also possible to install and start the bundle in two steps by using the Felix <code>install</code> and <code>start</code> shell commands. When we start the bundle, it will use the shell thread to prompt us for words. Enter one word at a time to check the words and enter a blank line to stop checking words. To restart the bundle, we must use the Felix shell <code>lb</code> command to get the bundle identifier number for the bundle and first use the <code>stop</code> command to stop the bundle, then the <code>start</code> command to restart it. To test the dictionary service, enter any of the words in the dictionary (e.g., "welcome", "to", "the", "OSGi", "tutorial") or any word not in the dictionary.</p>
 <p>Since this client uses the <code>ServiceTracker</code> class, it is robust in the face of sudden departures of the the dictionary service. Further, when a dictionary service arrives, it automatically gets the service if it needs it and continues to function. These capabilities are a little difficult to demonstrate since we are using a simple single-threaded approach, but in a multi-threaded or GUI-oriented application this robustness is very useful.</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/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-6.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-6.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-6.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 Tutorial Example 6</h1>
-      <h1 id="example-6-spell-checker-service-bundle">Example 6 - Spell Checker Service Bundle</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="example-6-spell-checker-service-bundle">Example 6 - Spell Checker Service Bundle<a class="headerlink" href="#example-6-spell-checker-service-bundle" title="Permanent link">&para;</a></h1>
 <p><em>(This example should be rewritten to use the Service Tracker.)</em></p>
 <p>In this example, we complicate things further by defining a new service that uses an arbitrary number of dictionary services to perform its function. More precisely, we define a spell checker service will aggregate all dictionary services and provide another service that allows us to spell check passages using our underlying dictionary services to verify the spelling of words. Our bundle will only provide the spell checker service if there is at least one dictionary service available. First, we will start by defining the spell checker service interface in a file called <code>SpellChecker.java</code>:</p>
 <div class="codehilite"><pre><span class="cm">/*</span>
@@ -381,7 +403,7 @@
 
 <p>The above command installs and starts the bundle in a single step; it is also possible to install and start the bundle in two steps by using the Felix <code>install</code> and <code>start</code> shell commands. To stop the bundle, use the Felix <code>stop</code> shell command. Using the Felix shell <code>lb</code> command to get the bundle identifier number for our spell checker service bundle and we can stop and restart it at will using the <code>stop</code> and <code>start</code> commands, respectively. Using the <code>services</code> command, we can see which services are currently available in the OSGi framework, including our dictionary and spell checker services. We can experiment with our spell checker service's dynamic availability by stopping the dictionary service bundles; when both dictionary services are stopped, the <code>services</code> command will reveal that our bundle is no longer offering its spell checker service. Likewise, when the dictionary services comebac
 k, so will our spell checker service. We create a client for our spell checker service in Example 7. To exit Felix, we use the <code>shutdown</code> command.</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/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-7.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-7.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-7.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 Tutorial Example 7</h1>
-      <h1 id="example-7-spell-checker-client-bundle">Example 7 - Spell Checker Client Bundle</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="example-7-spell-checker-client-bundle">Example 7 - Spell Checker Client Bundle<a class="headerlink" href="#example-7-spell-checker-client-bundle" title="Permanent link">&para;</a></h1>
 <p>In this example we create a client for the spell checker service we implemented in Example 6. This client monitors the dynamic availability of the spell checker service using the Service Tracker and is very similar in structure to the dictionary client we implemented in Example 5. The functionality of the spell checker client reads passages from standard input and spell checks them using the spell checker service. Our bundle uses its bundle context to create a <code>ServiceTracker</code> object to monitor spell checker services. The source code for our bundle is as follows in a file called <code>Activator.java</code>:</p>
 <div class="codehilite"><pre><span class="cm">/*</span>
 <span class="cm"> * Apache Felix OSGi tutorial.</span>
@@ -217,7 +239,7 @@
 <p>The above command installs and starts the bundle in a single step; it is also possible to install and start the bundle in two steps by using the Felix <code>install</code> and <code>start</code> shell commands. When we start the bundle, it will use the shell thread to prompt us for passages; a passage is a collection or words separate by spaces, commas, periods, exclamation points, question marks, colons, or semi-colons. Enter a passage and press the enter key to spell check the passage or enter a blank line to stop spell checking passages. To restart the bundle, we must use the Felix shell <code>lb</code> command to get the bundle identifier number for the bundle and first use the <code>stop</code> command to stop the bundle, then the <code>start</code> command to restart it.</p>
 <p>Since this client uses the Service Tracker to monitor the dynamic availability of the spell checker service, it is robust in the scenario where the spell checker service suddenly departs. Further, when a spell checker service arrives, it automatically gets the service if it needs it and continues to function. These capabilities are a little difficult to demonstrate since we are using a simple single-threaded approach, but in a multi-threaded or GUI-oriented application this robustness is very useful. </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/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-8.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-8.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-8.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 Tutorial Example 8</h1>
-      <h1 id="example-8-spell-checker-service-using-service-binder">Example 8 - Spell Checker Service using Service Binder</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="example-8-spell-checker-service-using-service-binder">Example 8 - Spell Checker Service using Service Binder<a class="headerlink" href="#example-8-spell-checker-service-using-service-binder" title="Permanent link">&para;</a></h1>
 <p><em>[Note: The Service Binder was the original project to attempt to automate service dependency management for the OSGi platform and was the inspiration for Declarative Services introduced in OSGi R4. The Service Binder is no longer under active development, but this example is kept in the tutorial for historical purposes. New projects should consider using one of the other dependency injection technologies (e.g., Declarative Services, Dependency Manager, or iPOJO).]()</em></p>
 <p>The purpose of this example is to re-implement the spell checker service in Example 6, but to do so using the Service Binder; to complete this, we must download the <a href="">Service Binder</a> bundle. The Service Binder bundle is needed to compile the example and at run time to execute the example.</p>
 <p>The spell checker service of Example 6 was complex because it needed to aggregate all available dictionary services and monitor their dynamic availability. In addition, the spell checker service's own availability was dependent upon the availability of dictionary services; in other words, the spell checker service had a dynamic, one-to-many dependency on dictionary services. As it turns out, service dependencies are not managed at all by the OSGi framework and end up being the responsibility of the application developer. The Service Binder tries to eliminate complex and error-prone service dependency handling by automating it. To do this, the Service Binder replaces the BundleActivator code with a generic bundle activator that parses an XML file that describes the instances we want to create and their service dependencies. Instead of writing a lot of complex code, we simply write a declarative XML file. For an example, consider the following code for the new service's bundle acti
 vator in a file called <code>Activator.java</code>:</p>
@@ -301,7 +323,7 @@
 <p>The above command installs and starts the bundle in a single step; it is also possible to install and start the bundle in two steps by using the Felix <code>install</code> and <code>start</code> shell commands. To stop the bundle, use the Felix <code>stop</code> shell command. Use the Felix shell <code>lb</code> command to get the bundle identifier number for the spell checker service bundle to stop and restart it at will using the <code>stop</code> and <code>start</code> commands, respectively. Using the <code>services</code> command, we can see which services are currently available in the OSGi framework, including our dictionary and spell checker services. We can experiment with our spell checker service's dynamic availability by stopping the dictionary service bundles; when both dictionary services are stopped, the services command will reveal that our bundle is no longer offering its spell checker service. Likewise, when the dictionary services comeback, so will our spell ch
 ecker service. This bundle will work with the spell checker client bundle that we created in Example 7, so feel free to experiment. To exit Felix, use the <code>shutdown</code> command.</p>
 <p><em>[Note: The spell checker client bundle in Example 7 could also be re-implemented using the Service Binder approach outlined in this example. The spell checker client has a one-to-one, dynamic service dependency on the spell checker service. Further, an entire application of instances could be described in a single <code>metadata.xml</code> in a single bundle or across a collection of bundles and the Service Binder will automatically manage the service dependencies among them.]()</em></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/tutorials-examples-and-presentations/checking-out-and-building-felix-with-netbeans.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/checking-out-and-building-felix-with-netbeans.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/checking-out-and-building-felix-with-netbeans.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>Checking Out and Building Felix with NetBeans</h1>
-      <h1 id="checking-out-and-building-felix-with-netbeans">Checking out and building Felix with NetBeans</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="checking-out-and-building-felix-with-netbeans">Checking out and building Felix with NetBeans<a class="headerlink" href="#checking-out-and-building-felix-with-netbeans" title="Permanent link">&para;</a></h1>
 <p>In this how-to we describe the process of checking out and building Felix from source using the NetBeans IDE.</p>
-<h2 id="required-software">Required Software:</h2>
+<h2 id="required-software">Required Software:<a class="headerlink" href="#required-software" title="Permanent link">&para;</a></h2>
 <ol>
 <li>NetBeans 6.1 - You can get NetBeans from the <a href="http://www.netbeans.org/">NetBeans web site</a>.</li>
 <li>Subversion command-line client - NetBeans uses the Subversion command-line client for its Subversion integration. You can get the Subversion command-line client from <a href="http://subversion.tigris.org/">Tigris</a> or if you are working on a Unix machine it will most likely be available in your OS's package repository.</li>
@@ -79,17 +101,15 @@
 **Why do we need maven?**
 </div>
 
-<h2 id="checking-out-felix">Checking out Felix</h2>
+<h2 id="checking-out-felix">Checking out Felix<a class="headerlink" href="#checking-out-felix" title="Permanent link">&para;</a></h2>
 <p><em>1)</em> From NetBeans' main menu select "<code>Versioning-&gt;Subversion-&gt;Checkout</code>" as shown in Figure 1.</p>
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure 1: NetBeans Subversion Menu{color}
-!figure1.png!
-{div}</p>
+!figure1.png!</p>
 <p><em>2)</em> Now we need to fill in the checkout dialog box. For this dialog box all we need to do is fill in the "<code>Repository URL</code>" (See below for what this should be). Once you have set the Repository URL you can press the "<code>Next</code>" button. See Figure 2 for what the dialog should look like when you are done.</p>
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure 2: NetBeans checkout dialog box{color}
-!figure2.png!
-{div}</p>
+!figure2.png!</p>
 <p><em>3)</em> In the next panel of the checkout dialog box we need to set where we want to put the source code as well as some parameters that will get passed to the subversion client.</p>
 <ul>
 <li>Repository Folder(s) - This should be set for you, but if it is not it should be "<code>felix/trunk</code>"</li>
@@ -99,58 +119,50 @@
 <li>Scan for NetBeans Projects after checkout check box - You can either check or uncheck this box. Either way NetBeans will not open any of the projects because there are approximately 183 projects in the Felix source tree. Later we will pick the specific project we need for compiling Felix. </li>
 </ul>
 <p>Once you have filled in the second panel of the checkout dialog press the "<code>Finish</code>" button at the bottom of the dialog. See Figure 3 for how the dialog should look.</p>
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure 3: NetBeans checkout dialog box (panel 2){color}
-!figure3.png!
-{div}</p>
+!figure3.png!</p>
 <p><em>4)</em> It may take a while for the checkout to complete. If you want to see what is happening, take a look at the output window at the bottom of the NetBeans window. If you don't see it select "<code>Window-&gt;Output-&gt;Output</code>" to make it display. You should see something like what is shown in Figure 4.</p>
 <p>{div:style=css|align=center}
 {color:#4f81bd}Figure 4: NetBeans output window{color}
 !figure4.png!</p>
 <p>{div}</p>
 <p><em>5)</em> If you left the "<code>Scan for NetBeans Projects after checkout</code>" check box checked you will see the dialog in Figure 5 when Subversion finishes checking out Felix. For now just press the "<code>Cancel</code>" button.</p>
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure 5: NetBeans open project dialog{color}
-!figure5.png!
-{div}</p>
+!figure5.png!</p>
 <p><em>6)</em> This concludes the section on checking out the Felix source code.</p>
-<h2 id="building-felix">Building Felix</h2>
+<h2 id="building-felix">Building Felix<a class="headerlink" href="#building-felix" title="Permanent link">&para;</a></h2>
 <p>In this section we will be going over how to build Felix from within NetBeans. </p>
 <p><em>1)</em> Setup external Maven in NetBeans</p>
 <p>Before we can build Felix, we need to set up NetBeans so that it can use our external Maven instead of the one bundled with the Maven plugin. You do this in the NetBeans options dialog ("<code>Tools-&gt;Options</code>"). Select the "<code>Miscellaneous</code>" icon at the top of the dialog. Then select the "<code>Maven 2</code>" tab. What we want to do here is tell NetBeans where we installed Maven. You can press the "<code>Browse</code>" button to browse to the directory where you installed Maven. You can leave the rest of the options as they are. See Figure 6 for how this dialog looks and how to set it up.</p>
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure 6: NetBeans Maven option dialog{color}
-!figure6.png!
-{div}</p>
+!figure6.png!</p>
 <p><em>2)</em> Open the Felix project folder</p>
 <p>Now we need to open the Felix build project folder. This will be the "<code>pom</code>" project. It is located in the directory where you checked out the source code. When you locate it select the project and press the <code>Open Project</code> button. See Figure 7 for how this looks.</p>
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure 7: NetBeans Open Project dialog{color}
-!figure7.png!
-{div}</p>
+!figure7.png!</p>
 <p>When the project is opened your "<code>Projects</code>" pane should look something like Figure 8.</p>
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure8 : NetBeans Project pane{color}
-!figure8.png!
-{div}</p>
+!figure8.png!</p>
 <p><em>3)</em> Configure the project</p>
 <p>We now need to change one aspect of the project configuration. So right click on the project and select the "<code>Properties</code>" menu item, then select the "<code>Actions</code>" category. What we need to do here is check the "<code>Use external Maven for build execution</code>" checkbox. Once you have done this you can press the "<code>OK</code>" Button. See Figure 9 for how this should look.</p>
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure 9: NetBeans Project properties dialog{color}
-!figure9.png!
-{div}</p>
+!figure9.png!</p>
 <p><em>4)</em> Select a build profile</p>
 <p>Felix is built in two phases. These two phases are controlled by Maven profiles so we want to set the profile that we want to build. You do this by right clicking on the project then select "<code>Profiles-&gt;packaging-plugins</code>" to select the profile, see Figure 10.</p>
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure 10: NetBeans Project profiles{color}
-!figure10.png!
-{div}</p>
+!figure10.png!</p>
 <p><em>5)</em> Build Felix plugins</p>
 <p>Now that we have selected the correct profile all we have to do is build it. Right click on the project and select the "<code>Clean and Build</code>" menu item. You should see something like Figure 11 when the build is complete. <em>NOTE:</em> If you have not done this before it may take a little while, since Maven needs to download a bunch of plugins.</p>
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure 11: Plugins build output{color}
-!figure11.png!
-{div}</p>
+!figure11.png!</p>
 <p><em>6)</em> Build Felix bundle</p>
 <p>Now that we have built the plugins it is time to build the Felix bundle. Like in step 4, we right click on the project and select "<code>Profiles-&gt;packaging-plugins</code>" (to unselect it), then do it again but this time select "<code>Profiles-&gt;packaging-bundle</code>". Once you have done that you can "<code>Clean and Build</code>" the project. See Figure 12 for what you should see in the output window when the build completes.</p>
 <div class="note" markdown="1">
@@ -158,26 +170,25 @@
 Sometimes, the Felix bundle build throws this error. Just try to build it again and it should go away after you do it a couple of times as there will be less to build each time. Or if you want you can increase the memory available to Maven. I have found that setting the environment variable MAVEN_OPTS to "-Xmx1024m -Xms512m" allows me to build Felix completely the first time though. It should be noted that if you change this you may need to shut down and restart NetBeans before Maven will see this environment variable as Maven inherits its environment variables from NetBeans and NetBeans will not get the new or updated variable until you restart it. 
 </div>
 
-<p>{div:style=css|align=center}
+<p div="div">{div:style=css|align=center}
 {color:#4f81bd}Figure 12: Bundle build output{color}
-!figure12.png!
-{div}</p>
-<h2 id="conclusion">Conclusion</h2>
+!figure12.png!</p>
+<h2 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">&para;</a></h2>
 <p>If every thing went as expected then you should have a built and ready to run Felix installation in the "<code>main</code>" directory under the directory where you checked out Felix. You can now run Felix from the command line by changing to that directory and running this command:</p>
 <div class="codehilite"><pre><span class="n">java</span> <span class="o">-</span><span class="n">jar</span> <span class="n">bin</span><span class="o">/</span><span class="n">felix</span><span class="p">.</span><span class="n">jar</span>
 </pre></div>
 
 
-<h2 id="other-documentation">Other documentation</h2>
+<h2 id="other-documentation">Other documentation<a class="headerlink" href="#other-documentation" title="Permanent link">&para;</a></h2>
 <p>You may also want to read:</p>
 <ul>
 <li><a href="/documentation/development/integrating-felix-with-netbeans.html">Integrating Felix with NetBeans</a> - A how-to style document that shows how to run Felix under NetBeans. </li>
 <li><a href="/documentation/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.html">Felix usage</a> - Go to the Felix usage page to learn how to launch the Felix framework. </li>
 </ul>
-<h2 id="how-to-get-help">How to get help</h2>
+<h2 id="how-to-get-help">How to get help<a class="headerlink" href="#how-to-get-help" title="Permanent link">&para;</a></h2>
 <p>If you need any help or have questions about this document you can ask on the Felix Users Mailing list. See <a href="/mailinglists.html">Felix Mailing lists</a> for how to subscribe to the list.</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/tutorials-examples-and-presentations/presentations.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/presentations.html (original)
+++ websites/staging/felix/trunk/content/documentation/tutorials-examples-and-presentations/presentations.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,8 +77,19 @@
       </div>
 
       <h1>Presentations</h1>
-      <h1 id="felix-osgi-presentations">Felix &amp; OSGi Presentations</h1>
-<table>
+      <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="felix-osgi-presentations">Felix &amp; OSGi Presentations<a class="headerlink" href="#felix-osgi-presentations" title="Permanent link">&para;</a></h1>
+<table class="table">
 <thead>
 <tr>
 <th>Date</th>
@@ -207,7 +229,7 @@
 </tbody>
 </table>
       <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/index.html
==============================================================================
--- websites/staging/felix/trunk/content/index.html (original)
+++ websites/staging/felix/trunk/content/index.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,13 +77,24 @@
       </div>
 
       <h1>Welcome to Apache Felix</h1>
-      <p>Apache Felix is a community effort to implement the <a href="http://www.osgi.org/Specifications/HomePage">OSGi Framework and Service platform</a> and other interesting OSGi-related technologies under the Apache license. The OSGi specifications originally targeted embedded devices and home services gateways, but they are ideally suited for any project interested in the principles of modularity, component-orientation, and/or service-orientation. OSGi technology combines aspects of these aforementioned principles to define a dynamic service deployment framework that is amenable to remote management.</p>
-<h1 id="news">News</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>
+<p>Apache Felix is a community effort to implement the <a href="http://www.osgi.org/Specifications/HomePage">OSGi Framework and Service platform</a> and other interesting OSGi-related technologies under the Apache license. The OSGi specifications originally targeted embedded devices and home services gateways, but they are ideally suited for any project interested in the principles of modularity, component-orientation, and/or service-orientation. OSGi technology combines aspects of these aforementioned principles to define a dynamic service deployment framework that is amenable to remote management.</p>
+<h1 id="news">News<a class="headerlink" href="#news" title="Permanent link">&para;</a></h1>
 <ul id="newsExcerpt">
 </ul>
 
 <p>Refer to the news <a href="/news.html">archive</a> for all news.</p>
-<h1 id="apache-felix-subprojects">Apache Felix Subprojects</h1>
+<h1 id="apache-felix-subprojects">Apache Felix Subprojects<a class="headerlink" href="#apache-felix-subprojects" title="Permanent link">&para;</a></h1>
 <p>The Felix project is organized into subprojects, where each subproject targets a specific OSGi specification or OSGi-related technology; the following list summarizes each released subproject:</p>
 <ul>
 <li><a href="/documentation/subprojects/apache-felix-config-admin.html">Config Admin</a> - An implementation of the OSGi Configuration Admin service specification for managing bundle configuration properties.</li>
@@ -109,7 +131,7 @@
         });
 </script>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1685173 by davidb on Fri, 12 Jun 2015 21:12:40 +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/links.html
==============================================================================
--- websites/staging/felix/trunk/content/links.html (original)
+++ websites/staging/felix/trunk/content/links.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>links</h1>
-      <h1 id="links">Links</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="links">Links<a class="headerlink" href="#links" title="Permanent link">&para;</a></h1>
 <ul>
 <li>{link:OSGi and Gravity Service Binder Tutorial|http://oscar-osgi.sourceforge.net/tutorial/}</li>
 <li>{link:Service Binder: Simplifying application development on the OSGi services platform|http://gravity.sourceforge.net/servicebinder/}</li>
@@ -76,7 +98,7 @@
 <li>{link:Fun with OSGi|http://osgifun.blogspot.com/}</li>
 </ul>
       <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