code: @JsonCreator
      public static Datasource datasource(final String ds) {
          int colonPos = ds.indexOf(":");
          int slashPos = ds.indexOf("/");
  
          String nodeAndPort = ds;
          String node;
          int port = -1;
          String resource = "";
  
          if (slashPos != -1) {
              nodeAndPort = ds.substring(0, slashPos);
              resource = ds.substring(slashPos+1);
          }
          if (colonPos != -1) {
              node = nodeAndPort.substring(0, colonPos);
              port = valueOf(nodeAndPort.substring(colonPos+1));
              return datasource(node, port, resource);
          } else {
              return datasource(nodeAndPort, -1, resource);
          }
      }
docs: Parses the datasource string into node, port and resource and returns a Datasource instance for these parts.
  <p>
  The format is &lt;node&gt;:&lt;port&gt;/&lt;resource&gt;
  </p>
  
  @param ds datasource string
  @return Datasource