HI I'm converting a route from Camel 2.25.0 Spring Boot to latest Quarkus. The route parses a CSV file, splits it and use either headers if exist or creates headers if not, sends it to a bean for further processing ending up as amessage in a JMS.
This was working fine but now when I run it in Quarkus I receive the following Exception: Caused by: java.lang.IllegalArgumentException: Could not find a suitable setter for property: header as there isn't a setter method with same type: java.lang.String nor type conversion possible: No type converter available to convert from type: java.lang.String to the required type: java.lang.String[] with value [status, trade_date, sec_settle_date, fund_name, client_account, trade_reference, uti, broker_id, security_code, isin, fee, quantity, currency, market_price, loan_value, trade_time, trade_venue] Route: from(seda("textImporter")) .description("DATA-IMPORTER-TEXT", "Imports data from text files such as .txt, .csv, .tab", "en") .toD("dataformat:csv:unmarshal?delimiter=${header.FileSplitter}&useOrderedMaps=${header.UseHeader}") .split() .body() .streaming() .parallelProcessing(false) .process(exchange -> { final Message in = exchange.getIn(); final Map<String, Object> body = new LinkedHashMap<>(); if (!in.getHeader("UseHeader", Boolean.class)) { final List list = in.getBody(List.class); IntStream.range(0, list.size()) .forEach(i -> body.put(i + "", list.get(i))); } else { body.putAll(in.getBody(Map.class)); } final Set<String> headers = body.keySet(); in.setHeader("ColumnNames", new ArrayList<>(headers)); final String idPath = in.getHeader("IdPath", String.class); in.setHeader("InternalReference", body.get(idPath)); final List<Map<String, Object>> newList = new ArrayList<>(Set.of(body)); in.setBody(newList, List.class); }) .toD("dataformat:csv:marshal?header=${header.ColumnNames}") .convertBodyTo(String.class) .log(LoggingLevel.DEBUG, "${body}") .bean(XSDMapping.class, "create") .marshal(jaxbDataFormat) .convertBodyTo(String.class) .to("{{jms.queue.outgoing}}") .to(log("FILE-IMPORTER-TEXT").level("DEBUG") .groupInterval(5000L) .groupActiveOnly(true)) .choice() .when(simple("${header.CamelSplitComplete} == true")) .log("Number of records split: ${header.CamelSplitSize}") .log("Importing complete: ${header.CamelFileName}") .endChoice() .end(); Using Quarkus 2.2.3.Final on Java 11, Camel 3.11.1 /M