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/06 09:43:49 UTC

camel git commit: Cannot chain RouteDefinition.autoStartup. Thanks to Ramon Marco L. Navarro for the patch.

Repository: camel
Updated Branches:
  refs/heads/master 59efc8832 -> 713505e6f


Cannot chain RouteDefinition.autoStartup. Thanks to Ramon Marco L. Navarro for the patch.


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

Branch: refs/heads/master
Commit: 713505e6f18d470c5870a92426cab919e8b8865c
Parents: 59efc88
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Jul 6 09:47:37 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Jul 6 09:47:37 2015 +0200

----------------------------------------------------------------------
 .../camel/scala/dsl/SAbstractDefinition.scala   |  2 +-
 .../camel/scala/dsl/SAggregateDefinition.scala  |  2 -
 .../scala/dsl/SAggregateDefinition.scala.orig   | 72 ++++++++++++++++++++
 .../camel/scala/dsl/SEnrichDefinition.scala     |  3 -
 .../dsl/SIdempotentConsumerDefinition.scala     |  3 -
 .../scala/dsl/SLoadBalanceDefinition.scala      |  2 -
 .../camel/scala/dsl/SMulticastDefinition.scala  |  3 -
 .../scala/dsl/SOnCompletionDefinition.scala     |  3 -
 .../scala/dsl/SOnExceptionDefinition.scala      |  3 -
 .../camel/scala/dsl/SPipelineDefinition.scala   |  3 -
 .../camel/scala/dsl/SResequenceDefinition.scala |  3 -
 .../camel/scala/dsl/SSplitDefinition.scala      |  3 -
 .../camel/scala/dsl/SThreadsDefinition.scala    |  4 +-
 .../camel/scala/dsl/SThrottleDefinition.scala   |  2 -
 ...StartupNotReturningRouteDefinitionTest.scala | 48 +++++++++++++
 15 files changed, 122 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/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 ff632df..ca9afc3 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
@@ -44,7 +44,7 @@ abstract class SAbstractDefinition[P <: ProcessorDefinition[_]] extends DSL with
   /**
    * Helper method to return this Scala type instead of creating another wrapper type for the processor
    */
