Provides information about the supported mechanisms for automatic device capability discovery
The OSGi Device Management package delivers mechanisms for automatic discovery of the capabilities of the OSGi devices. They extend the mechanisms provided by the RM Generic Device Management Framework for defining device capabilities which are valid for every device type. In this document, it is assumed that the reader is familiar with the concept of the RM device capabilities, described in the Generic Device Management package documentation.
Four ways of automatic determining of the device capabilities are supported:
- Basic capabilities
The following table lists the default set of capabilities, called basic capabilities, which the RM Management Agent retrieves from the device and provides them to the RM server during device synchronization:
Device Capability Property | Description |
|---|---|
Platform Hardware | |
HardwarePlatform.DeviceIndetifier | The identifier of the device type. For an OSGi device the value is "mprm.osgi.device". |
JVM and Supported Java Class Libraries | |
java.specification.name | The name of the Java specification. |
java.specification.vendor | The vendor of the Java specification. |
java.specification.version | The version of the Java specification. |
java.vendor | The vendor of the JDK. |
java.version | The JDK version. |
java.vm.name | The name of the Java VM of the OSGi device. |
java.vm.vendor | The vendor of Java VM of the OSGi device. |
java.vm.version | The version of Java VM of the OSGi device. |
OSGi Framework | |
org.osgi.framework.executionenvironment | The Execution Environments (EEs) supported by the OSGi device framework. This basic device capability property is set as an alias of the Execution Environment Management SoftwarePlatform.EE platform property. |
org.osgi.framework.language | The ISO 639 code of the language supported on the OSGi device framework. |
org.osgi.framework.os.name | The operating system of the OSGi device framework. |
org.osgi.framework.os.version | The version of OSGi device framework operating system. |
org.osgi.framework.processor | The processor of the device framework. Possible values are specified by OSGi Framework specification. |
org.osgi.framework.vendor | The vendor of the OSGi device framework. |
org.osgi.framework.version | The version of the OSGi Framework specification supported by the device. |
Gateway Software OSGi Runtime | |
mbs.framework.build.version | The build version of the OSGi runtime. |
mbs.framework.product.version | The product version of the OSGi runtime. |
mbs.product.version | The product version of the OSGi runtime. |
mbs.security | The used security model of the OSGi runtime. |
mbs.storage.impl | The storage implementation of the OSGi runtime. |
mbs.storage.native | The storage of native implementation of the OSGi runtime. |
You cannot remove device capabilities defined on the device. However, new properties can be introduced to refine the matching of bundle requirements against device capabilities.
- Capabilities delivered by custom capability providers
Capability providers can provide specific device capabilities to the Management Agent. The Management Agent detects the presence of capability providers on the device and gets the corresponding capabilities.
- Capabilities defined as system properties with a specific prefix
When deployed on the device or the device is synchronized, the Management Agent loads system properties having the "prm.platform.capability" prefix as device capabilities. For example the prm.platform.capability.upnp.enabled will be interpreted as the upnp.enabled device capability.
- Capabilities related with the software components on the device
They are retrieved automatically on device registration and represent the capabilities provided by the currently available OSGi bundles. This type of device capabilities is used to satisfy the dependencies of the OSGi bundles during their installation on the device.
Device Capability Property | Description |
|---|---|
SoftwarePlatform.Component.BundleId | The unique identifiers of the OSGi bundles running on the device. |
SoftwarePlatform.Component.ContentId | The logical identifiers of the OSGi bundles running on the device. |
SoftwarePlatform.Component.GlobalId | The Global Id identifiers of the OSGi bundles running on the device. |
SoftwarePlatform.Package | Packages exported by the OSGi device bundles. |
SoftwarePlatform.Service | Services registered by the OSGi device bundles. |
To learn about the concept of platform properties, refer to the "Device Platform Capabilities" document from the Conceptual Guide of the Software Repository package documentation.