@Jan, I just missed your previous replies. I just saw you also have provided the JDK info already. thanks.
2014-12-16 14:25 GMT+01:00 Aki Yoshida <elak...@gmail.com>: > It's good to hear it is working in your environment. > > by the way, I saw your camael doc update regarding the concrete error > example you saw. > We need to formulate that differently. > There is a small sanity check before starting the tokenization (not > comparing the impl name itself but trying to infer its conformance by > its initial behavior). That check was working for Oracle JDK 7 on OSX. > I would like to know which JDK that you use. In any case, we can > either make the initial sanity check to detect this incompatible > behavior and detect it later if it is not detected at the beginning. > In either way, we can throw an exception at some point. > > regards, aki > > 2014-12-16 10:18 GMT+01:00 Jan Matèrne (jhm) <apa...@materne.de>: >> Sorry for my late answer, I was ill :( >> >> Thanks for your sample project, I investigated into it now. >> All tests passed. (Camel 2.14.0) >> >> But your test used the XMLTokenExpressionIterator directly I migrated my own >> test class (using the RouteBuilder) into your project. >> - added the test class >> - added the xsd >> - added the dependency to commons-io + camel-test-spring >> - changed the paths in my test class to fit your directory layout >> Now this also passed. >> >> It's good to see that there is no bug in Camel. ;) >> >> >> Because my example still fails in my other environment I check that ... >> >> >> Jan >> >> >>> -----Ursprüngliche Nachricht----- >>> Von: Aki Yoshida [mailto:elak...@gmail.com] >>> Gesendet: Mittwoch, 10. Dezember 2014 23:57 >>> An: users@camel.apache.org >>> Betreff: Re: AW: camel - xsd >>> >>> i meant woodstox-core-asl (e.g., woodstox-core-asl-4.4.1.jar). >>> its maven coordinate is >>> >>> mvn:org.codehaus.woodstox/woodstox-core-asl/4.4.1 >>> >>> you need to have woodstox or some other parser that reliably reports >>> the offset location at each parse event. >>> Sjsxp (sun/oracle implementation included in JDK) doesn't do that, so >>> you can't use it. >>> >>> jmtest.tar.gz contains a maven project that can be executed directly by >>> typing mvn test at the console or can be imported into your eclipse >>> IDE. >>> >>> 2014-12-10 13:13 GMT+01:00 Aki Yoshida <elak...@gmail.com>: >>> > i just created a test that uses your data and verified that it is >>> working fine. >>> > please take a look at this file at my dropbox. >>> > https://www.dropbox.com/s/pfgvs9si9bvujxo/jmtest.tar.gz?dl=0 >>> > just extract the files into camel-core and run JMNewsTest. >>> > and see if that works in your environment, (i believe it does). >>> > >>> > in that case, we need to find out the difference to your case. >>> > do you have woodstox-api in your class path? >>> > >>> > >>> > 2014-12-10 12:15 GMT+01:00 Aki Yoshida <elak...@gmail.com>: >>> >> okay. >>> >> let me take a look. >>> >> >>> >> >>> >> 2014-12-10 12:02 GMT+01:00 Jan Matèrne (jhm) <apa...@materne.de>: >>> >>> No, input is valid xml. >>> >>> After invoking xtokenize() the xml is invalid. >>> >>> >>> >>> CAMEL-8106 is very .... short. I can't see whether it is related. >>> >>> >>> >>> >>> >>> I posted an example on the user list >>> >>> http://mail-archives.apache.org/mod_mbox/camel- >>> users/201412.mbox/%3C >>> >>> 002b01d01452%24e8ee27a0%24baca76e0%24%40de%3E >>> >>> >>> >>> I had done a 'workaround' for this special example >>> >>> // Workaround of a bug?? in XMLTokenizerExpression >>> >>> .setBody(simple("${body.replace('</</news:Newsletter>', >>> '</news:Newsletter>')}")) >>> >>> .setBody(simple("${body.replace('<</news:Newsletter>', >>> >>> '</news:Newsletter>')}")) >>> >>> >>> >>> Without that the split messages have wrong end tags. >>> >>> >>> >>> >>> >>> Jan >>> >>> >>> >>> >>> >>>> -----Ursprüngliche Nachricht----- >>> >>>> Von: Aki Yoshida [mailto:elak...@gmail.com] >>> >>>> Gesendet: Mittwoch, 10. Dezember 2014 10:34 >>> >>>> An: users@camel.apache.org >>> >>>> Betreff: Re: AW: camel - xsd >>> >>>> >>> >>>> you are talking about the invalid-xml parsing bug in xtokenzier. >>> >>>> that has been fixe with CAMEL-8106. It should be part of the new >>> >>>> 2.14.1, which is to be released shortly. >>> >>>> >>> >>>> regards, aki >>> >>>> >>> >>>> 2014-12-10 9:25 GMT+01:00 Jan Matèrne (jhm) <apa...@materne.de>: >>> >>>> > I played a little bit. >>> >>>> > >>> >>>> > Jan >>> >>>> > >>> >>>> > >>> >>>> > public class XmlTest extends CamelTestSupport { >>> >>>> > >>> >>>> > @EndpointInject(uri="mock:valid") >>> >>>> > MockEndpoint valid; >>> >>>> > >>> >>>> > @EndpointInject(uri="mock:validationError") >>> >>>> > MockEndpoint validationError; >>> >>>> > >>> >>>> > >>> >>>> > >>> >>>> > @Test >>> >>>> > public void validNewsfeed() throws Exception { >>> >>>> > // Newsfeed contains 2 news >>> >>>> > valid.expectedMessageCount(2); >>> >>>> > valid.expectedMessagesMatches( >>> >>>> > // Use helper methods from the static imported >>> >>>> PredicateBuilder >>> >>>> > and( >>> >>>> > header("newsfeed.date").isEqualTo("2014.12.09 >>> >>>> 14:15"), >>> >>>> > header("news.author").isEqualTo("Jan"), >>> >>>> > >>> >>>> > >>> >>>> >>> body().contains("xmlns:news=\"http://www.materne.de/camel/test/xml/ >>> >>>> com >>> >>>> > plex/\ >>> >>>> > "") >>> >>>> > ) >>> >>>> > ); >>> >>>> > // no error expected >>> >>>> > validationError.expectedMessageCount(0); >>> >>>> > >>> >>>> > // Read xml from classpath and send to Camel route >>> >>>> > String xml = >>> >>>> > >>> >>>> >>> IOUtils.toString(getClass().getResourceAsStream("/de/materne/camel/ >>> >>>> tes >>> >>>> > t/xml/ >>> >>>> > complex/validNewsfeed.xml")); >>> >>>> > sendBody("direct:in", xml); >>> >>>> > >>> >>>> > // 'execute' all tests >>> >>>> > assertMockEndpointsSatisfied(); >>> >>>> > } >>> >>>> > >>> >>>> > >>> >>>> > @Test >>> >>>> > public void invalidXml() throws Exception { >>> >>>> > valid.expectedMessageCount(0); >>> >>>> > validationError.expectedMessageCount(1); >>> >>>> > >>> >>>> > String xml = "<xml/>"; >>> >>>> > sendBody("direct:in", xml); >>> >>>> > >>> >>>> > assertMockEndpointsSatisfied(); >>> >>>> > } >>> >>>> > >>> >>>> > >>> >>>> > >>> >>>> > @Override >>> >>>> > protected RouteBuilder createRouteBuilder() throws Exception >>> { >>> >>>> > return new RouteBuilder() { >>> >>>> > @Override >>> >>>> > public void configure() throws Exception { >>> >>>> > // Our XML uses namespaces, so we have to deal >>> >>>> > with >>> >>>> that. >>> >>>> > Namespaces ns = new Namespaces("news", >>> >>>> > "http://www.materne.de/camel/test/xml/complex/"); >>> >>>> > >>> >>>> > // XSD-invalid data goes to this endpoint >>> >>>> > onException(ValidationException.class) >>> >>>> > .to("mock:validationError"); >>> >>>> > >>> >>>> > from("direct:in") >>> >>>> > // XSD-validation >>> >>>> > >>> >>>> > .to("validator:de/materne/camel/test/xml/complex/newsfeed.xsd") >>> >>>> > >>> >>>> > // Store newsfeed data in the header before >>> >>>> split, >>> >>>> > so we haven't to do that on each >>> >>>> > // splittet news-message. >>> >>>> > .setHeader("newsfeed.date", >>> >>>> > ns.xpath("/news:Newsletter/@date", String.class)) >>> >>>> > >>> >>>> > // http://camel.apache.org/splitter.html >>> >>>> > // xtokenize() is available since Camel >>> 2.14. >>> >>>> > // Use the 'wrap'-mode so we keep the >>> >>>> > Newsletter- >>> >>>> Header >>> >>>> > .split().xtokenize("/news:Newsletter/News", >>> >>>> > 'w', >>> >>>> > ns) >>> >>>> > >>> >>>> > // Workaround of a bug?? in >>> >>>> XMLTokenizerExpression >>> >>>> > >>> >>>> > .setBody(simple("${body.replace('</</news:Newsletter>', >>> >>>> > '</news:Newsletter>')}")) >>> >>>> > >>> >>>> > .setBody(simple("${body.replace('<</news:Newsletter>', >>> >>>> > '</news:Newsletter>')}")) >>> >>>> > >>> >>>> > // Get some data from the splittet news >>> >>>> > .setHeader("news.date", >>> >>>> > ns.xpath("/news:Newsletter/News/@date", String.class)) >>> >>>> > .setHeader("news.author", >>> >>>> > ns.xpath("/news:Newsletter//News/@author", String.class)) >>> >>>> > >>> >>>> > .to("mock:valid"); >>> >>>> > } >>> >>>> > }; >>> >>>> > } >>> >>>> > >>> >>>> > } >>> >>>> > >>> >>>> > >>> >>>> > >>> >>>> > <?xml version="1.0" encoding="UTF-8"?> <schema >>> >>>> > xmlns="http://www.w3.org/2001/XMLSchema" >>> >>>> > >>> xmlns:news="http://www.materne.de/camel/test/xml/complex/" >>> >>>> > >>> >>>> > targetNamespace="http://www.materne.de/camel/test/xml/complex/"> >>> >>>> > >>> >>>> > <element name="Newsletter"> >>> >>>> > <complexType> >>> >>>> > <sequence> >>> >>>> > <element name="News" minOccurs="1" >>> >>>> > maxOccurs="unbounded"> >>> >>>> > <complexType> >>> >>>> > <simpleContent> >>> >>>> > >>> >>>> > <extension base="string"> >>> >>>> > >>> >>>> > <attribute name="date" type="string"/> >>> >>>> > >>> >>>> > <attribute name="author" type="string"/> >>> >>>> > >>> </extension> >>> >>>> > </simpleContent> >>> >>>> > </complexType> >>> >>>> > </element> >>> >>>> > </sequence> >>> >>>> > <attribute name="date" type="string"/> >>> >>>> > </complexType> >>> >>>> > </element> >>> >>>> > >>> >>>> > </schema> >>> >>>> > >>> >>>> > >>> >>>> > >>> >>>> > <news:Newsletter >>> >>>> > >>> >>>> xmlns:news="http://www.materne.de/camel/test/xml/complex/" >>> >>>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema- >>> instance" >>> >>>> > >>> >>>> > >>> xsi:schemaLocation="http://www.materne.de/camel/test/xml/complex/ >>> >>>> > newsfeed.xsd " >>> >>>> > date="2014.12.09 14:15"> >>> >>>> > <News date="2014.12.09 14:15" author="Jan"> >>> >>>> > Here is a demo news. >>> >>>> > </News> >>> >>>> > <News date="2014.12.09 14:13" author="Jan"> >>> >>>> > Second news paragraph. >>> >>>> > </News> >>> >>>> > </news:Newsletter> >>> >>>> > >>> >>>> > >>> >>>> > >>> >>>> >> -----Ursprüngliche Nachricht----- >>> >>>> >> Von: smilevasu6 [mailto:srinivas.thu...@gmail.com] >>> >>>> >> Gesendet: Dienstag, 9. Dezember 2014 15:12 >>> >>>> >> An: users@camel.apache.org >>> >>>> >> Betreff: Re: AW: camel - xsd >>> >>>> >> >>> >>>> >> Don't mind can you give me sample code instead of link >>> >>>> >> >>> >>>> >> >>> >>>> >> >>> >>>> >> -- >>> >>>> >> View this message in context: >>> >>>> >> http://camel.465427.n5.nabble.com/camel- >>> >>>> >> xsd-tp5760376p5760396.html >>> >>>> >> Sent from the Camel - Users mailing list archive at Nabble.com. >>> >>>> > >>> >>> >>