Exception class AspectInsertionException signals that an extension
could not be inserted into a VM, or is not compatible with the
current state of a VM.
Interface AspectManager allows weaving and unweaving of aspects.
An aspect manager can be obtained as a singleton from ProseSystem
In the whole ProseSystem there are exactly two ExtensionManagers.
the extension manager or current extension manager
the test extension manager
The test aspect manager is not attached to the VM (aspect woven do not
execute advice).
The test aspect manager behaves like the normal aspect manager
but no events are reported to it, so i.e.
Class ProseSystem represents the user view of the system.
It allows to start and stop prose, and to get access
to an code AspectManagerUsers
program aspects and they will insert them into the system
using the insertExtension and withdrawExtension
methods of the extension manager.
This class is also used for bootstrapping the system.
Class RootComponent looks for properties called
"ch.ethz.prose.ESSystem.X", where X is 0,1,2,..; If this
property is defined and represents a class name which
has two static methods with no parameters called startup
and teardown then the startup method is
called for this class.