You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/07/11 14:57:07 UTC

[5/7] camel git commit: CAMEL-6098: Add script to scala DSL. Polished Scala

CAMEL-6098: Add script to scala DSL. Polished Scala


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6a8219af
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6a8219af
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6a8219af

Branch: refs/heads/master
Commit: 6a8219af11b509a07262d5206223e2c8922c4f07
Parents: 99380c6
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Jul 11 12:53:57 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Jul 11 12:53:57 2015 +0200

----------------------------------------------------------------------
 .../org/apache/camel/scala/RichExchange.scala   |  2 -
 .../org/apache/camel/scala/ScalaPredicate.scala |  1 -
 .../scala/org/apache/camel/scala/dsl/DSL.scala  |  1 +
 .../camel/scala/dsl/SAbstractDefinition.scala   |  1 +
 .../scala/dsl/SAggregateDefinition.scala.orig   | 72 --------------------
 .../scala/dsl/SOnExceptionDefinition.scala      |  2 -
 .../camel/scala/dsl/SThreadsDefinition.scala    |  1 -
 .../camel/scala/dsl/builder/RouteBuilder.scala  |  3 +-
 .../apache/camel/scala/dsl/SScriptTest.scala    | 38 +++++++++++
 9 files changed, 41 insertions(+), 80 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6a8219af/components/camel-scala/src/main/scala/org/apache/camel/scala/RichExchange.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/RichExchange.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/RichExchange.scala
index e908e39..0a280b0 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/RichExchange.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/RichExchange.scala
@@ -19,8 +19,6 @@ package scala
 
 import reflect.{ClassTag, classTag}
 import org.apache.camel.spi.{UnitOfWork, Synchronization}
-import org.apache.camel.{ExchangePattern, Message, Endpoint, Exchange}
-import java.lang.{String, Class}
 
 /**
  * Rich wrapper for Camel's Exchange implementations

http://git-wip-us.apache.org/repos/asf/camel/blob/6a8219af/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala
index e461a25..f7a7aa6 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/ScalaPredicate.scala
@@ -18,7 +18,6 @@ package org.apache.camel
 package scala
 
 import dsl.languages.LanguageFunction
-import org.apache.camel.Predicate
 import org.apache.camel.util.ObjectHelper._
 
 class ScalaPredicate(function: Exchange => Any) extends Predicate {

http://git-wip-us.apache.org/repos/asf/camel/blob/6a8219af/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala
index b88cd9a..ea74588 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/DSL.scala
@@ -89,6 +89,7 @@ trait DSL {
   def routingSlip(header: String, separator: String) : DSL
   def routingSlip(expression: Exchange => Any) : DSL
 
+  def script(expression: Exchange => Any) : DSL
   def setBody(expression: Exchange => Any) : DSL
   def setFaultBody(expression: Exchange => Any) : DSL
   def setHeader(header: String, expression: Exchange => Any) : DSL

http://git-wip-us.apache.org/repos/asf/camel/blob/6a8219af/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala
index ca9afc3..4f2f33c 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAbstractDefinition.scala
@@ -134,6 +134,7 @@ abstract class SAbstractDefinition[P <: ProcessorDefinition[_]] extends DSL with
   def routingSlip(expression: Exchange => Any, separator: String) = wrap(target.routingSlip(expression, separator))
   def routingSlip(expression: Exchange => Any) = wrap(target.routingSlip(expression))
 
+  def script(expression: Exchange => Any) = wrap(target.script(expression))
   def setBody(expression: Exchange => Any) = wrap(target.setBody(expression))
   def setFaultBody(expression: Exchange => Any) = wrap(target.setFaultBody(expression))
   def setHeader(name: String, expression: Exchange => Any) = wrap(target.setHeader(name, expression))

http://git-wip-us.apache.org/repos/asf/camel/blob/6a8219af/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAggregateDefinition.scala.orig
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAggregateDefinition.scala.orig b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAggregateDefinition.scala.orig
deleted file mode 100644
index 1e7b5d5..0000000
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAggregateDefinition.scala.orig
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * 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 java.util.concurrent.ExecutorService
-import java.util.concurrent.ScheduledExecutorService
-import org.apache.camel.model.AggregateDefinition
-import org.apache.camel.processor.aggregate.AggregationStrategy
-import org.apache.camel.scala.dsl.builder.RouteBuilder
-import org.apache.camel.Exchange
-import org.apache.camel.scala.Period
-
-/**
- * Scala wrapper for Camel AggregateDefinition
- */
-case class SAggregateDefinition(override val target: AggregateDefinition)(implicit val builder: RouteBuilder) extends SAbstractDefinition[AggregateDefinition] {
-  
-  def strategy(function: (Exchange, Exchange) => Exchange) = {
-    target.setAggregationStrategy(
-      new AggregationStrategy() {
-        def aggregate(oldExchange: Exchange, newExchange: Exchange) = function(oldExchange, newExchange)
-      }
-    )
-    this
-  }
-
-  def strategy(strategy: AggregationStrategy) = wrap(target.setAggregationStrategy(strategy))
-
-  def aggregationRepositoryRef(ref: String) = wrap(target.setAggregationRepositoryRef(ref))
-  def strategyRef(ref: String) = wrap(target.setStrategyRef(ref))
-
-  def completionSize(count: Int) = wrap(target.completionSize(count))
-  def completionTimeout(period: Period) = wrap(target.setCompletionTimeout(period.milliseconds))
-  def completionInterval(period: Period) =
-    wrap(target.setCompletionInterval(period.milliseconds))
-
-  def closeCorrelationKeyOnCompletion(count: Int) = wrap(target.setCloseCorrelationKeyOnCompletion(count))
-  def parallelProcessing = wrap(target.parallelProcessing)
-  def completionFromBatchConsumer = wrap(target.completionFromBatchConsumer)
-  def eagerCheckCompletion = wrap(target.eagerCheckCompletion)
-  def ignoreInvalidCorrelationKeys = wrap(target.ignoreInvalidCorrelationKeys)
-  def groupExchanges = wrap(target.groupExchanges)
- 
-  def discardOnCompletionTimeout = wrap(target.discardOnCompletionTimeout)
-  def forceCompletionOnStop = wrap(target.forceCompletionOnStop())
-  def timeoutCheckerExecutorService(executorService: ScheduledExecutorService) 
-      = wrap(target.setTimeoutCheckerExecutorService(executorService))
-  def executorService(executorService: ExecutorService) = wrap(target.setExecutorService(executorService))
-  def executorServiceRef(ref: String) = wrap(target.setExecutorServiceRef(ref))
-  
-  def completionPredicate(filter: Exchange => Any) {
-     // uses implicit conversion
-     val predicate = filter
-     target.completionPredicate(predicate)
-  }
-
-  override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SAggregateDefinition]
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/6a8219af/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnExceptionDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnExceptionDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnExceptionDefinition.scala
index a6acc08..1a5c8aa 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnExceptionDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnExceptionDefinition.scala
@@ -17,11 +17,9 @@
 package org.apache.camel
 package scala.dsl
 
