Author: gertv Date: Mon May 25 07:46:54 2009 New Revision: 778336 URL: http://svn.apache.org/viewvc?rev=778336&view=rev Log: CAMEL-463: Adding a wiretap with body expression to the DSL
Modified: camel/trunk/components/camel-scala/pom.xml camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/WiretapTest.scala Modified: camel/trunk/components/camel-scala/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/pom.xml?rev=778336&r1=778335&r2=778336&view=diff ============================================================================== --- camel/trunk/components/camel-scala/pom.xml (original) +++ camel/trunk/components/camel-scala/pom.xml Mon May 25 07:46:54 2009 @@ -29,9 +29,6 @@ <goal>compile</goal> <goal>testCompile</goal> </goals> - <configuration> - <args><arg>-Xprint:namer</arg></args> - </configuration> </execution> </executions> </plugin> Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala?rev=778336&r1=778335&r2=778336&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala Mon May 25 07:46:54 2009 @@ -50,7 +50,10 @@ def to(uris: String*) : DSL def unmarshal(format: DataFormatDefinition) : DSL def when(filter: Exchange => Boolean) : SChoiceDefinition - def wiretap(uris: String) : DSL + + def wiretap(uri: String) : DSL + def wiretap(uri: String, expression: Exchange => Any) : DSL + def -->(uris: String*) : DSL } Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala?rev=778336&r1=778335&r2=778336&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala Mon May 25 07:46:54 2009 @@ -101,6 +101,7 @@ def unmarshal(format: DataFormatDefinition) = wrap(target.unmarshal(format)) def wiretap(uri: String) = wrap(target.wireTap(uri)) + def wiretap(uri: String, expression: Exchange => Any) = wrap(target.wireTap(uri, expression)) def aggregate(expression: Exchange => Any) = SAggregateDefinition(target.aggregate(expression)) Modified: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala?rev=778336&r1=778335&r2=778336&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala (original) +++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala Mon May 25 07:46:54 2009 @@ -92,6 +92,7 @@ def setheader(name: String, expression: Exchange => Any) = stack.top.setheader(name, expression) def unmarshal(format: DataFormatDefinition) = stack.top.unmarshal(format) def wiretap(uri: String) = stack.top.wiretap(uri) + def wiretap(uri: String, expression: Exchange => Any) = stack.top.wiretap(uri, expression) def aggregate(expression: Exchange => Any) = stack.top.aggregate(expression) // implementing the Routes interface to allow RouteBuilder to be discovered by Spring Modified: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/WiretapTest.scala URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/WiretapTest.scala?rev=778336&r1=778335&r2=778336&view=diff ============================================================================== --- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/WiretapTest.scala (original) +++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/WiretapTest.scala Mon May 25 07:46:54 2009 @@ -28,6 +28,9 @@ def testSimpleTap = doTestWiretap("direct:a", "mock:a") def testBlockTap = doTestWiretap("direct:b", "mock:b") + def testSimpleTapWithBody = doTestWiretapWithBody("direct:c", "mock:c") + def testBlockTapWithBody = doTestWiretapWithBody("direct:d", "mock:d") + def doTestWiretap(from: String, to: String) = { to expect { _.received("Calling Elvis", "Calling Paul")} mock("mock:tap").expectedBodiesReceivedInAnyOrder("Elvis is alive!", "Stop singing, you're not Elvis") @@ -36,10 +39,19 @@ } } + def doTestWiretapWithBody(from: String, to: String) = { + to expect { _.received(Adult("Elvis"), Adult("Paul"))} + mock("mock:tap-with-body").expectedBodiesReceived("Tapped!", "Tapped!") + test { + from ! (Adult("Elvis"), Adult("Paul")) + } + } + val builder = new RouteBuilder { //START SNIPPET: simple "direct:a" wiretap("direct:tap") setbody("Calling " + _.in(classOf[Adult]).name) to ("mock:a") + "direct:c" wiretap("direct:tap-with-body", "Tapped!") to ("mock:c") //END SNIPPET: simple //START SNIPPET: block @@ -48,12 +60,18 @@ setbody("Calling " + _.in(classOf[Adult]).name) to ("mock:b") } + "direct:d" ==> { + wiretap("direct:tap-with-body", "Tapped!") + to ("mock:d") + } //END SNIPPET: block "direct:tap" setbody(_.in match { case Adult("Elvis") => "Elvis is alive!" case Adult(_) => "Stop singing, you're not Elvis" }) to "mock:tap" + + "direct:tap-with-body" to "mock:tap-with-body" } }