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-subscr...@felix.apache.org</a>; after subscribing, email 
questions or feedback to 
[us...@felix.apache.org|mailto:us...@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


Reply via email to