Concierge supports Knopflerfish-style startup files. The -Dxargs=
myxargsfile property can be used to specify a specific startup file, otherwise Concierge searches for a file called init.xargs.
The following options are supported:
-Dproperty=value | Set a system property. List of properties below shows all properties that affect the behavior of Concierge. |
-install URL | Install a bundle. URL can be an URL to a file on a http web server or something in the form file:/my/dir/my.jar. If ch.ethz.iks.concierge.jars is set, everything which is not a full URL is interpreted as a path relative to the JAR directory URL. |
-start URL | Start a bundle that has been installed before. |
-istart URL | Install and start a bundle. |
-initlevel level | Set the initial start level for all successive -install and -start commands. |
-startlevel level | Set the start level of the framework. |
-init | Perform a clean start instead of a restart, even if a profile is set. |
Additionally, Oscar-style system.properties
files are supported. A specific file can be set by the -Dproperties=
my.properties property.
The following properties are supported:
osgi.auto.install |
a space delimited list of bundles that are installed. |
osgi.auto.install.level |
a space delimited list of bundles that are installed on start level level. |
osgi.auto.start |
a space delimited list of bundles that are started. |
osgi.auto.start.level |
a space delimited list of bundles that are started on start level .level. |
osgi.startlevel.framework |
the initial start level of the framework. |
osgi.startlevel.bundle |
the initial start level for newly installed bundles. |
Profiles can be defined and used for restarts. From the command line, just start your Concierge framework and add the name of the profile as an argument. Or using an xargs files, the option -profile profileName
can be used and in property files, it is the osgi.profile=profile
property.
The idea of a profile is to have different separated setups of bundles that can be restarted at any time. Different to Oscar, Concierge does not require user interaction to use or define profiles.
The init
option can be used to control restart or clean start. If a profile is set, Concierge tries to restore the profile and otherwise performs a clean start and starts / installs all required bundles. By setting init
(or the osgi.init
property), it can be enforced that Concierge always performs a clean start, if the restart of the profile is not passed as argument in the following form:
java -jar concierge-0.6.0.jar myprofile
Currently, Concierge supports the following properties:
Attribute | Default | Comment |
---|---|---|
org.osgi.framework.system.packages |
Comma-separated list of additional packages provided by the system and used to resolve package imports. This can be, e.g., javax.* packages. |
|
ch.ethz.iks.concierge.basedir |
. | All paths that are not explicitly defined are considered to be relative to the basedir. |
ch.ethz.iks.concierge.jars |
= basedir |
The path where the bundle JARs can be found. |
ch.ethz.iks.concierge.storage |
basedir /storage |
The path of the storage location. Can be used to allocate the framework's private storage on a different medium, for instance if Concierge is executed from a read-only medium. |
ch.ethz.iks.concierge.classloader.buffersize |
2048 = 2048 Bytes | The buffer size for class loader I/O operations. Generally, it is a tradeoff of how many data can be read at once and how much time it takes to allocate the buffer memory. Experiments have shown that the size of 2k is the minimum on many devices. But this can depend on the average size of your bundles, the hardware architecture, disk block size, etc. |
ch.ethz.iks.concierge.log.enabled |
false = disabled | Enable the internal LogService of the Concierge framework. This allows the framework to write debug messages to the log. This is particularly useful for headless devices don't support System.out . Simply add a small LogReader that writes all log messages to a disk. |
ch.ethz.iks.concierge.log.buffersize |
10 = ten entries. | Number of log entries that are buffered. |
ch.ethz.iks.concierge.log.level |
1 = LOG_ERROR | The log level. Can be 0 = NONE, 1 = LOG_ERROR, 2 = LOG_WARNING, 3 = LOG_INFO or 4 = LOG_DEBUG. The larger level includes all smaller levels. |
ch.ethz.iks.concierge.debug.bundles |
false = disabled | Generate debug messages for bundle operations. Requires the log service to be enabled. |
ch.ethz.iks.concierge.debug.packages |
false = disabled | Generate debug messages for package operations. Requires the log service to be enabled. |
ch.ethz.iks.concierge.debug.services |
false = disabled | Generate debug messages for service operations. Requires the log service to be enabled. |
ch.ethz.iks.concierge.debug.classloading |
false = disabled | Generate debug messages for class loading operations. Requires the log service to be enabled. |
ch.ethz.iks.concierge.debug |
false = disabled | Generate full debug output. This is equivalent to ch.ethz.iks.concierge.log.enabled=true , ch.ethz.iks.concierge.log.level=4 , ch.ethz.iks.concierge.debug.bundles=true , ch.ethz.iks.concierge.debug.packages=true , ch.ethz.iks.concierge.debug.services=true , and ch.ethz.iks.concierge.debug.classloading=true . |
ch.ethz.iks.concierge.strictStartup |
false = disabled | Strict startup means, Concierge terminates if one of the initially started bundle fails to install or if a warning occurs. |
ch.ethz.iks.concierge.decompressEmbedded |
true = enabled | Tells Concierge to decompress bundles containing embedded JARs. This can give a remarkable speedup if significant parts of the bundles' code reside inside of embedded JARs. For devices with highly constrained resources, this should be disabled. |
ch.ethz.iks.concierge.security.enabled |
false = disabled | Enable OSGi security. Please note, that the security part is not yet 100% complete and not entirely tested. So use with care. Also note, that this property has no effect unless you also specify a Java SecurityManager for your VM. |