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 2014/08/21 03:24:44 UTC

[1/2] git commit: CAMEL-7725 Added the startupOrder in camel-scala DSL with thanks to Edin

Repository: camel
Updated Branches:
  refs/heads/camel-2.12.x fa2373562 -> 005b68d64
  refs/heads/camel-2.13.x dff3b533b -> 8ba708604


CAMEL-7725 Added the startupOrder in camel-scala DSL with thanks to Edin


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

Branch: refs/heads/camel-2.13.x
Commit: 8ba7086046358b423dddfb255545ad3b12d536ca
Parents: dff3b53
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed Aug 20 10:25:59 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Thu Aug 21 09:23:29 2014 +0800

----------------------------------------------------------------------
 .../apache/camel/model/ProcessorDefinition.java | 11 ++++
 .../scala/org/apache/camel/scala/dsl/DSL.scala  |  1 +
 .../camel/scala/dsl/SAbstractDefinition.scala   |  1 +
 .../camel/scala/dsl/builder/RouteBuilder.scala  |  1 +
 .../apache/camel/scala/dsl/StartOrderTest.scala | 54 ++++++++++++++++++++
 5 files changed, 68 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8ba70860/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java b/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
index 833457c..0dc7b69 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
@@ -2394,6 +2394,17 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
         return blocks.isEmpty() ? null : blocks.removeLast();
     }
 
