Author: davsclaus
Date: Sat Apr 30 12:04:32 2011
New Revision: 1098103
URL: http://svn.apache.org/viewvc?rev=1098103&view=rev
Log:
CAMEL-463: scala DSL to and --> now support specifying an exchange pattern.
Added:
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExchangePatternTest.scala
- copied, changed from r1098092,
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala
Modified:
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/SRouteDefinition.scala
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=1098103&r1=1098102&r2=1098103&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
Sat Apr 30 12:04:32 2011
@@ -140,7 +140,9 @@ abstract class SAbstractDefinition[P <:
def wiretap(uri: String) = wrap(target.wireTap(uri))
def wiretap(uri: String, expression: Exchange => Any) =
wrap(target.wireTap(uri).newExchangeBody(expression))
+ def -->(pattern: ExchangePattern, uri: String) = wrap(target.to(pattern,
uri))
def -->(uris: String*) = to(uris:_*)
+ def to(pattern: ExchangePattern, uri: String) = wrap(target.to(pattern, uri))
def to(uris: String*) = {
uris.length match {
case 1 => target.to(uris(0))
Modified:
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala?rev=1098103&r1=1098102&r2=1098103&view=diff
==============================================================================
---
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala
(original)
+++
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala
Sat Apr 30 12:04:32 2011
@@ -24,7 +24,7 @@ case class SRouteDefinition(override val
def ==> (block: => Unit) : SRouteDefinition =
this.apply(block).asInstanceOf[SRouteDefinition]
def ::(id: String) : SRouteDefinition = {
- target.setId(id)
+ target.routeId(id)
this
}
Copied:
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExchangePatternTest.scala
(from r1098092,
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExchangePatternTest.scala?p2=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExchangePatternTest.scala&p1=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala&r1=1098092&r2=1098103&rev=1098103&view=diff
==============================================================================
---
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala
(original)
+++
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExchangePatternTest.scala
Sat Apr 30 12:04:32 2011
@@ -18,27 +18,71 @@ package org.apache.camel
package scala.dsl
import builder.RouteBuilder
+import ExchangePattern.{InOnly, InOut}
-class BasicRouteBuilderTest extends ScalaTestSupport {
+class ExchangePatternTest extends ScalaTestSupport {
- def testBasicRouteArrowSyntax() = assertBasicRoute("direct:a", "mock:a")
- def testBasicRouteTextSyntax() = assertBasicRoute("direct:b", "mock:b")
+ def testInOnly() = {
+ getMockEndpoint("mock:a").expectedMessageCount(1)
+ getMockEndpoint("mock:a").expectedExchangePattern(InOnly)
+ getMockEndpoint("mock:result").expectedMessageCount(1)
+ getMockEndpoint("mock:result").expectedExchangePattern(InOnly)
- def assertBasicRoute(from: String, to: String) = {
- to expect {
- _.expectedMessageCount(1)
- }
- from ! "<hello/>"
- to assert
+ template.sendBody("direct:a", "Hello World")
+
+ assertMockEndpointsSatisfied
+ }
+
+ def testRequestInOnly() = {
+ getMockEndpoint("mock:a").expectedMessageCount(1)
+ getMockEndpoint("mock:a").expectedExchangePattern(InOnly)
+ getMockEndpoint("mock:result").expectedMessageCount(1)
+ getMockEndpoint("mock:result").expectedExchangePattern(InOnly)
+
+ template.requestBody("direct:a", "Hello World")
+
+ assertMockEndpointsSatisfied
+ }
+
+ def testInOut() = {
+ getMockEndpoint("mock:b").expectedMessageCount(1)
+ getMockEndpoint("mock:b").expectedExchangePattern(InOut)
+ getMockEndpoint("mock:result").expectedMessageCount(1)
+ getMockEndpoint("mock:result").expectedExchangePattern(InOut)
+
+ template.sendBody("direct:b", "Hello World")
+
+ assertMockEndpointsSatisfied
+ }
+
+ def testRequstInOut() = {
+ getMockEndpoint("mock:b").expectedMessageCount(1)
+ getMockEndpoint("mock:b").expectedExchangePattern(InOut)
+ getMockEndpoint("mock:result").expectedMessageCount(1)
+ getMockEndpoint("mock:result").expectedExchangePattern(InOut)
+
+ template.requestBody("direct:b", "Hello World")
+
+ assertMockEndpointsSatisfied
+ }
+
+ def testMixed() = {
+ getMockEndpoint("mock:c").expectedMessageCount(1)
+ getMockEndpoint("mock:c").expectedExchangePattern(InOut)
+ getMockEndpoint("mock:result").expectedMessageCount(1)
+ getMockEndpoint("mock:result").expectedExchangePattern(InOnly)
+
+ template.sendBody("direct:c", "Hello World")
+
+ assertMockEndpointsSatisfied
}
val builder = new MyRouteBuilder
- //START SNIPPET: basic
class MyRouteBuilder extends RouteBuilder {
- "direct:a" --> "mock:a"
- "direct:b" to "mock:b"
+ "direct:a" --> (InOnly, "mock:a") --> "mock:result"
+ "direct:b" --> (InOut, "mock:b") --> "mock:result"
+ "direct:c" to (InOut, "mock:c") to (InOnly, "mock:result")
}
- //END SNIPPET: basic
-
+
}