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

[2/2] camel git commit: CAMEL-8784 Fixed the issue of Policy, Validate, Wiretap Scala DSL don't work out of box

CAMEL-8784 Fixed the issue of Policy, Validate, Wiretap Scala DSL don't work out of box


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

Branch: refs/heads/camel-2.15.x
Commit: 15cf03af92eea4b1d59e6a4b4475c60c62243548
Parents: 34ac8df
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed May 20 19:59:32 2015 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Wed May 20 20:05:24 2015 +0800

----------------------------------------------------------------------
 .../camel/scala/dsl/SAbstractDefinition.scala   | 11 +++----
 .../camel/scala/dsl/SPolicyDefinition.scala     | 27 ++++++++++++++++
 .../camel/scala/dsl/SValidateDefinition.scala   | 27 ++++++++++++++++
 .../camel/scala/dsl/SWireTapDefinition.scala    | 27 ++++++++++++++++
 .../camel/scala/dsl/SPolicyPerRouteTest.scala   | 34 ++++++++++++++++++++
 .../apache/camel/scala/dsl/SValidateTest.scala  |  6 ++++
 .../apache/camel/scala/dsl/WiretapTest.scala    |  8 +++++
 7 files changed, 134 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/15cf03af/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 3a49aa3..dc28981 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
@@ -18,14 +18,12 @@ package org.apache.camel
 package scala
 package dsl
 
-import org.apache.camel.Exchange
 import org.apache.camel.model._
 import org.apache.camel.processor.aggregate.AggregationStrategy
 import org.apache.camel.scala.dsl.builder.RouteBuilder
 import spi.Policy
 
 import reflect.{ClassTag, classTag}
-import java.lang.String
 import java.util.Comparator
 
 abstract class SAbstractDefinition[P <: ProcessorDefinition[_]] extends DSL with Wrapper[P] with Block {
@@ -51,6 +49,7 @@ abstract class SAbstractDefinition[P <: ProcessorDefinition[_]] extends DSL with
     this
   }
 
+
   // EIPs
   //-----------------------------------------------------------------
 
@@ -109,7 +108,7 @@ abstract class SAbstractDefinition[P <: ProcessorDefinition[_]] extends DSL with
   def otherwise: SChoiceDefinition = throw new Exception("otherwise is only supported in a choice block or after a when statement")
 
   def pipeline = SPipelineDefinition(target.pipeline)
-  def policy(policy: Policy) = wrap(target.policy(policy))
+  def policy(policy: Policy) = SPolicyDefinition(target.policy(policy))
   def pollEnrich(uri: String, strategy: AggregationStrategy = null, timeout: Long = -1) =
     wrap(target.pollEnrich(uri, timeout, strategy))
   def pollEnrich(uri: String, strategy: AggregationStrategy, timeout: Long, aggregateOnException: Boolean) =
@@ -155,11 +154,11 @@ abstract class SAbstractDefinition[P <: ProcessorDefinition[_]] extends DSL with
   def unmarshal(format: DataFormatDefinition) = wrap(target.unmarshal(format))
   def unmarshal(dataFormatRef: String) = wrap(target.unmarshal(dataFormatRef))
 
-  def validate(expression: Exchange => Any) = wrap(target.validate(predicateBuilder(expression)))
+  def validate(expression: Exchange => Any) = SValidateDefinition(target.validate(predicateBuilder(expression)))
 
   def when(filter: Exchange => Any): DSL with Block = SChoiceDefinition(target.choice).when(filter)
-  def wireTap(uri: String) = wrap(target.wireTap(uri))
-  def wireTap(uri: String, expression: Exchange => Any) = wrap(target.wireTap(uri).newExchangeBody(expression))
+  def wireTap(uri: String) = SWireTapDefinition(target.wireTap(uri))
+  def wireTap(uri: String, expression: Exchange => Any) = SWireTapDefinition(target.wireTap(uri).newExchangeBody(expression))
 
   def -->(pattern: ExchangePattern, uri: String) = wrap(target.to(pattern, uri))
   def -->(uris: String*) = to(uris:_*)

