By default, the framework and its Boot module use a boot INI file to learn which bundles should be automatically loaded at startup. If a custom boot extension exists, the framework will use it to perform the custom installation procedure of the extension (if implemented) and/or to get the boot INI file from a remote location.
Contents:
Basically, a boot INI file provides the following information about each bundle to be installed at framework startup:
The boot INI file can be in or outside the framework JAR. When started, the framework locates the boot INI file by using the mbs.boot.bootfile
system property. The framework looks for the file outside the framework JAR considering the mbs.boot.bootfile value. If the mbs.boot.bootfile path is relative, it should be
related to the directory where the framework is started, that is to bin/vms/<vm_name>.
If the system property is not set, the default value boot.ini is used. It points to boot.ini in the framework JAR (e.g. lib/serverjvm13.jar). This INI file contains the most important bundles for the operation of the other mBS bundles.
The boot INI has an XML syntax. The main functional unit of this XML is the section, which holds a number of actions and a list of bundles to execute the actions on.
The boot INI XML DTD is as follows:
|
The framework starts the following bundles in the Standard Version of the framework (listed in order of installation):
When the Connector Version of framework is used (the boot INI for this framework version is bootconn.ini), the framework activates the above bundles using their mio suffixed JARs where necessary. It does not load the Connector Service Bundle as its functionality is provided by the System Bundle.
There is a special boot INI which should be used when the framework is run on J9 with JXE support - jxe.ini from lib/serverj9.jar.
When the framework is started in lazy initialization mode, a special boot INI should be used - lazy_boot.ini from lib/server*.jar and lazy_jxe.ini from lib/server*.jxe.
Developers and system integrators can customize the logic for installing bundles at framework startup by developing own boot extensions. Another feature that a boot extension can have is delivering the content of a boot INI file published at a remote location.
A boot extension should implement the com.prosyst.mbs.framework.boot.Boot interface. A boot extension can:
performInstall method by using the BundleContext of the System Bundle, passed as method's argument. getBootINI method returning an input stream to the remote boot INI. Next, to make the framework use your boot extension, prior to starting the framework add the extension class to the JVM classpath and set the mbs.boot.extension system property to the name of the boot extension implementation class.