Author: buildbot
Date: Tue Oct  9 23:21:36 2018
New Revision: 1036218

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/service-scopes.html

Propchange: websites/staging/felix/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Tue Oct  9 23:21:36 2018
@@ -1 +1 @@
-1843366
+1843368

Modified: 
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/service-scopes.html
==============================================================================
--- 
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/service-scopes.html
 (original)
+++ 
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/service-scopes.html
 Tue Oct  9 23:21:36 2018
@@ -203,23 +203,25 @@ and when all dependencies are satisfied
 then the ServiceFactory (or PrototypeServiceFactory) is registered.
 And when one client will request a component instance, then a clone will be 
created and returned.</p>
 <p>Example of a scoped component which defines an init method:</p>
-<div class="codehilite"><pre><span class="kn">import</span> <span 
class="nn">org.apache.felix.dm.annotation.api.Component</span><span 
class="o">;</span>
-<span class="kn">import</span> <span 
class="nn">org.apache.felix.dm.annotation.api.ServiceScope</span><span 
class="o">;</span>
+<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">DependencyActivatorBase</span> <span 
class="o">{</span>
+    <span class="nd">@Override</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">context</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">dm</span><span class="o">.</span><span 
class="na">add</span><span class="o">(</span><span 
class="n">createComponent</span><span class="o">()</span>
+            <span class="o">.</span><span class="na">setScope</span><span 
class="o">(</span><span class="n">ServiceScope</span><span 
class="o">.</span><span class="na">PROTOTYPE</span><span class="o">)</span>
+            <span class="o">.</span><span class="na">setInterface</span><span 
class="o">(</span><span class="n">MyService</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="kc">null</span><span class="o">)</span>
+            <span class="o">.</span><span 
class="na">setImplementation</span><span class="o">(</span><span 
class="n">MyServiceImpl</span><span class="o">.</span><span 
class="na">class</span><span class="o">));</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 
-<span class="nd">@Component</span><span class="o">(</span><span 
class="n">scope</span><span class="o">=</span><span 
class="n">ServiceScope</span><span class="o">.</span><span 
class="na">PROTOTYPE</span><span class="o">)</span>
 <span class="kd">public</span> <span class="kd">static</span> <span 
class="kd">class</span> <span class="nc">MyServiceImpl</span> <span 
class="kd">implements</span> <span class="n">MyService</span> <span 
class="o">{</span>
-
-   <span class="nd">@Init</span>
-   <span class="kt">void</span> <span class="nf">init</span><span 
class="o">(</span><span class="n">Component</span> <span 
class="n">comp</span><span class="o">)</span> <span class="o">{</span>
+    <span class="kt">void</span> <span class="nf">init</span><span 
class="o">(</span><span class="n">Component</span> <span 
class="n">comp</span><span class="o">)</span> <span class="o">{</span>
         <span class="c1">// add dependencies dynamically</span>
-   <span class="o">}</span>
+    <span class="o">}</span>
 
-    <span class="nd">@Start</span>
     <span class="kt">void</span> <span class="nf">start</span><span 
class="o">()</span> <span class="o">{</span>
        <span class="c1">// only called on clones, not on the prototype 
instance</span>
     <span class="o">}</span>
 
-    <span class="nd">@Stop</span>
     <span class="kt">void</span> <span class="nf">stop</span><span 
class="o">()</span> <span class="o">{</span>
        <span class="c1">// called on each clone, not on the prototype instance 
singleton</span>
     <span class="o">}</span>
@@ -227,6 +229,8 @@ And when one client will request a compo
 </pre></div>
 
 
+<p>So, if you don't need an init callback then use the 
<code>Component.setCallbacks(null, "start", "stop", null)</code> 
+method in order to avoid the creation of the prototype instance.</p>
 <h1 
id="limitation-when-using-dm-servicedependency-from-api-and-serviceobjects">Limitation
 when using DM ServiceDependency from API and ServiceObjects<a 
class="headerlink" 
href="#limitation-when-using-dm-servicedependency-from-api-and-serviceobjects" 
title="Permanent link">&para;</a></h1>
 <p>When using DependencyManager ServiceDependency from the native API (not 
using annotations), 
 you have to know that the ServiceDependency always internally dereferences and 
creates the 
@@ -265,7 +269,7 @@ create the MyService instances manually.
 never auto-dereference the injected service in case the bind method takes as 
argument a 
 ServiceObjects (or a ServiceReference) method.</p>
       <div class="timestamp" style="margin-top: 30px; font-size: 80%; 
text-align: right;">
-        Rev. 1843366 by pderop on Tue, 9 Oct 2018 23:15:20 +0000
+        Rev. 1843368 by pderop on Tue, 9 Oct 2018 23:21:17 +0000
       </div>
       <div class="trademarkFooter"> 
         Apache Felix, Felix, Apache, the Apache feather logo, and the Apache 
Felix project


Reply via email to