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 2018/10/01 20:50:35 UTC

svn commit: r1036002 - in /websites/staging/felix/trunk/content: ./ documentation/subprojects/apache-felix-dependency-manager/reference/component-bundle-adapter.html

Author: buildbot
Date: Mon Oct  1 20:50:35 2018
New Revision: 1036002

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/reference/component-bundle-adapter.html

Propchange: websites/staging/felix/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Oct  1 20:50:35 2018
@@ -1 +1 @@
-1842562
+1842563

Modified: websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-bundle-adapter.html
==============================================================================
--- websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-bundle-adapter.html (original)
+++ websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/component-bundle-adapter.html Mon Oct  1 20:50:35 2018
@@ -97,57 +97,37 @@ based on the adapter implementation clas
 with the specified interface and with service properties found from the 
 original bundle OSGi manifest headers plus any extra properties you supply 
 here. If you declare the original bundle as a member it will be injected. </p>
-<p>An example:</p>
-<div class="codehilite"><pre><span class="n">manager</span><span class="p">.</span><span class="n">createBundleAdapterService</span><span class="p">(</span><span class="n">Bundle</span><span class="p">.</span><span class="n">INSTALLED</span> <span class="o">|</span> <span class="n">Bundle</span><span class="p">.</span><span class="n">RESOLVED</span> <span class="o">|</span> <span class="n">Bundle</span><span class="p">.</span><span class="n">ACTIVE</span><span class="p">,</span> 
-    &quot;<span class="p">(</span><span class="n">Bundle</span><span class="o">-</span><span class="n">SymbolicName</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">dependencymanager</span><span class="p">)</span>&quot;<span class="p">,</span> <span class="n">true</span><span class="p">)</span>
-    <span class="p">.</span><span class="n">setInterface</span><span class="p">(</span><span class="n">AdapterService</span><span class="p">.</span><span class="n">class</span><span class="p">.</span><span class="n">getName</span><span class="p">(),</span> <span class="n">new</span> <span class="n">Hashtable</span><span class="p">()</span> <span class="p">)</span>
-    <span class="p">.</span><span class="n">setImplementation</span><span class="p">(</span><span class="n">AdapterServiceImpl</span><span class="p">.</span><span class="n">class</span><span class="p">);</span>
+<h2 id="example-using-api">Example using API:<a class="headerlink" href="#example-using-api" title="Permanent link">&para;</a></h2>
+<p>In the following example, a "VideoPlayer" Service is registered into the OSGi registry each time an active bundle containing a "Video-Path" manifest header is detected:</p>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Activator</span> <span class="kd">extends</span> <span class="n">DependencyManagerActivator</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">init</span><span class="o">(</span><span class="n">BundleContext</span> <span class="n">ctx</span><span class="o">,</span> <span class="n">DependencyManager</span> <span class="n">dm</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+        <span class="n">Component</span> <span class="n">c</span> <span class="o">=</span> <span class="n">dm</span><span class="o">.</span><span class="na">createBundleComponent</span><span class="o">()</span>
+            <span class="o">.</span><span class="na">setBundleFilter</span><span class="o">(</span><span class="n">Bundle</span><span class="o">.</span><span class="na">ACTIVE</span><span class="o">,</span> <span class="s">&quot;(Video-Path=*)&quot;</span><span class="o">)</span>
+            <span class="o">.</span><span class="na">setInterface</span><span class="o">(</span><span class="n">VideoPlayer</span><span class="o">.</span><span class="na">class</span><span class="o">.</span><span class="na">getName</span><span class="o">(),</span> <span class="k">new</span> <span class="n">Hashtable</span><span class="o">()</span> <span class="o">)</span>
+            <span class="o">.</span><span class="na">setImplementation</span><span class="o">(</span><span class="n">VideoPlayerImpl</span><span class="o">.</span><span class="na">class</span><span class="o">);</span>
+        <span class="n">dm</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="n">c</span><span class="o">);</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </pre></div>
 
 
-<h2 id="bundleadapterservice">@BundleAdapterService<a class="headerlink" href="#bundleadapterservice" title="Permanent link">&para;</a></h2>
-<p>The following attributes are supported.</p>
-<h3 id="annotation-attributes">Annotation attributes:<a class="headerlink" href="#annotation-attributes" title="Permanent link">&para;</a></h3>
-<hr />
-<p><strong><code>filter</code></strong>  <br />
-<em>Required</em>: False  <br />
-<em>Default</em>: --</p>
-<p>The filter used to match some OSGi manifest headers from a given bundle.</p>
-<hr />
-<p><strong><code>provides</code></strong>  <br />
-<em>Required</em>: False  <br />
-<em>Default</em>: all directly implemented interfaces.</p>
-<p>The interface(s) to use when registering adapters.
-By default, the interface(s) directly implemented by the annotated class is (are) used.</p>
-<hr />
-<p><strong><code>properties</code></strong>  <br />
-<em>Required</em>: False  <br />
-<em>Default</em>: --</p>
-<p>Additional properties to use with the service registration.</p>
-<hr />
-<p><strong><code>stateMask</code></strong>  <br />
-<em>Required</em>: False  <br />
-<em>Default</em>: INSTALLED | RESOLVED | ACTIVE</p>
-<p>The bundle state mask to apply. The mask is made up of the flags provided by 
-the org.osgi.framework.Bundle states 
-(UNINSTALLED | INSTALLED | RESOLVED | STARTING | STARTED | ACTIVE).</p>
-<hr />
-<p><strong><code>propagate</code></strong>  <br />
-<em>Required</em>: False  <br />
-<em>Default</em>: true</p>
-<p>Specifies if manifest headers from the bundle should be propagated to the 
-exposed service properties.</p>
-<hr />
-<p><strong><code>factoryMethod</code></strong>  <br />
-<em>Required</em>: False  <br />
-<em>Default</em>: --</p>
-<p>Sets the static method used to create the BundleAdapterService implementation 
-instance.</p>
-<h3 id="usage-examples">Usage Examples<a class="headerlink" href="#usage-examples" title="Permanent link">&para;</a></h3>
-<p>In the following example, a "VideoPlayer" Service is registered into the OSGi registry each time an active bundle containing a "Video-Path" manifest header is detected:</p>
-<div class="codehilite"><pre><span class="nd">@BundleAdapterService</span><span class="o">(</span><span class="n">filter</span> <span class="o">=</span> <span class="s">&quot;(Video-Path=*)&quot;</span><span class="o">,</span> <span class="n">stateMask</span> <span class="o">=</span> <span class="n">Bundle</span><span class="o">.</span><span class="na">ACTIVE</span><span class="o">,</span> <span class="n">propagate</span><span class="o">=</span><span class="kc">true</span><span class="o">)</span>
+<h2 id="example-using-dm-lambda">Example using DM Lambda:<a class="headerlink" href="#example-using-dm-lambda" title="Permanent link">&para;</a></h2>
+<div class="codehilite"><pre><span class="kd">public</span> <span class="kd">class</span> <span class="nc">Activator</span> <span class="kd">extends</span> <span class="n">DependencyManagerActivator</span> <span class="o">{</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">init</span><span class="o">(</span><span class="n">BundleContext</span> <span class="n">ctx</span><span class="o">,</span> <span class="n">DependencyManager</span> <span class="n">dm</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span> 
+       <span class="n">bundleAdapter</span><span class="o">(</span><span class="n">adapt</span> <span class="o">-&gt;</span> <span class="n">adapt</span>
+           <span class="o">.</span><span class="na">impl</span><span class="o">(</span><span class="n">VideoPlayerImpl</span><span class="o">.</span><span class="na">class</span><span class="o">)</span>
+           <span class="o">.</span><span class="na">provides</span><span class="o">(</span><span class="n">VideoPlayer</span><span class="o">.</span><span class="na">class</span><span class="o">,</span> <span class="n">foo</span> <span class="o">-&gt;</span> <span class="s">&quot;bar&quot;</span><span class="o">)</span>
+           <span class="o">.</span><span class="na">mask</span><span class="o">(</span><span class="n">Bundle</span><span class="o">.</span><span class="na">ACTIVE</span><span class="o">)</span>
+           <span class="o">.</span><span class="na">filter</span><span class="o">(</span><span class="s">&quot;(Video-Path=*)&quot;</span><span class="o">));</span>
+    <span class="o">}</span>
+<span class="o">}</span>
+</pre></div>
+
+
+<h2 id="example-using-annotations">Example using annotations:<a class="headerlink" href="#example-using-annotations" title="Permanent link">&para;</a></h2>
+<div class="codehilite"><pre><span class="nd">@BundleAdapterService</span><span class="o">(</span><span class="n">filter</span> <span class="o">=</span> <span class="s">&quot;(Video-Path=*)&quot;</span><span class="o">,</span> <span class="n">stateMask</span> <span class="o">=</span> <span class="n">Bundle</span><span class="o">.</span><span class="na">ACTIVE</span><span class="o">)</span>
 <span class="kd">public</span> <span class="kd">class</span> <span class="nc">VideoPlayerImpl</span> <span class="kd">implements</span> <span class="n">VideoPlayer</span> <span class="o">{</span>
-    <span class="n">Bundle</span> <span class="n">bundle</span><span class="o">;</span> <span class="c1">// Injected by reflection</span>
+    <span class="kd">volatile</span> <span class="n">Bundle</span> <span class="n">bundle</span><span class="o">;</span> <span class="c1">// Injected by reflection</span>
 
     <span class="kt">void</span> <span class="nf">play</span><span class="o">()</span> <span class="o">{</span>
         <span class="n">URL</span> <span class="n">mpegFile</span> <span class="o">=</span> <span class="n">bundle</span><span class="o">.</span><span class="na">getEntry</span><span class="o">(</span><span class="n">bundle</span><span class="o">.</span><span class="na">getHeaders</span><span class="o">().</span><span class="na">get</span><span class="o">(</span><span class="s">&quot;Video-Path&quot;</span><span class="o">));</span>
@@ -158,7 +138,7 @@ instance.</p>
 <span class="o">}</span>
 </pre></div>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
-        Rev. 1665812 by marrs on Wed, 11 Mar 2015 09:02:04 +0000
+        Rev. 1842563 by pderop on Mon, 1 Oct 2018 20:50:17 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project