http://git-wip-us.apache.org/repos/asf/camel/blob/15cf03af/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SPolicyDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SPolicyDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SPolicyDefinition.scala
new file mode 100644
index 0000000..4853ff4
--- /dev/null
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SPolicyDefinition.scala
@@ -0,0 +1,27 @@
+/**
+ * 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.PolicyDefinition
+import org.apache.camel.scala.dsl.builder.RouteBuilder
+
+/**
+ * Scala enrichment for Camel's PolicyDefinition
+ */
+case class SPolicyDefinition (override val target: PolicyDefinition)(implicit val builder: RouteBuilder) extends SAbstractDefinition[PolicyDefinition] {
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/15cf03af/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SValidateDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SValidateDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SValidateDefinition.scala
new file mode 100644
index 0000000..f29e456
--- /dev/null
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SValidateDefinition.scala
@@ -0,0 +1,27 @@
+/**
+ * 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.ValidateDefinition
+import org.apache.camel.scala.dsl.builder.RouteBuilder
+
+/**
+ * Scala enrichment for Camel's VaildateDefinition
+ */
+case class SValidateDefinition (override val target: ValidateDefinition)(implicit val builder: RouteBuilder) extends SAbstractDefinition[ValidateDefinition] {
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/15cf03af/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SWireTapDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SWireTapDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SWireTapDefinition.scala
new file mode 100644
index 0000000..3a0ceda
--- /dev/null
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SWireTapDefinition.scala
@@ -0,0 +1,27 @@
+/**
+ * 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.WireTapDefinition
+import org.apache.camel.scala.dsl.builder.RouteBuilder
+
+/**
+ * Scala enrichment for Camel's WireTapDefinition
+ */
+case class SWireTapDefinition (override val target: WireTapDefinition[_])(implicit val builder: RouteBuilder) extends SAbstractDefinition[WireTapDefinition[_]] {
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/15cf03af/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SPolicyPerRouteTest.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SPolicyPerRouteTest.scala b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SPolicyPerRouteTest.scala
new file mode 100644
index 0000000..a18ba7d
--- /dev/null
+++ b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SPolicyPerRouteTest.scala
@@ -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.processor.PolicyPerRouteTest
+import org.apache.camel.scala.dsl.builder.{RouteBuilder, RouteBuilderSupport}
+
+class SPolicyPerRouteTest extends PolicyPerRouteTest with RouteBuilderSupport {
+
+  override def createRouteBuilder = new RouteBuilder {
+    from("direct:start")
+      .policy("foo").to("mock:foo").to("mock:bar").to("mock:result")
+
+    from("direct:send")
+      .to("direct:start")
+      .to("mock:response")
+
+}
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/15cf03af/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SValidateTest.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SValidateTest.scala b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SValidateTest.scala
index 988ba07..7ddacd0 100644
--- a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SValidateTest.scala
+++ b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/SValidateTest.scala
@@ -56,6 +56,12 @@ class SValidateSimpleTest extends ValidateSimpleTest with RouteBuilderSupport {
   }
 }
 
+class SValidateSimpleBuilderTest extends SValidateSimpleTest with RouteBuilderSupport {
+  override def createRouteBuilder = new RouteBuilder {
+    from("direct:start").validate(simple("${body} contains 'Camel'")).to("mock:result")
+  }
+}
+
 /**
  * Scala DSL equivalent for the ValidateRegExpTest, using the Scala DSL block syntax
  */

http://git-wip-us.apache.org/repos/asf/camel/blob/15cf03af/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/WiretapTest.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/WiretapTest.scala b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/WiretapTest.scala
index 3aa5aac..5598d7a 100644
--- a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/WiretapTest.scala
+++ b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/WiretapTest.scala
@@ -45,6 +45,12 @@ class WiretapTest extends ScalaTestSupport {
   def testBlockTapWithBody() {
     doTestWiretapWithBody("direct:d", "mock:d")
   }
+
+
+  @Test
+  def testBuilderWiretap() {
+    doTestWiretap("direct:e", "mock:e")
+  }
   
   def doTestWiretap(from: String, to: String) {
     to expect { _.received("Calling Elvis", "Calling Paul")}
@@ -87,6 +93,8 @@ class WiretapTest extends ScalaTestSupport {
         }) to "mock:tap"
        
        "direct:tap-with-body" to "mock:tap-with-body"
+
+       from("direct:e").wireTap("direct:tap").setBody("Calling " + _.in[Adult].name).to("mock:e")
     }
 
 }