2012年2月9日木曜日

groovyとApache CamelでStringTemplate Componentを使用してメッセージをフォーマットする

groovyとApache CamelでStringTemplate Componentを使用してメッセージをフォーマットするには、以下のコードを実行します。
@Grab(group='postgresql', module='postgresql', version='9.1-901.jdbc4')
@Grab(group="org.apache.camel", module="camel-core", version="2.9.0")
@Grab(group="org.apache.camel", module="camel-stringtemplate", version="2.9.0")
@Grab(group="org.slf4j", module="slf4j-simple", version="1.6.4")
//@Grab(group="org.slf4j", module="slf4j-nop", version="1.6.4")
import org.apache.camel.*
import org.apache.camel.builder.*
import org.apache.camel.impl.*

ctx = new DefaultCamelContext()
ctx.addRoutes(new RouteBuilder(){
  void configure()
  {
    from("direct:issue")
      .to("string-template:issue.tm")
  }
})
ctx.start()
// exchangeを作成して、endpointに送信
endpoint = ctx.getEndpoint("direct:issue")
exc = endpoint.createExchange()
exc.getIn().setHeader("subject", "題名")
exc.getIn().setHeader("priority", "High")
exc.getIn().setBody("本文部分")
template = ctx.createProducerTemplate()
out = template.send(endpoint, exc)
println out.getOut().getBody()
ctx.stop()

○テンプレート例(issue.tm, UTF-8で保存する)
障害タイトル:$headers.subject$
プライオリティ:$headers.priority$

詳細
$body$

動作環境
groovy 1.8.5, JDK7 Update2, Apache Camel 2.9.0

0 件のコメント:

コメントを投稿