-import org.apache.camel.LoggingLevel
 import org.apache.camel.model.OnExceptionDefinition
 import org.apache.camel.scala.ScalaProcessor
 import org.apache.camel.scala.dsl.builder.RouteBuilder
-import org.apache.camel.Exchange
 
 /**
  * Scala enrichment for Camel's OnExceptionDefinition

http://git-wip-us.apache.org/repos/asf/camel/blob/6a8219af/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThreadsDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThreadsDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThreadsDefinition.scala
index c8fd61b..037d56e 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThreadsDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThreadsDefinition.scala
@@ -22,7 +22,6 @@ import builder.RouteBuilder
 import org.apache.camel.ThreadPoolRejectedPolicy
 import org.apache.camel.model.ThreadsDefinition
 
-
 /**
  * Scala enrichment for Camel's ThreadsDefinition
  */

http://git-wip-us.apache.org/repos/asf/camel/blob/6a8219af/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala
index 7bacb82..3b5d8f1 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/builder/RouteBuilder.scala
@@ -19,7 +19,6 @@ package scala
 package dsl.builder
 
 import org.apache.camel.model.DataFormatDefinition
-import org.apache.camel.{Exchange, RoutesBuilder}
 import org.apache.camel.builder.{LoggingErrorHandlerBuilder, DeadLetterChannelBuilder, ErrorHandlerBuilder}
 
 import org.apache.camel.spi.Policy
@@ -30,7 +29,6 @@ import reflect.{ClassTag, classTag}
 import org.apache.camel.scala.dsl._
 
 import org.apache.camel.scala.dsl.languages.Languages
-import java.lang.String
 import java.util.Comparator
 import org.slf4j.{Logger, LoggerFactory}
 
@@ -185,6 +183,7 @@ class RouteBuilder extends Preamble with DSL with RoutesBuilder with Languages w
   def routingSlip(header: String, separator: String) = stack.top.routingSlip(header, separator)
   def routingSlip(expression: Exchange => Any) = stack.top.routingSlip(expression)
 
+  def script(expression: Exchange => Any) = stack.top.script(expression)
   def setBody(expression : Exchange => Any) = stack.top.setBody(expression)
   def setFaultBody(expression: Exchange => Any) = stack.top.setFaultBody(expression)
   def setHeader(name: String, expression: Exchange => Any) = stack.top.setHeader(name, expression)

http://git-wip-us.apache.org/repos/asf/camel/blob/6a8219af/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SScriptTest.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SScriptTest.scala b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SScriptTest.scala
new file mode 100644
index 0000000..c350b89
--- /dev/null
+++ b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SScriptTest.scala
@@ -0,0 +1,38 @@
+/**
+ * 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.scala.dsl.builder.RouteBuilder
+import org.junit.Test
+import org.scalatest.MustMatchers
+
+class SScriptTest extends ScalaTestSupport with MustMatchers{
+
+  @Test
+  def testRequestBody {
+    "direct:start" !? "Hello" must equal("Hello")
+  }
+
+  val builder =
+    new RouteBuilder {
+      //START SNIPPET: simple
+      "direct:start" script(_.in[String] + " World!")
+      //END SNIPPET: block
+    }
+
+
+}