DOTS and automatic startup of bundles
Domino OSGi Tasklet Container (or DOTS for short) is an uber-cool OpenNTF project that allows you to write addins for the Domino server in Java. The project used to be called JAVADDIN which kind of gives the purpose away.
At UKLUG I was asked if there was a way to specify which bundles to automatically start at server startup. I didn't know the answer so I wrote an e-mail to David Taieb who's the author of the project and he quickly responded that this is indeed possible. Below is Davids answer:
Yes, you can create a file called config.ini in
{data}/domino/workspace directory and add the following line
domino.osgi.bundles.start=pluginid1,pluginId2,pluginId3
Restart http task and verify that the plugins specified are
active
>tell http osgi diag pluginId1
>tell http osgi diag pluginId2
>tell http osgi diag pluginId3
Best Regards
-david
The above is for Domino 8.5.3 - for Domino 8.5.2 the config.ini file is in the workspace\.config directory.
There is a caveat though. The automatic startup isn't performed until an XPage request is made. An extension point to make bundles automatically startup when the server is started will be added for Domino 8.5.4.
Re: DOTS and automatic startup of bundles
What David was probably talking about is the HTTP server's OSGi framework, which is running separately from the DOTS OSGi framework and is part of the standard Domino server install (in contrast to DOTS).
For the HTTP OSGi framework, there is no way to launch plugins at HTTP task startup at the moment.
The only way here is to use the following extension point:
< extension point="com.ibm.commons.Extension" >
< service type="
com.ibm.designer.runtime.extensions.RuntimeInitializationEvent" class=
"com.acme.test.MyInitializationClass" / >
< /extension >
which launches a plugin when the first XPage is requested.
As a workaround for the missing extension point for task startup, you could create a Java agent configured to run at server startup and use e.g. the Apache HTTP client to request an XPage programmatically. That works, but is not really a great solution.
I asked David to add the extension point to 8.5.3, but it's already too late and he assured me he would add it to the next Domino release.




