Bug 540507 - parallel activation of bundles from framework start-level

By default the framework start-level implementation activates all
bundles that have the same start-level in sequential order using the
bundle ID (install order) to determine the order the bundles are started
from a single thread.

A new configuration option is added equinox.start.level.thread.count
that is set to 1 by default.  This will cause the framework to continue
with the behavior of activating all bundles with a single thread.

If equinox.start.level.thread.count is set to -1 then the framework will
use an executor with the number of threads == to
java.lang.Runtime.availableProcessors() to activate the bundles in
parallel.  This means that the order the bundles with the same
start-level are activated becomes random.  The
equinox.start.level.thread.count config setting can also be set to a
value > 1 to give an explicit value for the number of threads to use
(instead of using java.lang.Runtime.availableProcessors() to determine
the number)

Change-Id: Ifcf6f18b762bcb114f8f8c75630fdca0cb79a24c
Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
8 files changed