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/06/04 16:21:48 UTC
svn commit: r781747 - in /camel/trunk/components/camel-scala/src:
main/scala/org/apache/camel/scala/dsl/
main/scala/org/apache/camel/scala/dsl/builder/
test/scala/org/apache/camel/scala/dsl/
Author: gertv
Date: Thu Jun 4 14:21:47 2009
New Revision: 781747
URL: http://svn.apache.org/viewvc?rev=781747&view=rev
Log:
CAMEL-463: Adding support for onCompletion clause
Added:
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/Config.scala
- copied, changed from r781745, camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala
camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnCompletionDefinition.scala
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionGlobalTest.scala
- copied, changed from r781745, camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionOnCompleteOnlyTest.scala
- copied, changed from r781745, camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionOnFailureOnlyTest.scala
- copied, changed from r781745, camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionWhenTest.scala
- copied, changed from r781745, 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/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/SRouteDefinition.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/ContentEnricherTest.scala
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExceptionHandlerTest.scala
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RollbackTest.scala
camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/TryCatchFinallyTest.scala
Copied: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/Config.scala (from r781745, 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/Config.scala?p2=camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/Config.scala&p1=camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala&r1=781745&r2=781747&rev=781747&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/Config.scala Thu Jun 4 14:21:47 2009
@@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.scala.dsl;
+package org.apache.camel.scala.dsl
-import org.apache.camel.model.RouteDefinition
-import org.apache.camel.scala.dsl.builder.RouteBuilder
+/**
+ * Generic trait to represent a configuration that can be applied to a target
+ */
+trait Config[T] {
-case class SRouteDefinition(override val target: RouteDefinition, val builder: RouteBuilder) extends SAbstractDefinition[RouteDefinition] {
-
- def ==> : SRouteDefinition = this
+ def configure(target: T)
-}
+}
\ No newline at end of file
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=781747&r1=781746&r2=781747&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 Thu Jun 4 14:21:47 2009
@@ -40,9 +40,13 @@
def loop(expression: Exchange => Any) : SLoopDefinition
def marshal(format : DataFormatDefinition) : DSL
def multicast : SMulticastDefinition
- def otherwise : DSL
+ def otherwise : DSL with Block
+ def onCompletion : SOnCompletionDefinition
+ def onCompletion(predicate: Exchange => Boolean) : SOnCompletionDefinition
+ def onCompletion(config: Config[SOnCompletionDefinition]) : SOnCompletionDefinition
def policy(policy: Policy) : DSL
def process(function: Exchange => Unit) : DSL
+ def process(processor: Processor) : DSL
def recipients(expression: Exchange => Any) : DSL
def resequence(expression: Exchange => Any) : SResequenceDefinition
def rollback : DSL
@@ -52,7 +56,7 @@
def throttle(frequency: Frequency) : SThrottleDefinition
def to(uris: String*) : DSL
def unmarshal(format: DataFormatDefinition) : DSL
- def when(filter: Exchange => Boolean) : SChoiceDefinition
+ def when(filter: Exchange => Boolean) : DSL with Block
def wiretap(uri: String) : DSL
def wiretap(uri: String, expression: Exchange => Any) : 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=781747&r1=781746&r2=781747&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 Thu Jun 4 14:21:47 2009
@@ -31,6 +31,7 @@
val unwrap = target
implicit val builder: RouteBuilder
implicit def expressionBuilder(expression: Exchange => Any) = new ScalaExpression(expression)
+ implicit def predicateBuilder(predicate: Exchange => Boolean) = new ScalaPredicate(predicate)
def -->(uris: String*) = to(uris:_*)
def to(uris: String*) = {
@@ -44,7 +45,7 @@
this
}
- def when(filter: Exchange => Boolean) : SChoiceDefinition = SChoiceDefinition(target.choice).when(filter)
+ def when(filter: Exchange => Boolean) : DSL with Block = SChoiceDefinition(target.choice).when(filter)
def as[Target](toType: Class[Target]) = wrap(target.convertBodyTo(toType))
@@ -82,6 +83,7 @@
def multicast = SMulticastDefinition(target.multicast)
def process(function: Exchange => Unit) = wrap(target.process(new ScalaProcessor(function)))
+ def process(processor: Processor) = wrap(target.process(processor))
def throttle(frequency: Frequency) = SThrottleDefinition(target.throttle(frequency.count).timePeriodMillis(frequency.period.milliseconds))
@@ -89,6 +91,19 @@
def delay(period: Period) = SDelayDefinition(target.delay(period.milliseconds))
+ def onCompletion : SOnCompletionDefinition = {
+ var completion = SOnCompletionDefinition(target.onCompletion)
+ // let's end the block in the Java DSL, we have a better way of handling blocks here
+ completion.target.end
+ completion
+ }
+ def onCompletion(predicate: Exchange => Boolean) = onCompletion().when(predicate).asInstanceOf[SOnCompletionDefinition]
+ def onCompletion(config: Config[SOnCompletionDefinition]) = {
+ val completion = onCompletion().asInstanceOf[SOnCompletionDefinition]
+ config.configure(completion)
+ completion
+ }
+
def policy(policy: Policy) = wrap(target.policy(policy))
def recipients(expression: Exchange => Any) = wrap(target.recipientList(expression))
Added: camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnCompletionDefinition.scala
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnCompletionDefinition.scala?rev=781747&view=auto
==============================================================================
--- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnCompletionDefinition.scala (added)
+++ camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnCompletionDefinition.scala Thu Jun 4 14:21:47 2009
@@ -0,0 +1,37 @@
+package org.apache.camel.scala.dsl
+
+import model.{WhenDefinition,OnCompletionDefinition}
+import org.apache.camel.scala.dsl.builder.RouteBuilder;
+
+case class SOnCompletionDefinition(override val target : OnCompletionDefinition)(implicit val builder : RouteBuilder) extends SAbstractDefinition[OnCompletionDefinition] {
+
+ import org.apache.camel.scala.dsl.SOnCompletionDefinition.{Strategy,FailureOnly}
+
+ override def when(predicate : Exchange => Boolean) : SOnCompletionDefinition =
+ wrap(target.setOnWhen(new WhenDefinition(new ScalaPredicate(predicate))))
+
+ def strategy(strategy : Strategy) : SOnCompletionDefinition = {
+ strategy.applyTo(target)
+ this
+ }
+
+ def onFailureOnly = wrap(target.onFailureOnly)
+ def onCompleteOnly = wrap(target.onCompleteOnly)
+
+ override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SOnCompletionDefinition]
+
+}
+
+object SOnCompletionDefinition {
+
+ abstract class Strategy {
+ def applyTo(target: OnCompletionDefinition)
+ }
+ case class FailureOnly extends Strategy {
+ def applyTo(target: OnCompletionDefinition) : Unit = target.onFailureOnly
+ }
+ case class CompleteOnly extends Strategy {
+ def applyTo(target: OnCompletionDefinition) : Unit = target.onCompleteOnly
+ }
+
+}
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=781747&r1=781746&r2=781747&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 Thu Jun 4 14:21:47 2009
@@ -21,6 +21,6 @@
case class SRouteDefinition(override val target: RouteDefinition, val builder: RouteBuilder) extends SAbstractDefinition[RouteDefinition] {
- def ==> : SRouteDefinition = this
+ def ==> (block: => Unit) : SRouteDefinition = this.apply(block).asInstanceOf[SRouteDefinition]
}
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=781747&r1=781746&r2=781747&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 Thu Jun 4 14:21:47 2009
@@ -66,6 +66,7 @@
def choice = stack.top.choice
def -->(uris: String*) = stack.top.to(uris: _*)
def to(uris: String*) = stack.top.to(uris: _*)
+
def when(filter: Exchange => Boolean) = stack.top.when(filter)
def as[Target](toType: Class[Target]) = stack.top.as(toType)
def recipients(expression: Exchange => Any) = stack.top.recipients(expression)
@@ -82,12 +83,22 @@
def otherwise = stack.top.otherwise
def marshal(format: DataFormatDefinition) = stack.top.marshal(format)
def multicast = stack.top.multicast
- def process(function: Exchange => Unit) = stack.top.process(function)
+
def throttle(frequency: Frequency) = stack.top.throttle(frequency)
def loadbalance = stack.top.loadbalance
def delay(delay: Period) = stack.top.delay(delay)
def enrich(uri: String, strategy: AggregationStrategy) = stack.top.enrich(uri, strategy)
+ def onCompletion = {
+ stack.size match {
+ case 0 => SOnCompletionDefinition(builder.onCompletion)(this)
+ case _ => stack.top.onCompletion;
+ }
+ }
+ def onCompletion(predicate: Exchange => Boolean) = stack.top.onCompletion(predicate)
+ def onCompletion(config: Config[SOnCompletionDefinition]) = stack.top.onCompletion(config)
def policy(policy: Policy) = stack.top.policy(policy)
+ def process(function: Exchange => Unit) = stack.top.process(function)
+ def process(processor: Processor) = stack.top.process(processor)
def resequence(expression: Exchange => Any) = stack.top.resequence(expression)
def rollback = stack.top.rollback
def setbody(expression : Exchange => Any) = stack.top.setbody(expression)
@@ -103,4 +114,13 @@
def setContext(context: CamelContext) = builder.setContext(context)
val serialization = new org.apache.camel.model.dataformat.SerializationDataFormat
+
+ val failureOnly = new Config[SOnCompletionDefinition] {
+ def configure(target: SOnCompletionDefinition) = target.onFailureOnly()
+ }
+
+ val completeOnly = new Config[SOnCompletionDefinition] {
+ def configure(target: SOnCompletionDefinition) = target.onCompleteOnly()
+ }
+
}
Modified: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentEnricherTest.scala
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentEnricherTest.scala?rev=781747&r1=781746&r2=781747&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentEnricherTest.scala (original)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentEnricherTest.scala Thu Jun 4 14:21:47 2009
@@ -50,15 +50,15 @@
// END SNIPPET: simple
// START SNIPPET: def
- "direct:b" process(myProcessor) to ("mock:b")
-
- def myProcessor(exchange: Exchange) = {
+ val myProcessor = (exchange: Exchange) => {
exchange.in match {
case "hello" => exchange.in = "hello from the UK"
case "hallo" => exchange.in = "hallo vanuit Belgie"
case "bonjour" => exchange.in = "bonjour de la douce France"
}
- }
+ }
+
+ "direct:b" process(myProcessor) to ("mock:b")
// END SNIPPET: def
// START SNIPPET: velocity
Modified: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExceptionHandlerTest.scala
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExceptionHandlerTest.scala?rev=781747&r1=781746&r2=781747&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExceptionHandlerTest.scala (original)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExceptionHandlerTest.scala Thu Jun 4 14:21:47 2009
@@ -35,12 +35,12 @@
test {
"direct:a" ! ("any given message", 'Symbol, 256)
}
- }catch { case _ => System.out.println("get the exception here")}
+ } catch { case _ => System.out.println("get the exception here")}
}
val builder =
new RouteBuilder {
- def failingProcessor(exchange: Exchange) = {
+ val failingProcessor = (exchange: Exchange) => {
exchange.in match {
case text: String => //graciously do nothing
case symbol: Symbol => throw new UnsupportedOperationException("We don't know how to deal with this symbolically correct")
@@ -48,7 +48,7 @@
}
}
- def catchProcessor(exchange: Exchange) = {
+ val catchProcessor = (exchange: Exchange) => {
// we shouldn't get any Strings here
assertFalse(exchange.getIn().getBody().getClass().equals(classOf[String]))
// the exchange shouldn't have been marked failed
Modified: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RollbackTest.scala
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RollbackTest.scala?rev=781747&r1=781746&r2=781747&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RollbackTest.scala (original)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RollbackTest.scala Thu Jun 4 14:21:47 2009
@@ -58,7 +58,7 @@
val builder =
new RouteBuilder {
//START SNIPPET: simple
- "direct:a" to("mock:a") when(_.in != "Batman") rollback
+ "direct:a" to("mock:a") when(_.in != "Batman") rollback;
//END SNIPPET: simple
//START SNIPPET: block
Copied: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionGlobalTest.scala (from r781745, 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/test/scala/org/apache/camel/scala/dsl/SOnCompletionGlobalTest.scala?p2=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionGlobalTest.scala&p1=camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala&r1=781745&r2=781747&rev=781747&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala (original)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionGlobalTest.scala Thu Jun 4 14:21:47 2009
@@ -16,11 +16,18 @@
*/
package org.apache.camel.scala.dsl;
-import org.apache.camel.model.RouteDefinition
-import org.apache.camel.scala.dsl.builder.RouteBuilder
+import org.apache.camel.processor.OnCompletionGlobalTest
+import org.apache.camel.processor.OnCompletionGlobalTest.MyProcessor
+import org.apache.camel.scala.dsl.builder.{RouteBuilderSupport, RouteBuilder}
-case class SRouteDefinition(override val target: RouteDefinition, val builder: RouteBuilder) extends SAbstractDefinition[RouteDefinition] {
-
- def ==> : SRouteDefinition = this
+class SOnCompletionGlobalTest extends OnCompletionGlobalTest with RouteBuilderSupport {
-}
+ override def createRouteBuilder = new RouteBuilder {
+
+ onCompletion to "mock:sync"
+
+ "direct:start" process (new MyProcessor()) to ("mock:result")
+
+ }
+
+}
\ No newline at end of file
Copied: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionOnCompleteOnlyTest.scala (from r781745, 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/test/scala/org/apache/camel/scala/dsl/SOnCompletionOnCompleteOnlyTest.scala?p2=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionOnCompleteOnlyTest.scala&p1=camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala&r1=781745&r2=781747&rev=781747&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala (original)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionOnCompleteOnlyTest.scala Thu Jun 4 14:21:47 2009
@@ -16,11 +16,23 @@
*/
package org.apache.camel.scala.dsl;
-import org.apache.camel.model.RouteDefinition
-import org.apache.camel.scala.dsl.builder.RouteBuilder
+import dsl.SOnCompletionDefinition.CompleteOnly
+import org.apache.camel.processor.OnCompletionGlobalTest.MyProcessor
+import org.apache.camel.scala.dsl.builder.{RouteBuilderSupport, RouteBuilder}
+import processor.OnCompletionOnCompleteOnlyTest
-case class SRouteDefinition(override val target: RouteDefinition, val builder: RouteBuilder) extends SAbstractDefinition[RouteDefinition] {
-
- def ==> : SRouteDefinition = this
+class SOnCompletionOnCompleteOnlyTest extends OnCompletionOnCompleteOnlyTest with RouteBuilderSupport {
+
+ override def createRouteBuilder = new RouteBuilder {
+
+ "direct:start" ==> {
+ onCompletion(completeOnly) {
+ to("mock:sync")
+ }
+ process(new MyProcessor())
+ to("mock:result")
+ }
+
+ }
}
Copied: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionOnFailureOnlyTest.scala (from r781745, 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/test/scala/org/apache/camel/scala/dsl/SOnCompletionOnFailureOnlyTest.scala?p2=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionOnFailureOnlyTest.scala&p1=camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala&r1=781745&r2=781747&rev=781747&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala (original)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionOnFailureOnlyTest.scala Thu Jun 4 14:21:47 2009
@@ -16,11 +16,24 @@
*/
package org.apache.camel.scala.dsl;
-import org.apache.camel.model.RouteDefinition
-import org.apache.camel.scala.dsl.builder.RouteBuilder
+import dsl.SOnCompletionDefinition.{FailureOnly}
+import org.apache.camel.processor.OnCompletionGlobalTest.MyProcessor
+import org.apache.camel.scala.dsl.builder.{RouteBuilderSupport, RouteBuilder}
+import processor.OnCompletionOnFailureOnlyTest
-case class SRouteDefinition(override val target: RouteDefinition, val builder: RouteBuilder) extends SAbstractDefinition[RouteDefinition] {
-
- def ==> : SRouteDefinition = this
+class SOnCompletionOnFailureOnlyTest extends OnCompletionOnFailureOnlyTest with RouteBuilderSupport {
+
+ override def createRouteBuilder = new RouteBuilder {
+
+ "direct:start" ==> {
+ onCompletion(failureOnly) {
+ to("mock:sync")
+ }
+ process(new MyProcessor())
+ to("mock:result")
+ }
+
+ def containsHello(exchange: Exchange) = exchange.getIn().getBody(classOf[String]).contains("Hello");
+ }
}
Copied: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionWhenTest.scala (from r781745, 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/test/scala/org/apache/camel/scala/dsl/SOnCompletionWhenTest.scala?p2=camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionWhenTest.scala&p1=camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala&r1=781745&r2=781747&rev=781747&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteDefinition.scala (original)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SOnCompletionWhenTest.scala Thu Jun 4 14:21:47 2009
@@ -16,11 +16,23 @@
*/
package org.apache.camel.scala.dsl;
-import org.apache.camel.model.RouteDefinition
-import org.apache.camel.scala.dsl.builder.RouteBuilder
+import org.apache.camel.processor.OnCompletionGlobalTest.MyProcessor
+import org.apache.camel.scala.dsl.builder.{RouteBuilderSupport, RouteBuilder}
+import processor.OnCompletionWhenTest
+import reflect.Manifest
-case class SRouteDefinition(override val target: RouteDefinition, val builder: RouteBuilder) extends SAbstractDefinition[RouteDefinition] {
-
- def ==> : SRouteDefinition = this
+class SOnCompletionWhenTest extends OnCompletionWhenTest with RouteBuilderSupport {
-}
+ override def createRouteBuilder = new RouteBuilder {
+
+ "direct:start" ==> {
+ onCompletion(containsHello(_)) {
+ to("mock:sync")
+ }
+ to("mock:result")
+ }
+
+ def containsHello(exchange: Exchange) = exchange.getIn().getBody(classOf[String]).contains("Hello");
+ }
+
+}
\ No newline at end of file
Modified: camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/TryCatchFinallyTest.scala
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/TryCatchFinallyTest.scala?rev=781747&r1=781746&r2=781747&view=diff
==============================================================================
--- camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/TryCatchFinallyTest.scala (original)
+++ camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/TryCatchFinallyTest.scala Thu Jun 4 14:21:47 2009
@@ -38,14 +38,14 @@
val builder =
new RouteBuilder {
- def failingProcessor(exchange: Exchange) = {
+ val failingProcessor = (exchange: Exchange) => {
exchange.in match {
case text: String => //graciously do nothing
case _ => throw new RuntimeException("Strings are good, the rest is bad")
}
}
- def catchProcessor(exchange: Exchange) = {
+ val catchProcessor = (exchange: Exchange) => {
// we shouldn't get any Strings here
assertFalse(exchange.getIn().getBody().getClass().equals(classOf[String]))
// the exchange shouldn't have been marked failed