mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Changes: - Added a new interface 'PluggableService' - Any component that can be packaged separately from cloudstack, can implement this interface and provide its own property file listing the API commands the component supports - As an example have made VirtualNetworkApplianceService pluggable and a new configureRouter command is added - ComponentLocator reads all the pluggable service from componentLibrary or from components.xml and instantiates the services. - As an example, DefaultComponentLibrary adds the pluggable service 'VirtualNetworkApplianceService' - Also components.xml.in has an entry to show how a pluggable service can be added, but it is commented out. - APIServer now reads the commands for each pluggable service and when a command for such a service is called, APIServer sets the required instance of the pluggable service in the coomand. - To do this a new annotation '@PlugService' is added that is processed by APIServer. This eliminates the dependency on the BaseCmd to instantiate the service instances.