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