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).