I think the XMPPConnectionBuilder interface should be like
<X extends XMPPConnection, C extends ConnectionConfiguration> X build(C connectionConfiguration)
so that we can apply the builder pattern to ConnectionConfiguration and use the XMPPConnectionBuilder for smack-tcp, smack-bosh and smack-serverless, e.g.
XMPPTCPConnection build(ConnectionConfiguration conf)
and
XMPPBOSHConnection build(BOSHConnectionConfiguration conf)