importPackage(java.io);
importPackage(java.lang);

  private static final String MARS_SQL_TEMPLATE_TWO = "select\n" +
            " id_delivery_area,\n" +
            " id_country,\n" +
            " id_gate_sites_group,\n" +
            " free_shipping_bill,\n" +
            " id_territory,\n" +
            " price,\n" +
            " id_mtt_type,\n" +
            " id_gt_service_level,\n" +
            " extract (hour from delivery_trigger_time)\n" +
            " ||':'\n" +
            " ||extract (minute from delivery_trigger_time)\n" +
            " delivery_trigger_time,\n" +
            " delivery_period_to_hours,\n" +
            " delivery_period_from_days,\n" +
            " delivery_period_to_days,\n" +
            " '%s' as brand,\n" +
            " '%s' as country\n" +
            " from :param";
            
            
  Создаю Роут
  DirectRouteUtil.addDirectSQLRoute(this, MARS_ROUTE, MARS_SQL_TEMPLATE_TWO, MarsDeliveryArea.class, "marsDb");
    Вызываю его
   String a = marsDeliveryZoneViewNames.stream().map(viewName->viewName.getZone()).findFirst().get();
   String b = "MARS."+ a;
    List<MarsDeliveryArea> finalList = (List<MarsDeliveryArea>) routeService.executeRoute(MARS_ROUTE, "param", b);
    
   Сам метод который запускает роут и должен подставить на место ? значение
      public Object executeRoute(String endpointName, String headerKey, Object headerValue) {
        val template = DefaultFluentProducerTemplate.on(camelContext);
        if (headerKey != null) template.withHeader(headerKey, headerValue);
        return template.to("direct://" + endpointName).request();
//        return producerTemplate.withBody("start").to("direct://" + endpointName).send().getMessage().getBody();
    }