<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

       https://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
  <head>
    <title>Apache Felix - Tutorials, Examples, and Presentations</title>
    <link rel="icon" href="/res/favicon.ico">
    <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
    <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  </head>
  <body>
    <div class="title">
      <div class="logo">
        <a href="https://felix.apache.org/">
          <img border="0" alt="Apache Felix" src="/res/logo.png">
        </a>
      </div>
      <div class="header">
        <a href="https://www.apache.org/">
          <img border="0" alt="Apache" src="/res/apache.png">
        </a>
      </div>
    </div>
    
    <div class="menu"> 
      <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 />
<a href="/documentation/community/project-info.html">Project Info</a>  <br />
<a href="/documentation/community/contributing.html">Contributing</a>  <br />
<a href="/sitemap.html">Site Map</a>  <br />
<a href="https://www.apache.org/">ASF</a>  <br />
<a href="https://www.apache.org/security/">Security</a>  <br />
<a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>  <br />
<a href="https://www.apache.org/foundation/thanks.html">Sponsors</a>    </p>
<iframe
    src="https://www.apache.org/ads/button.html"
    style="border-width:0; float: left"
    frameborder="0"
    scrolling="no"
    width="135"
    height="135">
</iframe>
    </div>
    
    <div class="main">
      <div class="breadcrump" style="font-size: 80%;">
        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>
      </div>

      <h1>Tutorials, Examples, and Presentations</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>
<ul>
<li><a href="/documentation/tutorials-examples-and-presentations/apache-felix-application-demonstration.html">Apache Felix Application Demonstration</a></li>
<li><a href="/documentation/tutorials-examples-and-presentations/apache-felix-osgi-faq.html">OSGi Frequently Asked Questions</a></li>
<li><a href="/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial.html">Apache Felix OSGi Tutorial</a></li>
</ul>
<h2 id="books">Books<a class="headerlink" href="#books" title="Permanent link">&para;</a></h2>
<p>The most important "books" on OSGi are of course the specifications themselves. They are quite a good read but are also complete and contain stuff, you might be interested
in. So for a starter you might interested to read the following:</p>
<ul>
<li>Core Specification (Layer, Services, LiveCycle part)</li>
<li>Compendium Specification</li>
<li>Enterprise Specification</li>
</ul>
<p>Visit the <a href="http://www.osgi.org/Specifications/HomePage">OSGi Alliance Specifications</a> page to download the specifications for free.</p>
<p>Apart from the specifications a number of books have recently been published. They are listed here in no particular order:</p>
<ul>
<li><a href="http://www.manning.com/hall/">OSGi in Action</a>; Richard Hall, Karl Pauls, Stuart McCulloch, David Savage; Manning Publications, 2011.
Covers most (if not all) of R 4.2 specs and also contains a lot of side information. The authors of this book are committers and/or PMC members of the Apache Felix project.</li>
<li><a href="http://www.amazon.com/OSGi-Equinox-Creating-Modular-Systems/dp/0321585712">OSGi and Equinox: creating highly modular Java systems</a>; Jeff McAffer, Paul VanderLei, Simon Archer; Addison-Wesley, 2010.
Despite its dependency on Equinox it might be helpful, because they use Declarative Services intensely for their sample application throughout the book and we use Declarative Services intensely, too.</li>
<li><a href="http://www.manning.com/alves/">OSGi in Depth</a>; Alexandre de Castro Alves; Manning, 2011.
I cannot say anything on this book except that he seems to have used Apache Felix for the samples....</li>
<li><a href="http://www.manning.com/cummins/">Enterprise OSGi in Action: With examples using Apache Aries</a>; Holly Cummins, Timothy Ward; Manning, 2013
Covers Enterprise OSGi specifications, which are becoming more and more important.</li>
<li><a href="http://www.amazon.com/Java-Application-Architecture-Modularity-Development/dp/0321247132">Java Application Architecture: Modularity Patterns with Examples Using OSGi (Agile Software Development Series)</a>; Kirk Knoernschild; Prentice Hall, 2012
Primarily covers Java Application Architecture using OSGi for the framework to implement.</li>
<li><a href="http://njbartlett.name/osgibook.html">OSGi in Practice</a>; Neil Bartlett; Free PDF EBook.
Many OSGi core concepts are greatly explained, and its free;</li>
<li><a href="http://www.packtpub.com/open-services-gateway-initiative-starter/book">Instant OSGi Starter</a>; Jamie Goodyear, Johan Edstrom; Packt, 2013</li>
<li><a href="http://www.packtpub.com/osgi-and-apache-felix-30-beginners-guide/book">OSGi and Apache Felix 3.0 Beginner's Guide</a>; Walid Joseph Gédéon; Packt, 2010</li>
<li><a href="http://www.manning.com/cogoluegnes/">Spring Dynamic Modules in Action</a>; Arnaud Cogoluègnes, Thierry Templier, Andy Piper; Manning, 2010</li>
<li><a href="http://shop.oreilly.com/product/0636920028086.do#">Building Modular Cloud Apps with OSGi</a>; Paul Bakker, Bert Ertman; O'Reilly, 2013. Uses Apache Felix. For experienced Java developers in the enterprise, this practical, hands-on book shows you how to use OSGi to design, develop, and deploy modular cloud applications. </li>
</ul>
      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
        Rev. 1874787 by pauls on Wed, 4 Mar 2020 13:22:01 +0000
      </div>
      <div class="trademarkFooter"> 
        Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project
        logo are trademarks of The Apache Software Foundation. All other marks mentioned
        may be trademarks or registered trademarks of their respective owners.
      </div>
    </div>
  </body>
</html>
