code: public ConnectionOptions withUri(URI uri)
      throws URISyntaxException, NoSuchAlgorithmException, KeyManagementException
    {
       factory.setUri(Assert.notNull(uri, "URI"));
       return this;
    }
docs: Convenience method for setting the fields in an AMQP URI: host,
  port, username, password and virtual host.  If any part of the
  URI is ommited, the ConnectionFactory's corresponding variable
  is left unchanged.
  @param uri is the AMQP URI containing the data