2014-12-05 7 views
1

스프링 통합 4.1.0을 사용하고 있습니다.스프링 통합에서 setShouldAppendNewLine을 FileWritingMessageHandler에 추가하십시오.

채널로 유입 된 각 메시지의 행을 포함하는 단일 파일을 생성하고 싶습니다. 아래 표시됨

는이 링크의 섹션 "통합 흐름 정의"에 따라, 그렇게 할 수있는 설정입니다 : https://spring.io/guides/gs/integration/

<feed:inbound-channel-adapter id="news" url="https://spring.io/blog.atom"> 
     <int:poller fixed-rate="5000"/> 
    </feed:inbound-channel-adapter> 

    <int:transformer 
      input-channel="news" 
      expression="payload.title + ' @ ' + payload.link + '#{systemProperties['line.separator']}'" 
      output-channel="file"/> 

    <file:outbound-channel-adapter id="file" 
      mode="APPEND" 
      charset="UTF-8" 
      directory="/tmp/si" 
      filename-generator-expression="'SpringBlog'"/> 

이것은 매우 일반적인 사용 사례처럼 보인다을 (적어도 내 팀 그것은 틀림 없다). CharacterStreamWritingMessageHandler (stdoutstderr에 글쓰기)은이 세터 인 setShouldAppendNewLine(boolean shouldAppendNewLine)을 제공합니다. 비슷한 설정을 FileWritingMessageHandler에 제공 할 수 있습니까?

실제로 변압기의 작업이라고 할 수 있지만 (예제에 표시된 것처럼), 이미 CharacterStreamWritingMessageHandler 클래스의 설정으로 제공되는 경우이 특수 변압기 유스 케이스에 적용 할 수 있습니다. 그리고 이것을 FileWritingMessageHandler과 비슷한 동작을하는 합리적인 요청으로 봅니다. 또한 SpEL 표현식이 새로운 spring.expression.compiler.mode=MIXED 설정을 사용하지 않는 한 컴파일 된 코드만큼 빠르게 실행되지 않는 경우에도 변압기 단계가 필요하지 않으므로 일부 처리 시간이 절약됩니다.

답변

1

이것은 (특히 스트림 어댑터의 기존 선례가 주어지면) 특히 APPEND 모드로 작성하는 경우 나에게 합리적인 요청처럼 보입니다.

'새로운 기능'JIRA Issue을 개봉하십시오.

더 나은 점은 contributing입니다.

일반적으로 4.2.1 버전과 같이 중간 버전의 스키마를 변경하지 않기 때문에 XML 네임 스페이스 지원을 4.2까지 연기해야합니다.

그러나 클래스에 속성을 추가하면 Java @Configuration을 사용할 때 설정하거나 응용 프로그램 초기화 중에 핸들러에 대한 참조를 가져 와서 설정합니다.

+0

이를 위해 JIRA를 열고 변경 사항을 제공하려고 시도합니다 (며칠 소요될 수 있음). –

+0

마침내 JIRA를 추가했습니다. https://jira.spring.io/browse/INT-3620을 참조하십시오. Pull Request는 여기에 있습니다 : https://github.com/spring-projects/spring-integration/pull/1361 –

+0

XML 네임 스페이스 지원에 대해서는 JIRA https://jira.spring.io/browse/INT-3621을 참조하십시오. –

관련 문제