Author: buildbot
Date: Mon Mar 9 21:14:17 2015
New Revision: 943068
Log:
Staging update by buildbot for felix
Added:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/diagrams/concurrent-serial-queue.png
(with props)
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/diagrams/serial-queue.png
(with props)
Modified:
websites/staging/felix/trunk/content/ (props changed)
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/thread-model.html
Propchange: websites/staging/felix/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Mon Mar 9 21:14:17 2015
@@ -1 +1 @@
-1665356
+1665358
Added:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/diagrams/concurrent-serial-queue.png
==============================================================================
Binary file - no diff available.
Propchange:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/diagrams/concurrent-serial-queue.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Added:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/diagrams/serial-queue.png
==============================================================================
Binary file - no diff available.
Propchange:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/diagrams/serial-queue.png
------------------------------------------------------------------------------
svn:mime-type = image/png
Modified:
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/thread-model.html
==============================================================================
---
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/thread-model.html
(original)
+++
websites/staging/felix/trunk/content/documentation/subprojects/apache-felix-dependency-manager-4/reference/thread-model.html
Mon Mar 9 21:14:17 2015
@@ -83,7 +83,9 @@ the "master" and will immediately execut
then a job (J2) for this new event is just enqueued in the Serial Queue, but
the other thread returns immediately to the caller, and the job J2 will then be
executed by the "master" thread
(after J1). </li>
</ul>
-<p>This mechanism allows to serially handle all Component events (service
dependencies) in FIFO order without maintaining any locks. </p>
+<p>This mechanism allows to serially handle all Component events (service
dependencies) in FIFO order without maintaining any locks.</p>
+<p>The following diagram illustrates the thread model we just described:</p>
+<p><img src="./diagrams/serial-queue.png" width="25%"></p>
<h1 id="enabling-parallelism-with-a-componentexecutorfactory">Enabling
parallelism with a ComponentExecutorFactory</h1>
<p>As described above, all the external events that influence the state of a
given component are handed by jobs scheduled in the Serial Queue of the
Component, and the jobs are getting
executed serially by a single "master" thread. So usually, bundles are started
from a single thread, meaning that all Components are then activated
synchronously.</p>
@@ -91,6 +93,8 @@ executed serially by a single "master" t
typically a shared threadpool configured by yourself. And all the Component
Serial Queues will be executed using the Executor returned by the
getExecutorFor(Component) method. However,
jobs scheduled in the Serial Queue of a given Component are still executed one
at a time, in FIFO order and the Component remains single threaded, and
independent Components may then each
be managed and activated concurrently with respect to each other.</p>
+<p>Here is a diagram which illustrates all this:</p>
+<p><img src="./diagrams/concurrent-serial-queue.png" width="25%"></p>
<p>If you want to ensure that all Components are initialized after the
ComponentExecutorFactory is registered in the OSGI registry, you can use the
"org.apache.felix.dependencymanager.parallel"
OSGi system property which specifies the list of components which must wait
for the ComponentExecutorFactory service. This property value can be set to a
wildcard ("*"), or a list of
components implementation class prefixes (comma separated). So, all components
whose class name starts with the specified prefixes will be cached until the
ComponentExecutorFactory service
@@ -153,7 +157,7 @@ is registered (In this way, it is not ne
<span class="p">}</span>
</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%;
text-align: right;">
- Rev. 1665339 by pderop on Mon, 9 Mar 2015 20:18:37 +0000
+ Rev. 1665358 by pderop on Mon, 9 Mar 2015 21:14:03 +0000
</div>
<div class="trademarkFooter">
Apache Felix, Felix, Apache, the Apache feather logo, and the Apache
Felix project