code: public static DisqueURI create(URI uri) {
  
          DisqueURI.Builder builder;
          builder = configureDisque(uri);
  
          if (URI_SCHEME_DISQUE_SECURE.equals(uri.getScheme())) {
              builder.withSsl(true);
          }
  
          String userInfo = uri.getUserInfo();
  
          if (isEmpty(userInfo) && isNotEmpty(uri.getAuthority()) && uri.getAuthority().indexOf('@') > 0) {
              userInfo = uri.getAuthority().substring(0, uri.getAuthority().indexOf('@'));
          }
  
          if (isNotEmpty(userInfo)) {
              String password = userInfo;
              if (password.startsWith(":")) {
                  password = password.substring(1);
              }
              builder.withPassword(password);
          }
  
          return builder.build();
      }
docs: Create a Disque URI from an URI string. Supported formats are:
  <ul>
  <li>disque://[password@]host[:port][,host2[:port2]][,hostN[:port2N]]</li>
  <li>disques://[password@]host[:port][,host2[:port2]][,hostN[:port2N]]</li>
  <li>disque-socket://socket-path</li>
  </ul>
  
  The {@code uri} must follow conventions of {@link java.net.URI}
  
  @param uri the URI
  @return An instance of {@link DisqueURI} containing details from the URI