Repository: camel Updated Branches: refs/heads/master ece31da9a -> b0c572fe6
CAMEL-7608 Fixed XMLTokenizer tests fails in camel-core with JDK8 Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/b0c572fe Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/b0c572fe Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/b0c572fe Branch: refs/heads/master Commit: b0c572fe64464f93d03452698f852f7710535314 Parents: ece31da Author: Willem Jiang <willem.ji...@gmail.com> Authored: Wed Aug 20 18:02:33 2014 +0800 Committer: Willem Jiang <willem.ji...@gmail.com> Committed: Wed Aug 20 18:02:33 2014 +0800 ---------------------------------------------------------------------- .../tokenizer/XMLTokenizeLanguageTest.java | 14 +++- .../support/XMLTokenExpressionIteratorTest.java | 68 ++++++++++++++++++-- 2 files changed, 73 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/b0c572fe/camel-core/src/test/java/org/apache/camel/language/tokenizer/XMLTokenizeLanguageTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/language/tokenizer/XMLTokenizeLanguageTest.java b/camel-core/src/test/java/org/apache/camel/language/tokenizer/XMLTokenizeLanguageTest.java index e223ca6..c5a0151 100644 --- a/camel-core/src/test/java/org/apache/camel/language/tokenizer/XMLTokenizeLanguageTest.java +++ b/camel-core/src/test/java/org/apache/camel/language/tokenizer/XMLTokenizeLanguageTest.java @@ -19,6 +19,7 @@ package org.apache.camel.language.tokenizer; import org.apache.camel.ContextTestSupport; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.builder.xml.Namespaces; +import org.apache.camel.component.mock.MockEndpoint; public class XMLTokenizeLanguageTest extends ContextTestSupport { @@ -106,9 +107,16 @@ public class XMLTokenizeLanguageTest extends ContextTestSupport { } public void testSendMoreParentsMessageToTokenize() throws Exception { - getMockEndpoint("mock:result").expectedBodiesReceived( - "<c:child some_attr='a' anotherAttr='a' xmlns:g=\"urn:g\" xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"></c:child>", - "<c:child some_attr='b' anotherAttr='b' xmlns:g=\"urn:g\" xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"/>"); + MockEndpoint result = getMockEndpoint("mock:result"); + if (isJavaVersion("1.8")) { + result.expectedBodiesReceived( + "<c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"></c:child>", + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"/>"); + } else { + result.expectedBodiesReceived( + "<c:child some_attr='a' anotherAttr='a' xmlns:g=\"urn:g\" xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"></c:child>", + "<c:child some_attr='b' anotherAttr='b' xmlns:g=\"urn:g\" xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"/>"); + } template.sendBody("direct:start", "<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent><uncle/><aunt>emma</aunt><c:parent xmlns:c='urn:c' xmlns:d=\"urn:d\">" http://git-wip-us.apache.org/repos/asf/camel/blob/b0c572fe/camel-core/src/test/java/org/apache/camel/support/XMLTokenExpressionIteratorTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/support/XMLTokenExpressionIteratorTest.java b/camel-core/src/test/java/org/apache/camel/support/XMLTokenExpressionIteratorTest.java index 43628fc..a7f4e00 100644 --- a/camel-core/src/test/java/org/apache/camel/support/XMLTokenExpressionIteratorTest.java +++ b/camel-core/src/test/java/org/apache/camel/support/XMLTokenExpressionIteratorTest.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import junit.framework.TestCase; @@ -121,6 +122,13 @@ public class XMLTokenExpressionIteratorTest extends TestCase { "<child some_attr='c' anotherAttr='c' xmlns='urn:c' xmlns:g='urn:g' xmlns:c='urn:c'></child>", "<c:child some_attr='d' anotherAttr='d' xmlns:g=\"urn:g\" xmlns:c=\"urn:c\"/>" }; + + private static final String[] RESULTS_CHILD_MIXED_JAVA8 = { + "<child some_attr='a' anotherAttr='a' xmlns=\"urn:c\" xmlns:c=\"urn:c\" xmlns:g=\"urn:g\"></child>", + "<x:child xmlns:x='urn:c' some_attr='b' anotherAttr='b' xmlns='urn:c' xmlns:c='urn:c' xmlns:g='urn:g'/>", + "<child some_attr='c' anotherAttr='c' xmlns='urn:c' xmlns:g='urn:g' xmlns:c='urn:c'></child>", + "<c:child some_attr='d' anotherAttr='d' xmlns:g=\"urn:g\" xmlns:c=\"urn:c\"/>" + }; private static final String[] RESULTS_CHILD_MIXED_WRAPPED = { "<?xml version='1.0' encoding='UTF-8'?><g:greatgrandparent xmlns:g='urn:g'><grandparent>" @@ -145,11 +153,25 @@ public class XMLTokenExpressionIteratorTest extends TestCase { "<c:child some_attr='e' anotherAttr='e' xmlns:g=\"urn:g\" xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"></c:child>", "<c:child some_attr='f' anotherAttr='f' xmlns:g=\"urn:g\" xmlns:d=\"urn:d\" xmlns:c=\"urn:c\"/>" }; + + private static final String[] RESULTS_CHILD_JAVA8 = { + "<c:child some_attr='a' anotherAttr='a' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"></c:child>", + "<c:child some_attr='b' anotherAttr='b' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"/>", + "<c:child some_attr='c' anotherAttr='c' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"></c:child>", + "<c:child some_attr='d' anotherAttr='d' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"/>", + "<c:child some_attr='e' anotherAttr='e' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"></c:child>", + "<c:child some_attr='f' anotherAttr='f' xmlns:c=\"urn:c\" xmlns:d=\"urn:d\" xmlns:g=\"urn:g\"/>" + }; private static final String[] RESULTS_CHILD_NO_NS_MIXED = { "<child some_attr='a' anotherAttr='a' xmlns='' xmlns:g='urn:g' xmlns:c='urn:c'></child>", "<child some_attr='c' anotherAttr='c' xmlns:g=\"urn:g\" xmlns:c=\"urn:c\"></child>", }; + + private static final String[] RESULTS_CHILD_NO_NS_MIXED_JAVA8 = { + "<child some_attr='a' anotherAttr='a' xmlns='' xmlns:c='urn:c' xmlns:g='urn:g'></child>", + "<child some_attr='c' anotherAttr='c' xmlns:g=\"urn:g\" xmlns:c=\"urn:c\"></child>", + }; // note that there is no preceding sibling to the extracted child private static final String[] RESULTS_CHILD_NO_NS_MIXED_WRAPPED = { @@ -165,6 +187,11 @@ public class XMLTokenExpressionIteratorTest extends TestCase { "<x:child xmlns:x='urn:c' some_attr='b' anotherAttr='b' xmlns='urn:c' xmlns:g='urn:g' xmlns:c='urn:c'/>", "<c:child some_attr='d' anotherAttr='d' xmlns:g=\"urn:g\" xmlns:c=\"urn:c\"/>" }; + + private static final String[] RESULTS_CHILD_NS_MIXED_JAVA8 = { + "<x:child xmlns:x='urn:c' some_attr='b' anotherAttr='b' xmlns='urn:c' xmlns:c='urn:c' xmlns:g='urn:g'/>", + "<c:child some_attr='d' anotherAttr='d' xmlns:g=\"urn:g\" xmlns:c=\"urn:c\"/>" + }; // note that there is a preceding sibling to the extracted child private static final String[] RESULTS_CHILD_NS_MIXED_WRAPPED = { @@ -257,7 +284,11 @@ public class XMLTokenExpressionIteratorTest extends TestCase { } public void testExtractChildInjected() throws Exception { - invokeAndVerify("//C:child", 'i', new ByteArrayInputStream(TEST_BODY), RESULTS_CHILD); + String[] result = RESULTS_CHILD; + if (isJavaVersion("1.8")) { + result = RESULTS_CHILD_JAVA8; + } + invokeAndVerify("//C:child", 'i', new ByteArrayInputStream(TEST_BODY), result); } public void testExtractChildNSMixed() throws Exception { @@ -265,7 +296,11 @@ public class XMLTokenExpressionIteratorTest extends TestCase { } public void testExtractChildNSMixedInjected() throws Exception { - invokeAndVerify("//*:child", 'i', new ByteArrayInputStream(TEST_BODY_NS_MIXED), RESULTS_CHILD_MIXED); + String[] result = RESULTS_CHILD_MIXED; + if (isJavaVersion("1.8")) { + result = RESULTS_CHILD_MIXED_JAVA8; + } + invokeAndVerify("//*:child", 'i', new ByteArrayInputStream(TEST_BODY_NS_MIXED), result); } public void testExtractAnyChild() throws Exception { @@ -273,7 +308,11 @@ public class XMLTokenExpressionIteratorTest extends TestCase { } public void testExtractCxxxd() throws Exception { - invokeAndVerify("//C:c*d", 'i', new ByteArrayInputStream(TEST_BODY), RESULTS_CHILD); + String[] result = RESULTS_CHILD; + if (isJavaVersion("1.8")) { + result = RESULTS_CHILD_JAVA8; + } + invokeAndVerify("//C:c*d", 'i', new ByteArrayInputStream(TEST_BODY), result); } public void testExtractUnqualifiedChild() throws Exception { @@ -285,7 +324,11 @@ public class XMLTokenExpressionIteratorTest extends TestCase { } public void testExtractSomeUnqualifiedChildInjected() throws Exception { - invokeAndVerify("//child", 'i', new ByteArrayInputStream(TEST_BODY_NO_NS_MIXED), RESULTS_CHILD_NO_NS_MIXED); + String[] result = RESULTS_CHILD_NO_NS_MIXED; + if (isJavaVersion("1.8")) { + result = RESULTS_CHILD_NO_NS_MIXED_JAVA8; + } + invokeAndVerify("//child", 'i', new ByteArrayInputStream(TEST_BODY_NO_NS_MIXED), result); } public void testExtractSomeQualifiedChild() throws Exception { @@ -295,12 +338,20 @@ public class XMLTokenExpressionIteratorTest extends TestCase { public void testExtractSomeQualifiedChildInjected() throws Exception { nsmap.put("", "urn:c"); - invokeAndVerify("//child", 'i', new ByteArrayInputStream(TEST_BODY_NO_NS_MIXED), RESULTS_CHILD_NS_MIXED); + String[] result = RESULTS_CHILD_NS_MIXED; + if (isJavaVersion("1.8")) { + result = RESULTS_CHILD_NS_MIXED_JAVA8; + } + invokeAndVerify("//child", 'i', new ByteArrayInputStream(TEST_BODY_NO_NS_MIXED), result); } public void testExtractWithNullNamespaceMap() throws Exception { nsmap = null; - invokeAndVerify("//child", 'i', new ByteArrayInputStream(TEST_BODY_NO_NS_MIXED), RESULTS_CHILD_NO_NS_MIXED); + String[] result = RESULTS_CHILD_NO_NS_MIXED; + if (isJavaVersion("1.8")) { + result = RESULTS_CHILD_NO_NS_MIXED_JAVA8; + } + invokeAndVerify("//child", 'i', new ByteArrayInputStream(TEST_BODY_NO_NS_MIXED), result); } public void testExtractChildWithAncestorGGPdGP() throws Exception { @@ -390,4 +441,9 @@ public class XMLTokenExpressionIteratorTest extends TestCase { } } + + public static boolean isJavaVersion(String version) { + String javaVersion = System.getProperty("java.version"); + return javaVersion.contains(version.toLowerCase(Locale.US)); + } }