A major goal of the provisioning framework is to allow Telecom Equipment Vendors to build provisioning extensions for specific devices and applications very easily. Provisioning extensions can be used to build provisioning module extensions and expose that functionality via the provisioning APIs.
The user-written extensions can also work with the templates and extend the template processing capabilities in three ways :
Extensions can support special processing of template data as part of every client interaction : i.e., sending and initializing template to client, initializing the provisioning activities after user input, and sending the results back to the client. This includes bypassing some or all the template-based provisioning functions on the server.
Extensions can implement special parameters in the template, which will be processed by the application extensions.
Extensions can implement special configuration or other tags, so that these tags are processed by the application extensions at any of the stages of processing. For example, all the network configuration can be done in the application extension by bypassing the regular configuration and processing the new tags defined for this purpose in the XML templates.
To use the Provisioning extensions,
Write an interface that extends "ExtensionAPI" or any of its subinterface.
Write a user class implementing the above interface. The user class should extend the "GenericExtension", if the extension interface extends "ExtensionAPI" or the corresponding implementation of the interface that is extended by the extension interface.
Compile the extension interface and the user class.
Name the Extension and specify the entry in <Web NMS Home>/ProvisioningExtensions.xml file.
The Provisioning Extensions are specified in the file ProvisioningExtensions.xml present in <Web NMS Home>/conf directory. This file contains the extension name and the implementation class. A sample entry is given below :
name="<Name of the Extension>"
class="<fully qualified class name>"
The method getExtensionAPI(apiName) of ProvisioningAPI will get you the ProvisioningAPI Extension. To know the details of accessing the Provisioning Extensions, please refer to the topics "Accessing Extensions Using RMI" and "Accessing Extensions Using JMS".