public interface ProvisioningService
Initial provisioning of an OSGi device is a multi step process that culminates with the installation and execution of the initial management agent. At each step of the process, information is collected for the next step. Multiple bundles may be involved and this service provides a means for these bundles to exchange information. It also provides a means for the initial Management Bundle to get its initial configuration information.
 The provisioning information is collected in a Dictionary
 object, called the Provisioning Dictionary. Any bundle that can access the
 service can get a reference to this object and read and update provisioning
 information. The key of the dictionary is a String object and
 the value is a String or byte[] object. The
 single exception is the PROVISIONING_UPDATE_COUNT value which is an Integer.
 The provisioning prefix is reserved for keys defined by OSGi,
 other key names may be used for implementation dependent provisioning
 systems.
 
Any changes to the provisioning information will be reflected immediately in all the dictionary objects obtained from the Provisioning Service.
Because of the specific application of the Provisioning Service, there should be only one Provisioning Service registered. This restriction will not be enforced by the Framework. Gateway operators or manufactures should ensure that a Provisioning Service bundle is not installed on a device that already has a bundle providing the Provisioning Service.
 The provisioning information has the potential to contain sensitive
 information. Also, the ability to modify provisioning information can have
 drastic consequences. Thus, only trusted bundles should be allowed to
 register and get the Provisioning Service. The ServicePermission
 is used to limit the bundles that can gain access to the Provisioning
 Service. There is no check of Permission objects to read or
 modify the provisioning information, so care must be taken not to leak the
 Provisioning Dictionary received from getInformation method.
| Modifier and Type | Field and Description | 
|---|---|
| static String | INITIALPROVISIONING_ENTRIESName of the header that specifies the type information for the ZIP file
 entries. | 
| static String | MIME_BUNDLEMIME type to be stored in the extra field of a  ZipEntryobject for an installable bundle file. | 
| static String | MIME_BUNDLE_ALTAlternative MIME type to be stored in the extra field of a
  ZipEntryobject for an installable bundle file. | 
| static String | MIME_BUNDLE_URLMIME type to be stored in the extra field of a ZipEntry for a String that
 represents a URL for a bundle. | 
| static String | MIME_BYTE_ARRAYMIME type to be stored stored in the extra field of a
  ZipEntryobject forbyte[]data. | 
| static String | MIME_STRINGMIME type to be stored in the extra field of a  ZipEntryobject for String data. | 
| static String | PROVISIONING_AGENT_CONFIGThe key to the provisioning information that contains the initial
 configuration information of the initial Management Agent. | 
| static String | PROVISIONING_REFERENCEThe key to the provisioning information that contains the location of the
 provision data provider. | 
| static String | PROVISIONING_ROOTX509The key to the provisioning information that contains the root X509
 certificate used to establish trust with operator when using HTTPS. | 
| static String | PROVISIONING_RSH_SECRETThe key to the provisioning information that contains the shared secret
 used in conjunction with the RSH protocol. | 
| static String | PROVISIONING_SPIDThe key to the provisioning information that uniquely identifies the
 Service Platform. | 
| static String | PROVISIONING_START_BUNDLEThe key to the provisioning information that contains the location of the
 bundle to start with  AllPermission. | 
| static String | PROVISIONING_UPDATE_COUNTThe key to the provisioning information that contains the update count of
 the info data. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | addInformation(Dictionary info)Adds the key/value pairs contained in  infoto the
 Provisioning Information dictionary. | 
| void | addInformation(ZipInputStream zis)Processes the  ZipInputStreamand extracts information to
 add to the Provisioning Information dictionary, as well as,
 install/update and start bundles. | 
| Dictionary | getInformation()Returns a reference to the Provisioning Dictionary. | 
| void | setInformation(Dictionary info)Replaces the Provisioning Information dictionary with the key/value pairs
 contained in  info. | 
static final String PROVISIONING_SPID
String.static final String PROVISIONING_REFERENCE
String.static final String PROVISIONING_AGENT_CONFIG
byte[].static final String PROVISIONING_UPDATE_COUNT
Integer. This key/value pair is also reflected in the
 properties of the ProvisioningService in the service registry.static final String PROVISIONING_START_BUNDLE
AllPermission. The bundle must have
 be previously installed for this entry to have any effect.static final String PROVISIONING_ROOTX509
static final String PROVISIONING_RSH_SECRET
static final String MIME_STRING
ZipEntry
 object for String data.static final String MIME_BYTE_ARRAY
ZipEntry object for byte[] data.static final String MIME_BUNDLE
ZipEntry
 object for an installable bundle file. Zip entries of this type will be
 installed in the framework, but not started. The entry will also not be
 put into the information dictionary.static final String MIME_BUNDLE_ALT
ZipEntry object for an installable bundle file. Zip entries
 of this type will be installed in the framework, but not started. The
 entry will also not be put into the information dictionary. This
 alternative entry is only for backward compatibility, new applications
 are recommended to use MIME_BUNDLE, which is an official
 IANA MIME type.static final String MIME_BUNDLE_URL
static final String INITIALPROVISIONING_ENTRIES
Dictionary getInformation()
UnsupportedOperationException to be thrown. Changes must
 be done using the setInformation and
 addInformation methods of this service.void setInformation(Dictionary info)
info. Any key/value pairs not in
 info will be removed from the Provisioning Information
 dictionary. This method causes the PROVISIONING_UPDATE_COUNT
 to be incremented.info - the new set of Provisioning Information key/value pairs. Any
        keys are values that are of an invalid type will be silently
        ignored.void addInformation(Dictionary info)
info to the
 Provisioning Information dictionary. This method causes the
 PROVISIONING_UPDATE_COUNT to be incremented.info - the set of Provisioning Information key/value pairs to add to
        the Provisioning Information dictionary. Any keys are values that
        are of an invalid type will be silently ignored.void addInformation(ZipInputStream zis) throws IOException
ZipInputStream and extracts information to
 add to the Provisioning Information dictionary, as well as,
 install/update and start bundles. This method causes the
 PROVISIONING_UPDATE_COUNT to be incremented.zis - the ZipInputStream that will be used to add
        key/value pairs to the Provisioning Information dictionary and
        install and start bundles. If a ZipEntry does not
        have an Extra field that corresponds to one of the
        four defined MIME types (MIME_STRING,
        MIME_BYTE_ARRAY,MIME_BUNDLE, and
        MIME_BUNDLE_URL) in will be silently ignored.IOException - if an error occurs while processing the
         ZipInputStream. No additions will be made to the Provisioning
         Information dictionary and no bundles must be started or
         installed.Copyright © 2018 JBoss by Red Hat. All rights reserved.