241.7. 완료 시 채널 닫기

서버 역할을 할 때 때때로 클라이언트 변환이 완료되면 채널을 닫아야 합니다.
endpoint 옵션을 disconnect=true 로 설정하여 이 작업을 수행할 수 있습니다.

그러나 다음과 같이 Camel에 메시지별로 지시할 수도 있습니다.
Camel에 채널을 종료하도록 지정하려면 CamelNettyCloseChannelWhenComplete 가 부울 true 값으로 설정된 헤더를 추가해야 합니다.
예를 들어, 아래 예제에서는 bye 메시지를 클라이언트에 다시 작성한 후 채널을 종료합니다.

from("netty4:tcp://0.0.0.0:8080").process(new Processor() {
    public void process(Exchange exchange) throws Exception {
        String body = exchange.getIn().getBody(String.class);
        exchange.getOut().setBody("Bye " + body);
        // some condition which determines if we should close
        if (close) {
            exchange.getOut().setHeader(NettyConstants.NETTY_CLOSE_CHANNEL_WHEN_COMPLETE, true);
        }
    }
});

생성된 파이프라인을 완전히 제어할 수 있도록 사용자 정의 채널 파이프라인 팩토리 추가