code: @Override
    public Transport newInstance(final String hostAddress,
                                 final int port,
                                 final EStage<TransportEvent> clientStage,
                                 final EStage<TransportEvent> serverStage,
                                 final int numberOfTries,
                                 final int retryTimeout) {
      try {
        TcpPortProvider tcpPortProvider = Tang.Factory.getTang().newInjector().getInstance(TcpPortProvider.class);
        return newInstance(hostAddress, port, clientStage,
                serverStage, numberOfTries, retryTimeout, tcpPortProvider);
      } catch (final InjectionException e) {
        throw new RuntimeException(e);
      }
    }
docs: Creates a transport.
  
  @param hostAddress   a host address
  @param port          a listening port
  @param clientStage   a client stage
  @param serverStage   a server stage
  @param numberOfTries a number of tries
  @param retryTimeout  a timeout for retry