Author: gertv
Date: Fri Jul 18 00:26:01 2008
New Revision: 677842
URL: http://svn.apache.org/viewvc?rev=677842&view=rev
Log:
CAMEL-463: Some refactorings to the camel-scala component
Added:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaExpression.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaProcessor.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Wrapper.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractType.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilderSupport.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RichTestUri.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ScalaTestSupport.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/builder/
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/builder/RouteBuilderUnwrapTest.scala
Removed:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/builder/
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/ScalaDsl.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/ScalaExpression.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/ScalaProcessor.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/WhenPredicate.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/Wrapper.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/RichTestUri.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/ScalaTestSupport.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/builder/
Modified:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SChoiceType.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SDelayerType.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SLoadBalanceType.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SMulticastType.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SProcessorType.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SResequencerType.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteType.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SSplitterType.scala
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThrottlerType.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentBasedRouterTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentEnricherTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/DelayerTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExplicitMulticastTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/FilterRouteBuilderTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/LoadBalancerTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineAndMulticastTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineRouteBuilderTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RecipientListRouteTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ResequencerTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterRouteBuilderTest.scala
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ThrottlerTest.scala
Added:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaExpression.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaExpression.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaExpression.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaExpression.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,26 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl;
+
+/**
+ * Scala implementation for an Apache Camel Expression
+ */
+class ScalaExpression(val expression: Exchange => Any) extends
Expression[Exchange] {
+
+ def evaluate(exchange: Exchange) = expression(exchange).asInstanceOf[Object]
+
+}
Added:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl;
+
+import org.apache.camel.Predicate
+
+class ScalaPredicate(function: Exchange => Boolean) extends
Predicate[Exchange]{
+
+ override def matches(exchange: Exchange) = {
+ function(exchange)
+ }
+
+ override def assertMatches(text: String, exchange: Exchange) = {
+ if (!matches(exchange)) throw new AssertionError(text + " : " + exchange +
" doesn't match Scala function")
+ }
+
+}
Added:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaProcessor.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaProcessor.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaProcessor.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaProcessor.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,26 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl;
+
+/**
+ * Scala implementation for an Apache Camel Processor
+ */
+class ScalaProcessor(val function: Exchange => Any) extends Processor {
+
+ def process(exchange: Exchange) = function(exchange)
+
+}
Added:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Wrapper.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Wrapper.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Wrapper.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/Wrapper.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,26 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl;
+
+/**
+ * Wraps a given type T and supports unwrapping it on demand
+ */
+trait Wrapper[T] {
+
+ val unwrap : T
+
+}
Added:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,39 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl
+
+/**
+ * Defines the 'keywords' in our Scala DSL
+ */
+trait DSL {
+
+ def choice : SChoiceType
+ def -->(uris: String*) : DSL
+ def to(uris: String*) : DSL
+ def when(filter: Exchange => Boolean) : SChoiceType
+ def as[Target](toType: Class[Target]) : DSL
+ def recipients(expression: Exchange => Any) : DSL
+ def splitter(expression: Exchange => Any) : SSplitterType
+ def otherwise : DSL
+ def multicast : SMulticastType
+ def process(function: Exchange => Unit) : DSL
+ def throttle(frequency: Frequency) : SThrottlerType
+ def loadbalance : SLoadBalanceType
+ def delay(delay: Period) : SDelayerType
+ def resequence(expression: Exchange => Any) : SResequencerType
+
+}
Added:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractType.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractType.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractType.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractType.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,82 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl;
+
+import org.apache.camel.model.ProcessorType
+import org.apache.camel.model.FilterType
+import org.apache.camel.model.ChoiceType
+
+import org.apache.camel.scala.dsl.builder.RouteBuilder
+
+abstract class SAbstractType extends DSL {
+
+ val target : ProcessorType[T] forSome {type T}
+ implicit val builder: RouteBuilder
+ implicit def expressionBuilder(expression: Exchange => Any) = new
ScalaExpression(expression)
+
+ def -->(uris: String*) = to(uris:_*)
+ def to(uris: String*) = {
+ uris.length match {
+ case 1 => target.to(uris(0))
+ case _ => {
+ val multicast = target.multicast
+ uris.foreach(multicast.to(_))
+ }
+ }
+ this
+ }
+
+ def when(filter: Exchange => Boolean) : SChoiceType =
+ new SChoiceType(target.choice).when(filter)
+
+ def as[Target](toType: Class[Target]) = {
+ target.convertBodyTo(toType)
+ new SProcessorType(target.asInstanceOf[ProcessorType[P] forSome {type P}])
+ }
+
+ def splitter(expression: Exchange => Any) =
+ new SSplitterType(target.splitter(expression))
+
+ def recipients(expression: Exchange => Any) =
+ new
SProcessorType(target.recipientList(expression).asInstanceOf[ProcessorType[P]
forSome {type P}])
+
+ def apply(block: => Unit) = {
+ builder.build(this, block)
+ this
+ }
+
+ def choice = new SChoiceType(target.choice)
+
+ def otherwise : SChoiceType =
+ throw new Exception("otherwise is only supported in a choice block or
after a when statement")
+
+ def multicast = new SMulticastType(target.multicast)
+
+ def process(function: Exchange => Unit) = {
+ target.process(new ScalaProcessor(function))
+ this
+ }
+
+ def throttle(frequency: Frequency) = new
SThrottlerType(target.throttler(frequency.count).timePeriodMillis(frequency.period.milliseconds))
+
+ def loadbalance = new SLoadBalanceType(target.loadBalance)
+
+ def delay(period: Period) = new
SDelayerType(target.delayer(period.milliseconds))
+
+ def resequence(expression: Exchange => Any) = new
SResequencerType(target.resequencer(expression))
+
+}
Modified:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SChoiceType.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SChoiceType.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SChoiceType.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SChoiceType.scala
Fri Jul 18 00:26:01 2008
@@ -17,9 +17,9 @@
package org.apache.camel.scala.dsl;
import org.apache.camel.model.ChoiceType
-import org.apache.camel.scala.builder.RouteBuilder
+import org.apache.camel.scala.dsl.builder.RouteBuilder
-class SChoiceType(val target: ChoiceType)(implicit val builder: RouteBuilder)
extends ScalaDsl with Wrapper[ChoiceType] {
+class SChoiceType(val target: ChoiceType)(implicit val builder: RouteBuilder)
extends SAbstractType with Wrapper[ChoiceType] {
val unwrap = target
@@ -29,7 +29,7 @@
}
override def when(filter: Exchange => Boolean) = {
- target.when(new WhenPredicate(filter))
+ target.when(new ScalaPredicate(filter))
this
}
Modified:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SDelayerType.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SDelayerType.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SDelayerType.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SDelayerType.scala
Fri Jul 18 00:26:01 2008
@@ -17,12 +17,12 @@
package org.apache.camel.scala.dsl;
import org.apache.camel.model.DelayerType
-import org.apache.camel.scala.builder.RouteBuilder
+import org.apache.camel.scala.dsl.builder.RouteBuilder
/**
* Scala enrichment for Camel's DelayerType
*/
-class SDelayerType(val target: DelayerType)(implicit val builder:
RouteBuilder) extends ScalaDsl with Wrapper[DelayerType] {
+class SDelayerType(val target: DelayerType)(implicit val builder:
RouteBuilder) extends SAbstractType with Wrapper[DelayerType] {
val unwrap = target
Modified:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SLoadBalanceType.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SLoadBalanceType.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SLoadBalanceType.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SLoadBalanceType.scala
Fri Jul 18 00:26:01 2008
@@ -17,12 +17,12 @@
package org.apache.camel.scala.dsl;
import org.apache.camel.model.LoadBalanceType
-import org.apache.camel.scala.builder.RouteBuilder
+import org.apache.camel.scala.dsl.builder.RouteBuilder
/**
* Scala enrichment for Camel's LoadBalanceType
*/
-class SLoadBalanceType(val target: LoadBalanceType)(implicit val builder:
RouteBuilder) extends ScalaDsl with Wrapper[LoadBalanceType] {
+class SLoadBalanceType(val target: LoadBalanceType)(implicit val builder:
RouteBuilder) extends SAbstractType with Wrapper[LoadBalanceType] {
val unwrap = target
Modified:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SMulticastType.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SMulticastType.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SMulticastType.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SMulticastType.scala
Fri Jul 18 00:26:01 2008
@@ -17,9 +17,9 @@
package org.apache.camel.scala.dsl;
import org.apache.camel.model.MulticastType
-import org.apache.camel.scala.builder.RouteBuilder
+import org.apache.camel.scala.dsl.builder.RouteBuilder
-class SMulticastType(val target: MulticastType)(implicit val builder:
RouteBuilder) extends ScalaDsl with Wrapper[MulticastType] {
+class SMulticastType(val target: MulticastType)(implicit val builder:
RouteBuilder) extends SAbstractType with Wrapper[MulticastType] {
val unwrap = target
Modified:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SProcessorType.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SProcessorType.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SProcessorType.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SProcessorType.scala
Fri Jul 18 00:26:01 2008
@@ -17,9 +17,9 @@
package org.apache.camel.scala.dsl;
import org.apache.camel.model.ProcessorType
-import org.apache.camel.scala.builder.RouteBuilder
+import org.apache.camel.scala.dsl.builder.RouteBuilder
-class SProcessorType(val target: ProcessorType[P] forSome {type P})(implicit
val builder: RouteBuilder) extends ScalaDsl with Wrapper[ProcessorType[P]
forSome {type P}] {
+class SProcessorType(val target: ProcessorType[P] forSome {type P})(implicit
val builder: RouteBuilder) extends SAbstractType with Wrapper[ProcessorType[P]
forSome {type P}] {
val unwrap = target
Modified:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SResequencerType.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SResequencerType.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SResequencerType.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SResequencerType.scala
Fri Jul 18 00:26:01 2008
@@ -18,9 +18,9 @@
import org.apache.camel.model.ResequencerType
import org.apache.camel.model.config.BatchResequencerConfig
-import org.apache.camel.scala.builder.RouteBuilder
+import org.apache.camel.scala.dsl.builder.RouteBuilder
-class SResequencerType(val target: ResequencerType)(implicit val builder:
RouteBuilder) extends ScalaDsl with Wrapper[ResequencerType] {
+class SResequencerType(val target: ResequencerType)(implicit val builder:
RouteBuilder) extends SAbstractType with Wrapper[ResequencerType] {
val unwrap = target
Modified:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteType.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteType.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteType.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SRouteType.scala
Fri Jul 18 00:26:01 2008
@@ -17,9 +17,9 @@
package org.apache.camel.scala.dsl;
import org.apache.camel.model.RouteType
-import org.apache.camel.scala.builder.RouteBuilder
+import org.apache.camel.scala.dsl.builder.RouteBuilder
-class SRouteType(val target: RouteType, val builder: RouteBuilder) extends
ScalaDsl with Wrapper[RouteType] {
+class SRouteType(val target: RouteType, val builder: RouteBuilder) extends
SAbstractType with Wrapper[RouteType] {
val unwrap = target
Modified:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SSplitterType.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SSplitterType.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SSplitterType.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SSplitterType.scala
Fri Jul 18 00:26:01 2008
@@ -17,9 +17,9 @@
package org.apache.camel.scala.dsl;
import org.apache.camel.model.SplitterType
-import org.apache.camel.scala.builder.RouteBuilder
+import org.apache.camel.scala.dsl.builder.RouteBuilder
-class SSplitterType(val target: SplitterType)(implicit val builder:
RouteBuilder) extends ScalaDsl with Wrapper[SplitterType] {
+class SSplitterType(val target: SplitterType)(implicit val builder:
RouteBuilder) extends SAbstractType with Wrapper[SplitterType] {
val unwrap = target
Modified:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThrottlerType.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThrottlerType.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThrottlerType.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThrottlerType.scala
Fri Jul 18 00:26:01 2008
@@ -17,12 +17,12 @@
package org.apache.camel.scala.dsl;
import org.apache.camel.model.ThrottlerType
-import org.apache.camel.scala.builder.RouteBuilder
+import org.apache.camel.scala.dsl.builder.RouteBuilder
/**
* Scala enrichment for Camel's ThrottlerType
*/
-class SThrottlerType(val target: ThrottlerType)(implicit val builder:
RouteBuilder) extends ScalaDsl with Wrapper[ThrottlerType] {
+class SThrottlerType(val target: ThrottlerType)(implicit val builder:
RouteBuilder) extends SAbstractType with Wrapper[ThrottlerType] {
val unwrap = target
Added:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,68 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl.builder;
+
+import org.apache.camel.model.ProcessorType
+import org.apache.camel.model.ChoiceType
+
+import collection.mutable.Stack
+
+import org.apache.camel.scala.dsl._
+
+/**
+ * Scala RouteBuilder implementation
+ */
+class RouteBuilder extends Preamble with DSL {
+
+ val builder = new org.apache.camel.builder.RouteBuilder {
+ override def configure() = {}
+ }
+
+ val stack = new Stack[DSL];
+
+ implicit def stringToRoute(target: String) : SRouteType = new
SRouteType(builder.from(target), this)
+ implicit def unwrap[W](wrapper: Wrapper[W]) = wrapper.unwrap
+
+ def print() = {
+ println(builder)
+ this
+ }
+
+ def build(context: DSL, block: => Unit) {
+ stack.push(context)
+ block
+ stack.pop()
+ }
+
+ def from(uri: String) = new SRouteType(builder.from(uri), this)
+
+ 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)
+ def splitter(expression: Exchange => Any) = stack.top.splitter(expression)
+ def otherwise = stack.top.otherwise
+ 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 resequence(expression: Exchange => Any) =
stack.top.resequence(expression)
+
+}
Added:
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilderSupport.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilderSupport.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilderSupport.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilderSupport.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,23 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl.builder;
+
+trait RouteBuilderSupport {
+
+ implicit def scalaToJavaBuilder(scalaBuilder: RouteBuilder) =
scalaBuilder.builder
+
+}
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/BasicRouteBuilderTest.scala
Fri Jul 18 00:26:01 2008
@@ -16,8 +16,7 @@
*/
package org.apache.camel.scala.dsl;
-import org.apache.camel.scala.ScalaTestSupport
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
class BasicRouteBuilderTest extends ScalaTestSupport {
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentBasedRouterTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentBasedRouterTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentBasedRouterTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentBasedRouterTest.scala
Fri Jul 18 00:26:01 2008
@@ -16,7 +16,7 @@
*/
package org.apache.camel.scala.dsl;
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
class ContentBasedRouterTest extends ScalaTestSupport {
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentEnricherTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentEnricherTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentEnricherTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ContentEnricherTest.scala
Fri Jul 18 00:26:01 2008
@@ -16,7 +16,7 @@
*/
package org.apache.camel.scala.dsl;
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
class ContentEnricherTest extends ScalaTestSupport {
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/DelayerTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/DelayerTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/DelayerTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/DelayerTest.scala
Fri Jul 18 00:26:01 2008
@@ -17,7 +17,7 @@
package org.apache.camel.scala.dsl;
import org.w3c.dom.Document
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
/**
* Test case for message delayer
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExplicitMulticastTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExplicitMulticastTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExplicitMulticastTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ExplicitMulticastTest.scala
Fri Jul 18 00:26:01 2008
@@ -16,7 +16,7 @@
*/
package org.apache.camel.scala.dsl;
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
class ExplicitMulticastTest extends ScalaTestSupport {
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/FilterRouteBuilderTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/FilterRouteBuilderTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/FilterRouteBuilderTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/FilterRouteBuilderTest.scala
Fri Jul 18 00:26:01 2008
@@ -16,7 +16,7 @@
*/
package org.apache.camel.scala.dsl;
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
class FilterRouteBuilderTest extends ScalaTestSupport {
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/LoadBalancerTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/LoadBalancerTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/LoadBalancerTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/LoadBalancerTest.scala
Fri Jul 18 00:26:01 2008
@@ -17,7 +17,7 @@
package org.apache.camel.scala.dsl;
import org.w3c.dom.Document
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
/**
* Test case for message load balancer
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineAndMulticastTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineAndMulticastTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineAndMulticastTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineAndMulticastTest.scala
Fri Jul 18 00:26:01 2008
@@ -16,7 +16,7 @@
*/
package org.apache.camel.scala.dsl;
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
class PipelineAndMulticastTest extends ScalaTestSupport {
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineRouteBuilderTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineRouteBuilderTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineRouteBuilderTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/PipelineRouteBuilderTest.scala
Fri Jul 18 00:26:01 2008
@@ -16,7 +16,7 @@
*/
package org.apache.camel.scala.dsl;
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
class PipelineRouteBuilderTest extends ScalaTestSupport {
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RecipientListRouteTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RecipientListRouteTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RecipientListRouteTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RecipientListRouteTest.scala
Fri Jul 18 00:26:01 2008
@@ -16,7 +16,7 @@
*/
package org.apache.camel.scala.dsl;
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
import scala.test.{Adult, Toddler, Envelope}
class RecipientListRouteTest extends ScalaTestSupport {
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ResequencerTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ResequencerTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ResequencerTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ResequencerTest.scala
Fri Jul 18 00:26:01 2008
@@ -17,7 +17,7 @@
package org.apache.camel.scala.dsl;
import org.w3c.dom.Document
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
/**
* Test case for message resequencer
Added:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RichTestUri.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RichTestUri.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RichTestUri.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/RichTestUri.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,34 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl;
+
+import org.apache.camel.component.mock.MockEndpoint
+
+class RichTestUri(uri: String, support: ScalaTestSupport) {
+
+ def !(messages: Any*) = {
+ messages.foreach(support.getTemplate().sendBody(uri, _))
+ }
+
+ def expect(block: MockEndpoint => Unit) = {
+ val mock = support.mock(uri)
+ block(mock)
+ }
+
+ def assert() = support.mock(uri).assertIsSatisfied()
+
+}
Added:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ScalaTestSupport.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ScalaTestSupport.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ScalaTestSupport.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ScalaTestSupport.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,60 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl;
+
+import org.apache.camel.ContextTestSupport
+import org.apache.camel.component.mock.MockEndpoint
+import builder.{RouteBuilder,RouteBuilderSupport}
+import org.apache.camel.scala.dsl._
+import _root_.scala.collection.mutable.ArrayBuffer
+
+abstract class ScalaTestSupport extends ContextTestSupport with
RouteBuilderSupport with Preamble {
+
+ implicit def stringToUri(uri:String) = new RichTestUri(uri, this)
+ implicit def mockWrapper(endpoint: MockEndpoint) = new
RichMockEndpoint(endpoint)
+ val endpoints = new ArrayBuffer[MockEndpoint]()
+
+ def assert(uri: String) = getMockEndpoint(uri).assertIsSatisfied
+
+ protected[scala] def getTemplate() = template
+
+ protected[scala] def mock(uri: String) = {
+ val mock = getMockEndpoint(uri)
+ endpoints += mock
+ mock
+ }
+
+ def in(message: Any) : Exchange = {
+ val exchange = createExchangeWithBody(message)
+ println(exchange)
+ exchange
+ }
+
+ val builder : RouteBuilder
+
+ override protected def createRouteBuilder = builder.print
+
+ override def setUp = {
+ super.setUp
+ endpoints.foreach(_.reset())
+ }
+
+ def test(block : => Unit) = {
+ block
+ endpoints.foreach(_.assertIsSatisfied)
+ }
+}
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterRouteBuilderTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterRouteBuilderTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterRouteBuilderTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SplitterRouteBuilderTest.scala
Fri Jul 18 00:26:01 2008
@@ -18,7 +18,7 @@
import org.w3c.dom.Document
import languages.XPath
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
/**
* Test case for Splitter
Modified:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ThrottlerTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ThrottlerTest.scala?rev=677842&r1=677841&r2=677842&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ThrottlerTest.scala
(original)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/ThrottlerTest.scala
Fri Jul 18 00:26:01 2008
@@ -17,7 +17,7 @@
package org.apache.camel.scala.dsl;
import org.w3c.dom.Document
-import scala.builder.RouteBuilder
+import scala.dsl.builder.RouteBuilder
/**
* Test case for message throttler
Added:
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/builder/RouteBuilderUnwrapTest.scala
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/builder/RouteBuilderUnwrapTest.scala?rev=677842&view=auto
==============================================================================
---
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/builder/RouteBuilderUnwrapTest.scala
(added)
+++
activemq/camel/trunk/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/builder/RouteBuilderUnwrapTest.scala
Fri Jul 18 00:26:01 2008
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.scala.dsl.builder;
+
+import org.apache.camel.scala.dsl.Wrapper
+import org.apache.camel.scala.test.{Person,Adult}
+import junit.framework.TestCase
+import junit.framework.Assert._
+
+class RouteBuilderUnwrapTest extends TestCase {
+
+ def builder = new RouteBuilder {
+
+ val person = new PersonWrapper
+
+ def testUnwrap = {
+ //access the wrapper
+ assertEquals("Apache Camel", person.vote)
+
+ //unwrap when necessary
+ assertTrue(person.canVote)
+ }
+
+ }
+
+
+ def testUnwrapWhenNecessary() = builder.testUnwrap
+
+ class PersonWrapper extends Wrapper[Person] {
+
+ val person = new Adult("Gert")
+ val unwrap = person
+
+ def vote = "Apache Camel"
+
+ }
+
+}