You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gu...@apache.org on 2013/10/07 10:25:19 UTC

svn commit: r1529783 - /felix/site/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/ipojo-extender-configuration.mdtext

Author: guillaume
Date: Mon Oct  7 08:25:19 2013
New Revision: 1529783

URL: http://svn.apache.org/r1529783
Log:
Added documentation on bootstrap debugging

Modified:
    felix/site/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/ipojo-extender-configuration.mdtext

Modified: felix/site/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/ipojo-extender-configuration.mdtext
URL: http://svn.apache.org/viewvc/felix/site/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/ipojo-extender-configuration.mdtext?rev=1529783&r1=1529782&r2=1529783&view=diff
==============================================================================
--- felix/site/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/ipojo-extender-configuration.mdtext (original)
+++ felix/site/trunk/content/documentation/subprojects/apache-felix-ipojo/apache-felix-ipojo-userguide/ipojo-advanced-topics/ipojo-extender-configuration.mdtext Mon Oct  7 08:25:19 2013
@@ -103,6 +103,37 @@ Synchronous/Asynchronous behavior can be
 
 If no header (or invalid value) is provided, the fallback behavior is `DEFAULT` (use system wide preference).
 
+### QueueExecutorService Insights
+
+Apache Felix iPOJO provides a mechanism that stores Job events of the QueueService in use (synchronous, multi-threaded, ...) for replay.
+This is very useful to see where time is spent during the bootstrap and take actions accordingly.
+
+This mechanism is available when the `org.apache.felix.ipojo.extender.BootstrapQueueDebug` system property is set to `true`.
+When activated, a new OSGi service is registered under the `org.apache.felix.ipojo.extender.queue.debug.QueueEventProxy` interface (see below).
+
+`QueueListener` has to be registered in this service, when added, they'll be invoked with all stored events.
+After that, the proxy simply forward the queue events to registered listeners.
+
+    :::java
+    /**
+     * This service record events from a {@link org.apache.felix.ipojo.extender.queue.QueueService}.
+     * When a listener is added, all recorded events are replayed into the listener.
+     */
+    public interface QueueEventProxy {
+        /**
+         * Add a {@link org.apache.felix.ipojo.extender.queue.QueueListener} that will be notified on events
+         * relative to the observed {@link org.apache.felix.ipojo.extender.queue.QueueService}.
+         * @param listener added listener
+         */
+        void addQueueListener(QueueListener listener);
+
+        /**
+         * Remove a {@link QueueListener} from the observed {@link org.apache.felix.ipojo.extender.queue.QueueService}.
+         * @param listener removed listener
+         */
+        void removeQueueListener(QueueListener listener);
+    }
+
 ### Event Dispatcher
 
 Apache Felix iPOJO provides a way to circumvent the so-call event storm happening when starting large OSGi applications (chained services apparitions).