263.15. JVM 시스템 속성을 사용하여 속성 설정 덮어쓰기

Camel 2.5
에서 사용
가능한 경우, 변경 사항을 확인하기 위해 애플리케이션을 재시작할 필요 없이 런타임 시 JVM 시스템 속성을 통해 속성 값을 재정의할 수 있습니다. 이 작업은 명령 줄에서 새 값으로 대체되는 속성과 동일한 이름의 JVM System 속성을 생성하여 수행할 수도 있습니다. 이에 대한 예는 다음과 같습니다.

PropertiesComponent pc = context.getComponent("properties", PropertiesComponent.class);
pc.setCache(false);

System.setProperty("cool.end", "mock:override");
System.setProperty("cool.result", "override");

context.addRoutes(new RouteBuilder() {
    @Override
    public void configure() throws Exception {
        from("direct:start").to("properties:cool.end");
        from("direct:foo").to("properties:mock:{{cool.result}}");
    }
});
context.start();

getMockEndpoint("mock:override").expectedMessageCount(2);

template.sendBody("direct:start", "Hello World");
template.sendBody("direct:foo", "Hello Foo");

System.clearProperty("cool.end");
System.clearProperty("cool.result");

assertMockEndpointsSatisfied();