Thanks Babak, as it turned out, the solution with annotating the WeatherCurrent POJO did the job. The solution is so short! I posted an answer to my own question at StackOverflow.
I do have one more problem with the test case, but will post it in another thread. -borut Dne 14. marec 2012 16:24 je Babak Vahdat <babak.vah...@swissonline.ch>napisal/-a: > Hi > > First of all welcome to Apache Camel! > > As you don't own a XSD you can't make use of JDK-XJC compiler tool to > create your JAXB-POJOs. However having a proper XSD had made your use > case much easier. As then JAXB would have taken over the job of > "Unmarshalling" from XML to POJO. > > Nevertheless I used [1] to show you *one possible way* you could go for it. > The idea is really simple, just put a Processor in between which does the > conversion of DOMSource-Object => JPA-Object: > > @Override > protected RouteBuilder createRouteBuilder() throws Exception { > return new RouteBuilder() { > @Override > public void configure() throws Exception { > // START SNIPPET: e1 > from("file:target/pair") > // split the order child tags, and inherit namespaces from > the > // orders root tag > .split().tokenizeXML("order", "orders").process(new > Processor() { > > @Override > public void process(Exchange exchange) throws > Exception { > DOMSource source = > exchange.getIn().getBody(DOMSource.class); > > Node order = source.getNode(); > NodeList childs = order.getChildNodes(); > for (int j = 0; j < childs.getLength(); j++) { > Node text = childs.item(j); > > // instead of just dumping the content as I > do here, > // just create an object of your POJO and > set the properties > // on it using the "current" Node here and > then do something like: > // WeatherCurrent weather = ne > WeatherCurrent(); > // weather.setXXX(text.getTextContent()); > // weather.set... > // > // exchange.getIn().setBody(weather); > > System.out.println(text.getTextContent()); > } > } > }) > // of course you would instead send the current exchange > to > // the JPA producer instead of "mock" > // .to("jpa://com.foo.WeatherCurrent ") > .to("mock:split"); > // END SNIPPET: e1 > } > }; > } > > If you would run this test with my modifications it would additionally dump > the following into the console: > > Camel in Action > ActiveMQ in Action > DSL in Action > > [1] > > https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/test/java/org/apache/camel/language/TokenXMLPairNamespaceSplitTest.java > > Babak > > -- > View this message in context: > http://camel.465427.n5.nabble.com/How-to-create-a-Camel-route-which-takes-XML-and-bind-some-data-to-JPA-annotated-POJO-tp5564614p5565135.html > Sent from the Camel - Users mailing list archive at Nabble.com. >