Add new messages to ComponentManager:
1) public IQ query(Component component, IQ packet, int timeout) throws ComponentException;
2) public void query(Component component, IQ packet, IQResultListener listener) throws ComponentException;
Number 1 will block until a reply is received or timed out. Number 2 will return immediately and will trigger the listener when an answer is received.