Flow schrieb:
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)
Ok, in this case I recommend to call it XMPPConnectionFactory with a single method <X extends XMPPConnection, C extends ConnectionConfiguration> X newConnection(C config). That's nice, so I can rid of the *BuilderFactory classes. Do I understand it right: You create the corresponding connection instances (TCP, BOSH) via reflection in the XMPPConnectionFactory, right? Each ConnectionConfiguration offers access to the corresponding class object and each Connection class must have a corresponding constructor e.g. XMPPTCPConnection(TCPConnectionConfiguration config).