+    public Type startupOrder(int startupOrder) {
+        ProcessorDefinition<?> def = this;
+
+        RouteDefinition route = ProcessorDefinitionHelper.getRoute(def);
+        if (route != null) {
+            route.startupOrder(startupOrder);
+        }
+
+        return (Type) this;
+    }
+
     /**
      * Stops continue routing the current {@link org.apache.camel.Exchange} and marks it as completed.
      *

http://git-wip-us.apache.org/repos/asf/camel/blob/8ba70860/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 839f644..a94416c 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
@@ -88,6 +88,7 @@ trait DSL {
   def setProperty(header: String, expression: Exchange => Any) : DSL
   def sort[T](expression: Exchange => Any, comparator: Comparator[T] = null) : DSL
   def split(expression: Exchange => Any) : SSplitDefinition
+  def startupOrder(startupOrder :Int) : DSL
   def stop : DSL
 
   def threads : SThreadsDefinition

http://git-wip-us.apache.org/repos/asf/camel/blob/8ba70860/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 cf07e40..9c428dd 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
@@ -132,6 +132,7 @@ abstract class SAbstractDefinition[P <: ProcessorDefinition[_]] extends DSL with
   def setProperty(name: String, expression: Exchange => Any) = wrap(target.setProperty(name, expression))
   def sort[T](expression: (Exchange) => Any, comparator: Comparator[T] = null) = wrap(target.sort(expression, comparator))
   def split(expression: Exchange => Any) = SSplitDefinition(target.split(expression))
+  def startupOrder(startupOrder :Int) = wrap(target.startupOrder(startupOrder))
   def stop = wrap(target.stop)
 
   def threads = SThreadsDefinition(target.threads)

http://git-wip-us.apache.org/repos/asf/camel/blob/8ba70860/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 db48d3f..c768854 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
@@ -181,6 +181,7 @@ class RouteBuilder extends Preamble with DSL with RoutesBuilder with Languages w
   def setProperty(name: String, expression: Exchange => Any) = stack.top.setProperty(name, expression)
   def sort[T](expression: (Exchange) => Any, comparator: Comparator[T] = null) = stack.top.sort(expression, comparator)
   def split(expression: Exchange => Any) = stack.top.split(expression)
+  def startupOrder(startupOrder :Int) = stack.top.startupOrder(startupOrder)
   def stop = stack.top.stop
 
   def threads = stack.top.threads

http://git-wip-us.apache.org/repos/asf/camel/blob/8ba70860/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/StartOrderTest.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/StartOrderTest.scala b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/StartOrderTest.scala
new file mode 100644
index 0000000..73239f6
--- /dev/null
+++ b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/StartOrderTest.scala
@@ -0,0 +1,54 @@
+/**
+ * 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.List
+import org.apache.camel.scala.dsl.builder.RouteBuilder
+import org.apache.camel.spi.RouteStartupOrder;
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class StartOrderTest extends ScalaTestSupport {
+
+  @Test
+  def testRouteA() {
+    "mock:result" expect { _.expectedMessageCount(1)}
+
+    test {
+      "direct:start" ! "Hello World"
+    }
+
+    assertMockEndpointsSatisfied()
+
+    assertEquals(4, context().getRouteStartupOrder().size())
+    assertEquals("seda://foo", context().getRouteStartupOrder().get(0).getRoute().getEndpoint().getEndpointUri())
+    assertEquals("direct://start", context().getRouteStartupOrder().get(1).getRoute().getEndpoint().getEndpointUri())
+    assertEquals("seda://bar", context().getRouteStartupOrder().get(2).getRoute().getEndpoint().getEndpointUri())
+    assertEquals("direct://bar", context().getRouteStartupOrder().get(3).getRoute().getEndpoint().getEndpointUri())
+  }
+
+
+  val builder = new RouteBuilder {
+
+    from("direct:start").startupOrder(2).to("seda:foo")
+    "seda:foo" startupOrder 1 to "mock:result"
+    "direct:bar" startupOrder 9 to "seda:bar"
+    "seda:bar" startupOrder 5 to "mock:other"
+
+  }
+
+}
\ No newline at end of file


[2/2] git commit: CAMEL-7725 Added the startupOrder in camel-scala DSL with thanks to Edin

Posted by ni...@apache.org.
CAMEL-7725 Added the startupOrder in camel-scala DSL with thanks to Edin


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

Branch: refs/heads/camel-2.12.x
Commit: 005b68d64f10a6a000b150e1903a70cdb7c9b7c8
Parents: fa23735
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed Aug 20 10:25:59 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Thu Aug 21 09:24:23 2014 +0800

----------------------------------------------------------------------
 .../apache/camel/model/ProcessorDefinition.java | 11 ++++
 .../scala/org/apache/camel/scala/dsl/DSL.scala  |  1 +
 .../camel/scala/dsl/SAbstractDefinition.scala   |  1 +
 .../camel/scala/dsl/builder/RouteBuilder.scala  |  1 +
 .../apache/camel/scala/dsl/StartOrderTest.scala | 54 ++++++++++++++++++++
 5 files changed, 68 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/005b68d6/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java b/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
index 18d693c..ad3203e 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
@@ -2395,6 +2395,17 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
         return blocks.isEmpty() ? null : blocks.removeLast();
     }
 
+    public Type startupOrder(int startupOrder) {
+        ProcessorDefinition<?> def = this;
+
+        RouteDefinition route = ProcessorDefinitionHelper.getRoute(def);
+        if (route != null) {
+            route.startupOrder(startupOrder);
+        }
+
+        return (Type) this;
+    }
+
     /**
      * Stops continue routing the current {@link org.apache.camel.Exchange} and marks it as completed.
      *

http://git-wip-us.apache.org/repos/asf/camel/blob/005b68d6/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 5bc098f..9910317 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
@@ -88,6 +88,7 @@ trait DSL {
   def setProperty(header: String, expression: Exchange => Any) : DSL
   def sort[T](expression: Exchange => Any, comparator: Comparator[T] = null) : DSL
   def split(expression: Exchange => Any) : SSplitDefinition
+  def startupOrder(startupOrder :Int) : DSL
   def stop : DSL
 
   def threads : SThreadsDefinition

http://git-wip-us.apache.org/repos/asf/camel/blob/005b68d6/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 8b8e692..f740276 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
@@ -132,6 +132,7 @@ abstract class SAbstractDefinition[P <: ProcessorDefinition[_]] extends DSL with
   def setProperty(name: String, expression: Exchange => Any) = wrap(target.setProperty(name, expression))
   def sort[T](expression: (Exchange) => Any, comparator: Comparator[T] = null) = wrap(target.sort(expression, comparator))
   def split(expression: Exchange => Any) = SSplitDefinition(target.split(expression))
+  def startupOrder(startupOrder :Int) = wrap(target.startupOrder(startupOrder))
   def stop = wrap(target.stop)
 
   def threads = SThreadsDefinition(target.threads)

http://git-wip-us.apache.org/repos/asf/camel/blob/005b68d6/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 e80b934..8201deb 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
@@ -181,6 +181,7 @@ class RouteBuilder extends Preamble with DSL with RoutesBuilder with Languages w
   def setProperty(name: String, expression: Exchange => Any) = stack.top.setProperty(name, expression)
   def sort[T](expression: (Exchange) => Any, comparator: Comparator[T] = null) = stack.top.sort(expression, comparator)
   def split(expression: Exchange => Any) = stack.top.split(expression)
+  def startupOrder(startupOrder :Int) = stack.top.startupOrder(startupOrder)
   def stop = stack.top.stop
 
   def threads = stack.top.threads

http://git-wip-us.apache.org/repos/asf/camel/blob/005b68d6/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/StartOrderTest.scala
----------------------------------------------------------------------
diff --git a/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/StartOrderTest.scala b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/StartOrderTest.scala
new file mode 100644
index 0000000..73239f6
--- /dev/null
+++ b/components/camel-scala/src/test/scala/org/apache/camel/scala/dsl/StartOrderTest.scala
@@ -0,0 +1,54 @@
+/**
+ * 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.List
+import org.apache.camel.scala.dsl.builder.RouteBuilder
+import org.apache.camel.spi.RouteStartupOrder;
+import org.junit.Assert.assertEquals
+import org.junit.Test
+
+class StartOrderTest extends ScalaTestSupport {
+
+  @Test
+  def testRouteA() {
+    "mock:result" expect { _.expectedMessageCount(1)}
+
+    test {
+      "direct:start" ! "Hello World"
+    }
+
+    assertMockEndpointsSatisfied()
+
+    assertEquals(4, context().getRouteStartupOrder().size())
+    assertEquals("seda://foo", context().getRouteStartupOrder().get(0).getRoute().getEndpoint().getEndpointUri())
+    assertEquals("direct://start", context().getRouteStartupOrder().get(1).getRoute().getEndpoint().getEndpointUri())
+    assertEquals("seda://bar", context().getRouteStartupOrder().get(2).getRoute().getEndpoint().getEndpointUri())
+    assertEquals("direct://bar", context().getRouteStartupOrder().get(3).getRoute().getEndpoint().getEndpointUri())
+  }
+
+
+  val builder = new RouteBuilder {
+
+    from("direct:start").startupOrder(2).to("seda:foo")
+    "seda:foo" startupOrder 1 to "mock:result"
+    "direct:bar" startupOrder 9 to "seda:bar"
+    "seda:bar" startupOrder 5 to "mock:other"
+
+  }
+
+}
\ No newline at end of file