You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by bu...@apache.org on 2013/01/23 14:40:55 UTC

svn commit: r847647 - in /websites/staging/felix/trunk/content: ./ documentation/subprojects/apache-felix-dependency-manager/apache-felix-dependency-manager-reference-guide.html

Author: buildbot
Date: Wed Jan 23 13:40:55 2013
New Revision: 847647

Log:
Staging update by buildbot for felix

Modified:
    websites/staging/felix/trunk/content/   (props changed)
    websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/apache-felix-dependency-manager-reference-guide.html

Propchange: websites/staging/felix/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Wed Jan 23 13:40:55 2013
@@ -1 +1 @@
-1435059
+1437389

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/apache-felix-dependency-manager-reference-guide.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/apache-felix-dependency-manager-reference-guide.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/apache-felix-dependency-manager-reference-guide.html Wed Jan 23 13:40:55 2013
@@ -128,9 +128,44 @@
 <h3 id="monitoring-and-shell">Monitoring and Shell</h3>
 <p>The dependency manager has shell commands that allow you to inspect at runtime the state of the individual components and their dependencies. A separate bundle exists that enables these commands, and the shells it currently supports are: Apache Felix, Gogo and Eclipse Equinox Shell.</p>
 <h3 id="filter-indices">Filter Indices</h3>
-<p>These are still experimental.</p>
+<p>Filter indices allow you to speed up the service resolution process by skipping the services registry, in favor of a fast index on given service properties.</p>
+<p>The Dependency Manager will look for a set of filter indices in the <code>org.apache.felix.dependencymanager.filterindex</code> system property. This system property uses the following syntax,</p>
+<div class="codehilite"><pre><span class="nb">index</span> <span class="o">::=</span> <span class="s">&#39;*aspect*&#39;</span> <span class="o">|</span> <span class="s">&#39;*adapter*&#39;</span> <span class="o">|</span> <span class="n">property</span><span class="o">-</span><span class="nb">index</span>
+<span class="n">indices</span> <span class="o">::=</span> <span class="nb">index</span> <span class="o">|</span> <span class="n">indices</span> <span class="s">&#39;;&#39;</span> <span class="nb">index</span>
+</pre></div>
+
+
+<p>The implementation ships with three kinds of index implementations.</p>
+<ul>
+<li><em>Service property indices</em> are based on a set of service properties, like a multi-column index in a database. </li>
+<li><em>Aspect indices</em> work with Dependency Manager Aspect services, and will provide indexing for the specific filters that they use.</li>
+<li><em>Adapter indices</em> work like Aspect indices, but for Adapter services.</li>
+</ul>
+<h4 id="performance">Performance</h4>
+<p>The index isn't free, but reduces the linear (and wasteful) filter-based lookup to an indexed log(n) lookup. You can expect noticeable speedup if you have at least several hundred services.</p>
+<h4 id="examples">Examples</h4>
+<div class="codehilite"><pre><span class="o">-</span><span class="n">Dorg</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">felix</span><span class="o">.</span><span class="n">dependencymanager</span><span class="o">.</span><span class="n">filterindex</span><span class="o">=</span><span class="n">objectClass</span>
+</pre></div>
+
+
+<p>Sets an index on <code>objectClass</code>, speeding up lookups for any filter that contains an <code>objectClass</code> in its filter (all regular services do).</p>
+<div class="codehilite"><pre><span class="o">-</span><span class="n">Dorg</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">felix</span><span class="o">.</span><span class="n">dependencymanager</span><span class="o">.</span><span class="n">filterindex</span><span class="o">=</span><span class="n">objectClass</span><span class="p">,</span><span class="n">id</span>
+</pre></div>
+
+
+<p>This filter helps if you have a lot of similar services, identified by some <code>id</code>.</p>
+<div class="codehilite"><pre><span class="o">-</span><span class="n">Dorg</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">felix</span><span class="o">.</span><span class="n">dependencymanager</span><span class="o">.</span><span class="n">filterindex</span><span class="o">=</span><span class="n">objectClass</span><span class="p">,</span><span class="n">id</span><span class="p">;</span><span class="n">objectClass</span><span class="p">,</span><span class="n">ipAddress</span>
+</pre></div>
+
+
+<p>This is a set of two filter indices, helping when you have one set of services that has an <code>id</code>, and another set that uses an <code>ipAddress</code> for identification.</p>
+<div class="codehilite"><pre><span class="o">-</span><span class="n">Dorg</span><span class="o">.</span><span class="n">apache</span><span class="o">.</span><span class="n">felix</span><span class="o">.</span><span class="n">dependencymanager</span><span class="o">.</span><span class="n">filterindex</span><span class="o">=*</span><span class="n">aspect</span><span class="o">*</span>
+</pre></div>
+
+
+<p>Provides indexing for all Aspect services.</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. 1437389 by marrs on Wed, 23 Jan 2013 13:40:43 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project