Author: buildbot
Date: Wed Oct 10 10:35:13 2018
New Revision: 1036221
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/dm-annotations.html
Propchange: websites/staging/felix/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Wed Oct 10 10:35:13 2018
@@ -1 +1 @@
-1843368
+1843420
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dm-annotations.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dm-annotations.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager/reference/dm-annotations.html
Wed Oct 10 10:35:13 2018
@@ -335,13 +335,13 @@ So, if you need your component to be ins
<span class="c1">// instantiate a first instance of Hello
component</span>
<span class="n">Configuration</span> <span class="n">c1</span> <span
class="o">=</span> <span class="n">cm</span><span class="o">.</span><span
class="na">createFactoryConfiguration</span><span class="o">(</span><span
class="s">"my.factory.pid"</span><span class="o">,</span> <span
class="s">"?"</span><span class="o">);</span>
<span class="n">Hashtable</span> <span class="n">props</span> <span
class="o">=</span> <span class="k">new</span> <span
class="n">Hashtable</span><span class="o">();</span>
- <span class="n">newprops</span><span class="o">.</span><span
class="na">put</span><span class="o">(</span><span
class="s">"key"</span><span class="o">,</span> <span
class="s">"value1"</span><span class="o">);</span>
+ <span class="n">props</span><span class="o">.</span><span
class="na">put</span><span class="o">(</span><span
class="s">"key"</span><span class="o">,</span> <span
class="s">"value1"</span><span class="o">);</span>
<span class="n">c1</span><span class="o">.</span><span
class="na">update</span><span class="o">(</span><span
class="n">props</span><span class="o">);</span>
<span class="c1">// instantiate another instance of Hello
component</span>
<span class="n">Configuration</span> <span class="n">c2</span> <span
class="o">=</span> <span class="n">cm</span><span class="o">.</span><span
class="na">createFactoryConfiguration</span><span class="o">(</span><span
class="s">"my.factory.pid"</span><span class="o">,</span> <span
class="s">"?"</span><span class="o">);</span>
<span class="n">props</span> <span class="o">=</span> <span
class="k">new</span> <span class="n">Hashtable</span><span class="o">();</span>
- <span class="n">newprops</span><span class="o">.</span><span
class="na">put</span><span class="o">(</span><span
class="s">"key"</span><span class="o">,</span> <span
class="s">"value2"</span><span class="o">);</span>
+ <span class="n">props</span><span class="o">.</span><span
class="na">put</span><span class="o">(</span><span
class="s">"key"</span><span class="o">,</span> <span
class="s">"value2"</span><span class="o">);</span>
<span class="n">c2</span><span class="o">.</span><span
class="na">update</span><span class="o">(</span><span
class="n">props</span><span class="o">);</span>
<span class="c1">// destroy the two instances of X component</span>
@@ -498,32 +498,30 @@ the component is about to be destroyed</
<p>1) Wait for all required dependencies to be available. When all required
dependencies are
available:</p>
<ul>
-<li>Instantiate the component</li>
-<li>Inject all required dependencies (on class fields using reflection, or by
invoking callback methods)</li>
-<li>Inject all optional dependencies defined on class fields, possibly with a
<em>NullObject</em> if the
+<li>instantiate the component</li>
+<li>inject all required dependencies (on class fields using reflection, or by
invoking callback methods)</li>
+<li>inject all optional dependencies defined on class fields, possibly with a
<em>NullObject</em> if the
dependency is not available.</li>
-<li>Call the component init method (annotated with <em>@Init</em>, see (see
+<li>call the component init method (annotated with <em>@Init</em>, see (see
<a
href="http://felix.apache.org/apidocs/dependencymanager.annotations/r12/org/apache/felix/dm/annotation/api/Init.html">@Init
javadoc</a>).).
In the init method, you are yet allowed to add some additional dependencies
using the Dependency
Manager API or DM Lambda). Alternatively, you can also configure some
dependencies dynamically
(explained later, in <a href="##dynamic-dependency-configuration">Dynamic
Dependency Configuration</a>.</li>
</ul>
-<p>2) Wait for extra required dependencies optionally configured from the
init() method. When all extra required
-dependencies are available:</p>
+<p>2) Wait for extra required dependencies optionally configured from the
init() method. When all extra
+required dependencies are available:</p>
<ul>
-<li>Invoke the start method annotated with <a
href="http://felix.apache.org/apidocs/dependencymanager.annotations/r12/org/apache/felix/dm/annotation/api/Start.html">@Start
annotation</a>:</li>
-<li>Publish some OSGi services, if any. the start method may return a
Map<String, Object> that will
-be appended to the provided service properties, if any.</li>
-<li>Invoke the method annotatated with <a
href="http://felix.apache.org/apidocs/dependencymanager.annotations/r12/org/apache/felix/dm/annotation/api/Registered.html">@Registered
annotation</a>.
-The method, if declared, takes as argument a <code>ServiceRegistration</code>
which corresponds to the registered service.</li>
-</ul>
-<p>3) Once the start callback has been started, and the service has been
registered:</p>
-<ul>
-<li>start tracking optional dependencies applied on method callbacks (useful
for the whiteboard pattern).
-<em>Notice that NullObject pattern is not applied to optional callback
dependencies</em>.
+<li>invoke the start method annotated with <a
href="http://felix.apache.org/apidocs/dependencymanager.annotations/r12/org/apache/felix/dm/annotation/api/Start.html">@Start
annotation</a>.
+The start method may return a Map<String, Object> that will
+be appended to the provided service properties (the the component provides a
service).</li>
+<li>start tracking optional dependencies applied on method callbacks (invoke
optional dependency callbacks).
+Notice that NullObject pattern is not applied to optional callback
dependencies.
In other words, if the dependency is not there, your callback won't be invoked
at all.
If you need the NullObject pattern, then apply optional dependencies on class
fields, not on
-callback methods.</li>
+callback methods. </li>
+<li>register the OSGi service, if the component provides one. </li>
+<li>invoke the method annotatated with <a
href="http://felix.apache.org/apidocs/dependencymanager.annotations/r12/org/apache/felix/dm/annotation/api/Registered.html">@Registered
annotation</a>.
+The method, if declared, takes as argument a <code>ServiceRegistration</code>
which corresponds to the registered service.</li>
</ul>
<h2 id="component-deactivation">Component deactivation<a class="headerlink"
href="#component-deactivation" title="Permanent link">¶</a></h2>
<p>Deactivating a component consists of the following steps:</p>
@@ -1465,7 +1463,7 @@ takes as argument a ServiceObjects param
<p>Internally, DM will use the
PrototypeServiceFactory.getService(Bundle clientBundle, ServiceRegistration
reg) method in order to
instantiate the MyServiceImpl component. So, the MyServiceImpl component can
optionally use the
-@Inject annotation in order to get injected with the clientBundle and/or the
service regisration,
+@Inject annotation in order to get injected with the clientBundle and/or the
service registration,
like this:</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>
@@ -1647,7 +1645,7 @@ in the following, the service properties
<span class="o">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1843304 by pderop on Tue, 9 Oct 2018 15:56:51 +0000
+ Rev. 1843420 by pderop on Wed, 10 Oct 2018 10:34:39 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project