All OpenNMS daemons are started as JMX beans in the same way. The QoSD.java and QoSDMBean.java in the qosd.jmx package are used by opennms to initiate new threads for running the daemon and to pass in it's spring application context in order to allow access to OpenNMS Daos and other daemons.