public void configure()

in jdbc-datasource/src/main/java/org/acme/jdbc/JdbcRoutes.java [26:51]


    public void configure() throws Exception {
        // Define a mapping for the review values
        HashMap<String, Integer> reviewMapping = new HashMap<>();
        reviewMapping.put("best", 1);
        reviewMapping.put("good", 0);
        reviewMapping.put("worst", -1);

        from("timer://insertCamel?delay={{etl.timer.delay}}&period={{etl.timer.period}}&repeatCount={{etl.timer.repeatcount}}")
                .setBody().simple("DELETE FROM Target")
                .to("jdbc:target_db")
                .setBody().simple("SELECT * FROM Source")
                .to("jdbc:source_db")
                .log("Extracting data from source database")
                .split(body())
                .process(exchange -> {
                    Map<String, Object> sourceData = exchange.getIn().getBody(Map.class);
                    String review = (String) sourceData.get("review");
                    int mappedReview = reviewMapping.getOrDefault(review, 0);
                    sourceData.put("review", mappedReview);
                })
                .log("-> Transforming review for hotel '${body[hotel_name]}'")
                .setBody()
                .simple("INSERT INTO Target (id, hotel_name, price, review) VALUES(${body[id]}, '${body[hotel_name]}', ${body[price]}, ${body[review]})")
                .to("jdbc:target_db")
                .log("-> Loading transformed data in target database");
    }