Methods and apparatus operate in a computer system to manage initiation
and operation of plug-in modules providing plug-in services. The plug-in
manager obtains identities of a plurality of plug-in modules and
retrieves a dependency list indicating respective plug-in services
provided by, and required by, each plug-in module identified in the
identities of the plug-in modules. The plug-in manager then calculates a
plug-in initiation order based upon the dependency list indicating
respective plug-in services provided by, and required by, each plug-in
module. The plug-in manager then initiates service operation of plug-in
modules according to the plug-in initiation order, such that if a first
plug-in module provides a service required by a second plug-in module,
the first plug-in module is initiated such that the service provided by
the first plug-in module is available to the second plug-in module when
required by the second plug-in module. In addition, the plug-in manager
can operate a wait state operation within plug-in modules that provide
services that depend upon each other in order to avoid service deadlocked
situations.