Module UID
The Module UID is a sequence of bytes that uniquely identifies an application build (Kernel or Feature). It is generated by SOAR from various inputs, including the code content, Architecture characteristics, and build timestamp. The size of the UID may vary across Architecture versions. Two builds of the same Application code will not share the same UID.
The Kernel UID can be retrieved at runtime using Kernel.getInstance() .getUID(). The Feature UID can be retrieved at runtime by the Kernel using the .getUID() method on the Feature instance. This method is inherited from the Module class.
The Kernel UID is used by Core Engine to check if a Sandboxed Application can be installed on a Kernel.
During the Application build, the resulting .fo file embeds the Kernel UID on which it has been built.
During Kernel.install(), the Kernel UID embedded in the .fo is compared with the current Kernel UID.
By default, if both UIDs are equal the Application installation continues. Otherwise it is stopped.
See also Feature Portability Control for .fo installation on different Kernels.
The Feature UID is used by Core Engine to uniquely identify a Sandboxed Application. During Kernel.install(), an AlreadyLoadedFeatureException is
thrown if a .fo with the same Feature UID has already been installed.
