public void addHandler(IQHandler handler) {
        if (iqHandlers.contains(handler)) {
            throw new IllegalArgumentException("IQHandler already provided by the server");
        }
        // Ask the handler to be initialized
        handler.initialize(XMPPServer.getInstance());
        // Register the handler as the handler of the namespace
        namespace2Handlers.put(handler.getInfo().getNamespace(), handler);
    }
<p>Adds a new IQHandler to the list of registered handler. The new IQHandler will be
responsible for handling IQ packet whose namespace matches the namespace of the
IQHandler.</p>

An IllegalArgumentException may be thrown if the IQHandler to register was already provided
by the server. The server provides a certain list of IQHandlers when the server is
started up.

@param handler the IQHandler to add to the list of registered handler.
xmppserver/src/main/java/org/jivesoftware/openfire/IQRouter.java