@Override
  public Outcome handleRequest(Exchange exc) throws Exception {
    if (exc.getRequest().isBodyEmpty()) {
      return Outcome.CONTINUE;
    }

    Route r = findRoute(exc.getRequest());
    if (r == null) {
      return Outcome.CONTINUE;
    }
    log.debug("match found for {" + r.getxPath() + "} routing to {" + r.getUrl() + "}");

    updateDestination(exc, r);
    return Outcome.CONTINUE;
  }
 private void updateDestination(Exchange exc, Route r) {
   exc.setOriginalRequestUri(r.getUrl());
   exc.getDestinations().clear();
   exc.getDestinations().add(r.getUrl());
 }