OK.. not hearing any pre-build advise.. I started building.
I can successfully extract the XML field value that is the name of the work 
file out of the consumed file of the route.
What I need to do is only move both (the file I'm consuming and it's work 
file).. if the work file shows up..

Here's what I got so far....


package org.mainegeneral.camel;
import org.apache.camel.Processor;
import org.apache.camel.Exchange;
import org.apache.camel.builder.RouteBuilder;
public class MyRouteBuilder extends RouteBuilder {
    public void configure() {
        from("file:src/data?noop=true&include=.*\\.xml")
        .setProperty("SourceFN").xpath("/SYSTEMJOB/WORKDETAIL/SOURCE_FILENAME", 
String.class)
        .process(new Processor() {
                     public void process(Exchange exchange) throws Exception {
             }
          } )
        .log("Reading XML file: ${header.CamelFileName}")
        .log("XML Source Filename = ${property.SourceFN}")
        .to("file:target/messages/others");
    }
}


Now I will need to not move the XML I'm consuming if the file named in 
SOURCE_FILENAME doesn't yet exist, and go on to the other XML files in the 
directory and come back to check this one.  
I was going to use a choice to perform both those moves in.. but struggling to 
check for the named SOURCE_FILENAME's existance.

Suggestions?

Thanks!





On Monday, December 10, 2018, 3:10:09 PM EST, John F. Berry 
<[email protected]> wrote: 





Figured I'd try something new and ask for advice here first before hitting a 
brick wall and asking after I hit that dead end...I need to poll for XML files 
dumping into a specific NFS directory, read in the XML, find the "work" file 
generated by the task that generated the XML, and move both files together.  
The XML file is a custom small app specific job detail sort of file, with the 
exported work contained in a file named between the <SOURCE_FILENAME> tag.I 
could just regex the file, instead of parsing XML "officially", then use a 
choice and when satisfied, move both the file I'm reading, and the result from 
the regex.  I don't really need the 50 or so other job statistic tags contained 
in the XML.  I plan to use Java DSL with a blueprint or some Karaf supported 
type to run as a bundle. 
Since these xml files are generated at invocation, the "work" file might not 
show up for a few minutes.  In that time, I'm hoping to round-robin any other 
XML files to find completed "pairs" in this landing directory. Sound simple 
enough?  Any gotchas that people can think of?  
Thanks!

Reply via email to