You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ge...@apache.org on 2009/05/25 09:46:54 UTC

svn commit: r778336 - in /camel/trunk/components/camel-scala: ./ src/main/scala/org/apache/camel/scala/dsl/ src/main/scala/org/apache/camel/scala/dsl/builder/ src/test/scala/org/apache/camel/scala/dsl/

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"
     }
 
 }