263.15. JVM 시스템 속성을 사용하여 속성 설정 덮어쓰기
Camel 2.5
로 사용가능한 경우 변경 사항을 선택하기 위해 애플리케이션을 재시작하지 않고도 JVM System 속성을 사용하여 런타임에서 속성 값을 덮어쓸 수 있습니다. 이 작업은 명령줄에서 새 값으로 대체되는 속성과 동일한 이름의 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();