-  def wrap(block: => Unit): SAbstractDefinition[_] = {
+  def wrap(block: => Unit): this.type = {
     block
     this
   }

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAggregateDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAggregateDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAggregateDefinition.scala
index 1e7b5d5..8f08f96 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAggregateDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAggregateDefinition.scala
@@ -67,6 +67,4 @@ case class SAggregateDefinition(override val target: AggregateDefinition)(implic
      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/713505e6/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
new file mode 100644
index 0000000..1e7b5d5
--- /dev/null
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SAggregateDefinition.scala.orig
@@ -0,0 +1,72 @@
+/*
+ * 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/713505e6/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SEnrichDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SEnrichDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SEnrichDefinition.scala
index 1a19be0..48a40f5 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SEnrichDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SEnrichDefinition.scala
@@ -30,7 +30,4 @@ case class SEnrichDefinition(override val target: EnrichDefinition)(implicit val
   
   def resourceRef(ref: String) = wrap(target.setResourceRef(ref))
   def resourceUri(resourceUri: String) = wrap(target.setResourceUri(resourceUri))
-  
-  override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SEnrichDefinition]
-
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SIdempotentConsumerDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SIdempotentConsumerDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SIdempotentConsumerDefinition.scala
index c4488ae..3bffa03 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SIdempotentConsumerDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SIdempotentConsumerDefinition.scala
@@ -38,7 +38,4 @@ case class SIdempotentConsumerDefinition(override val target: IdempotentConsumer
   def skipDuplicate(skipDuplicate: Boolean) = wrap(target.setSkipDuplicate(skipDuplicate))
   
   def removeOnFailure(removeOnFailure: Boolean) = wrap(target.setRemoveOnFailure(removeOnFailure))
-
-  override def wrap(block: => Unit) : SIdempotentConsumerDefinition = super.wrap(block).asInstanceOf[SIdempotentConsumerDefinition]
-   
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SLoadBalanceDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SLoadBalanceDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SLoadBalanceDefinition.scala
index 5fdb2ab..c6104a5 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SLoadBalanceDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SLoadBalanceDefinition.scala
@@ -43,6 +43,4 @@ case class SLoadBalanceDefinition(override val target: LoadBalanceDefinition)(im
   def weighted(roundRobin: Boolean, distributionRatio: String, distributionRatioDelimiter :String = ",") 
       = wrap(target.weighted(roundRobin, distributionRatio, distributionRatioDelimiter))
   def custom(ref: String) = wrap(target.custom(ref))
-
-  override def wrap(block: => Unit) : SLoadBalanceDefinition = super.wrap(block).asInstanceOf[SLoadBalanceDefinition] 
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SMulticastDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SMulticastDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SMulticastDefinition.scala
index e55f811..2498023 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SMulticastDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SMulticastDefinition.scala
@@ -51,7 +51,4 @@ case class SMulticastDefinition(override val target: MulticastDefinition)(implic
   def executorServiceRef(ref: String) = wrap(target.setExecutorServiceRef(ref))
   
   def timeout(timeout: Long) = wrap(target.timeout(timeout))
-
-  override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SMulticastDefinition]
-  
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnCompletionDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnCompletionDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnCompletionDefinition.scala
index 9277819..1512859 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnCompletionDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SOnCompletionDefinition.scala
@@ -40,7 +40,4 @@ case class SOnCompletionDefinition(override val target : OnCompletionDefinition)
   def parallelProcessing = wrap(target.parallelProcessing)
   def executorService(executorService: ExecutorService) = wrap(target.setExecutorService(executorService))
   def executorServiceRef(ref: String) = wrap(target.setExecutorServiceRef(ref))
-
-  override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SOnCompletionDefinition]
-
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/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 7f7d6ef..a6acc08 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
@@ -81,7 +81,4 @@ case class SOnExceptionDefinition[E <: Throwable](override val target: OnExcepti
   def retryWhile(retryWhile: Exchange => Any) = wrap(target.retryWhile(predicateBuilder(retryWhile)))
 
   def useOriginalMessage = wrap(target.useOriginalMessage)
-
-  override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SOnExceptionDefinition[E]]
-  
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SPipelineDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SPipelineDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SPipelineDefinition.scala
index ed0a796..0c48dc7 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SPipelineDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SPipelineDefinition.scala
@@ -35,7 +35,4 @@ case class SPipelineDefinition(override val target: PipelineDefinition)(implicit
   }
 
   override def apply(block: => Unit) = wrap(super.apply(block))
-
-  override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SPipelineDefinition]
-
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SResequenceDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SResequenceDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SResequenceDefinition.scala
index f648c72..6c4023d 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SResequenceDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SResequenceDefinition.scala
@@ -54,7 +54,4 @@ case class SResequenceDefinition(override val target: ResequenceDefinition)(impl
   def ignoreInvalidExchanges = wrap(target.ignoreInvalidExchanges)
   
   def comparator(comparator: ExpressionResultComparator) = wrap(target.comparator(comparator))
-  
-  override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SResequenceDefinition]
-
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SSplitDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SSplitDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SSplitDefinition.scala
index e135251..d4a9747 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SSplitDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SSplitDefinition.scala
@@ -23,9 +23,6 @@ import org.apache.camel.processor.aggregate.AggregationStrategy
 import org.apache.camel.scala.dsl.builder.RouteBuilder
 
 case class SSplitDefinition(override val target: SplitDefinition)(implicit val builder: RouteBuilder) extends SAbstractDefinition[SplitDefinition] {
-  
-  override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SSplitDefinition]
-  
   def aggregationStrategy(aggregationStrategy: AggregationStrategy) = wrap(target.aggregationStrategy(aggregationStrategy))
   
   def aggregationStrategyRef(ref: String) = wrap(target.aggregationStrategyRef(ref))

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/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 59664a4..c8fd61b 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
@@ -44,11 +44,9 @@ case class SThreadsDefinition(override val target: ThreadsDefinition)(implicit v
   
   def callerRunsWhenRejected(callerRunsWhenRejected: Boolean) = wrap(target.callerRunsWhenRejected(callerRunsWhenRejected))
 
-  override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SThreadsDefinition]
-  
   def executorService(executorService: ExecutorService) = wrap(target.setExecutorService(executorService))
   
   def executorServiceRef(ref: String) = wrap(target.setExecutorServiceRef(ref))
 
 }
-  
\ No newline at end of file
+  

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThrottleDefinition.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThrottleDefinition.scala b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThrottleDefinition.scala
index 83a8aa8..495b6fc 100644
--- a/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThrottleDefinition.scala
+++ b/components/camel-scala/src/main/scala/org/apache/camel/scala/dsl/SThrottleDefinition.scala
@@ -25,8 +25,6 @@ import org.apache.camel.scala.dsl.builder.RouteBuilder
  */
 case class SThrottleDefinition(override val target: ThrottleDefinition)(implicit val builder: RouteBuilder) extends SAbstractDefinition[ThrottleDefinition] {
  
-  override def wrap(block: => Unit) = super.wrap(block).asInstanceOf[SThrottleDefinition]
-  
   def executorService(executorService: ExecutorService) = wrap(target.setExecutorService(executorService))
   
   def executorServiceRef(ref: String) = wrap(target.setExecutorServiceRef(ref))

http://git-wip-us.apache.org/repos/asf/camel/blob/713505e6/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/AutoStartupNotReturningRouteDefinitionTest.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/AutoStartupNotReturningRouteDefinitionTest.scala b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/AutoStartupNotReturningRouteDefinitionTest.scala
new file mode 100644
index 0000000..72ac87a
--- /dev/null
+++ b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/AutoStartupNotReturningRouteDefinitionTest.scala
@@ -0,0 +1,48 @@
+/**
+ * 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.ServiceStatus.Stopped
+
+import org.junit.Test
+import org.junit.Assert.assertEquals
+import builder.RouteBuilder
+
+class AutoStartupNotReturningRouteDefinitionTest extends ScalaTestSupport {
+  @Test
+  def testBooleanAutoStartup() {
+    assertEquals(context.getRouteStatus("boolean-auto-startup"), Stopped)
+  }
+
+  @Test
+  def testStringAutoStartup() {
+    assertEquals(context.getRouteStatus("string-auto-startup"), Stopped)
+  }
+
+  val builder =
+    new RouteBuilder {
+      // will throw an exception if bug is present
+      "boolean-auto-startup" :: "direct:a".autoStartup(false) ==> {
+        to ("mock:a")
+      }
+
+      // will throw an exception if bug is present
+      "string-auto-startup" :: "direct:b".autoStartup("false") ==> {
+        to ("mock:b")
+      }
+    }
+}