Camel Unterschied zwischen route-Eigenschaften und Eigenschaften von exchange

Kann jemand mir erklären die Unterschiede zwischen den beiden Eigenschaften?

@Override
public void setUp() throws Exception {
    context = new DefaultCamelContext(new SimpleRegistry());        
    template = context.createProducerTemplate();

    context.addRoutes(new RouteBuilder() {

        public void configure() throws Exception {              
            PropertiesComponent prop = context.getComponent(
                                      "properties", PropertiesComponent.class);
            prop.setLocation("classpath:test.properties");

            from("direct:start")
            .log("Property: ${properties:a}")
            .process(new Processor() {

                @Override
                public void process(Exchange ex) throws Exception {
                    String a = ex.getProperty("a", String.class);
                    LOG.info("Property: " + a);
                }
            })
            ;
        }
    });

    context.getShutdownStrategy().setTimeout(1);
    context.start();
}

@Test
public void testRoute() throws Exception {
    template.sendBody("direct:start", null);
}

Die Eigenschaften-Datei (test.properties):

a = a

Ausgabe:

2015-09-03 14:38:01,740 | INFO  | route1           | Property: a
2015-09-03 14:38:01,743 | INFO  | CamelTest2       | Property: null

Die erste Zeile ist aus .log("${properties:a}"), so dass es gefunden werden kann. Allerdings String a = ex.getProperty("a", String.class); nicht. Beide sind Eigenschaften und Punkt in die gleiche Eigenschaft, richtig?

Was ist der Unterschied, und wie kann ich finden die Eigenschaft, die in den Prozessor?

InformationsquelleAutor SLG | 2015-09-03
Schreibe einen Kommentar