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