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 2014/12/01 12:16:10 UTC
camel git commit: CAMEL-8097: Added unit test
Repository: camel
Updated Branches:
refs/heads/master 30ed3f5d0 -> 26fa5b7cc
CAMEL-8097: Added unit test
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/26fa5b7c
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/26fa5b7c
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/26fa5b7c
Branch: refs/heads/master
Commit: 26fa5b7cc3f268c929673786d1a440f3ce7c49bc
Parents: 30ed3f5
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Dec 1 12:16:02 2014 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Dec 1 12:16:02 2014 +0100
----------------------------------------------------------------------
.../apache/camel/model/ProcessorDefinition.java | 4 +-
...sXmlSplitNestedChoiceEndChoiceRouteTest.java | 48 +++++++++++++++
...ModelAsXmlSplitNestedChoiceEndRouteTest.java | 65 ++++++++++++++++++++
3 files changed, 115 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/26fa5b7c/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 9197a7d..1be62f5 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
@@ -1134,8 +1134,8 @@ public abstract class ProcessorDefinition<Type extends ProcessorDefinition<Type>
// must do this ugly cast to avoid compiler error on AIX/HP-UX
ProcessorDefinition<?> defn = (ProcessorDefinition<?>) this;
- // when using doTry .. doCatch .. doFinally we should always
- // end the try definition to avoid having to use 2 x end() in the route
+ // when using choice .. when .. otherwise - doTry .. doCatch .. doFinally we should always
+ // end the choice/try definition to avoid having to use 2 x end() in the route
// this is counter intuitive for end users
// TODO (camel-3.0): this should be done inside of TryDefinition or even better
// in Block(s) in general, but the api needs to be revisited for that.
http://git-wip-us.apache.org/repos/asf/camel/blob/26fa5b7c/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlSplitNestedChoiceEndChoiceRouteTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlSplitNestedChoiceEndChoiceRouteTest.java b/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlSplitNestedChoiceEndChoiceRouteTest.java
new file mode 100644
index 0000000..e29a44a
--- /dev/null
+++ b/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlSplitNestedChoiceEndChoiceRouteTest.java
@@ -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.util;
+
+import org.apache.camel.builder.RouteBuilder;
+
+/**
+ *
+ */
+public class DumpModelAsXmlSplitNestedChoiceEndChoiceRouteTest extends DumpModelAsXmlSplitNestedChoiceEndRouteTest {
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("direct:start").routeId("myRoute")
+ .split().body()
+ .to("mock:sub").id("myMock")
+ .choice()
+ .when(header("foo")).to("mock:foo") // eg we can use .endChoice() here also
+ .when(header("bar")).to("mock:bar") // eg we can use .endChoice() here also
+ .otherwise().to("mock:other")
+ .endChoice()
+ // end choice goes back to same level as choice (eg such as ending the otherwise),
+ // so we need a 2nd end to end the choice block in general
+ .end()
+ // and then an end to end the splitter
+ .end()
+ .to("mock:last");
+ }
+ };
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/26fa5b7c/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlSplitNestedChoiceEndRouteTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlSplitNestedChoiceEndRouteTest.java b/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlSplitNestedChoiceEndRouteTest.java
new file mode 100644
index 0000000..7cb7a90
--- /dev/null
+++ b/camel-core/src/test/java/org/apache/camel/util/DumpModelAsXmlSplitNestedChoiceEndRouteTest.java
@@ -0,0 +1,65 @@
+/**
+ * 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.util;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.converter.jaxp.XmlConverter;
+import org.apache.camel.model.ModelHelper;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ *
+ */
+public class DumpModelAsXmlSplitNestedChoiceEndRouteTest extends ContextTestSupport {
+
+ public void testDumpModelAsXml() throws Exception {
+ String xml = ModelHelper.dumpModelAsXml(context.getRouteDefinition("myRoute"));
+ assertNotNull(xml);
+ log.info(xml);
+
+ Document doc = new XmlConverter().toDOMDocument(xml);
+ NodeList nodes = doc.getElementsByTagName("split");
+ assertEquals(1, nodes.getLength());
+ Element node = (Element)nodes.item(0);
+ // there is an empty text document as we pretty print the xml, so need to do 2 x next sibling
+ Element last = (Element) node.getNextSibling().getNextSibling();
+ assertEquals("mock:last", last.getAttribute("uri"));
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() throws Exception {
+ from("direct:start").routeId("myRoute")
+ .split().body()
+ .to("mock:sub").id("myMock")
+ .choice()
+ .when(header("foo")).to("mock:foo")
+ .when(header("bar")).to("mock:bar")
+ .otherwise().to("mock:other")
+ .end()
+ .end()
+ .to("mock:last");
+ }
+ };
+ }
+}