Marco, Thank you for these references. I have tried the first option you suggested before hand. Am trying to incorporate quartz scheduling into the similar way.
I need to design a route, which moves file from a source directory to target directory, following a cron schedule. In the (2) option, a new file gets created with contents of the text file, but i need the actual file to be moved, like it would happen in option (1). On Mon, Mar 25, 2013 at 11:12 AM, Marco Westermann [via Camel] < ml-node+s465427n5729766...@n5.nabble.com> wrote: > Hi, > > first you need a basic understanding of the route parts (endpoints) you > are using. If I understand you correct you have files in your source > directory which you want to move to a destination directory at a given > time?! Then you have three alternatives how to archive this. > > 1. > poll a directory with the file consumer endpoint > > <from uri="file://src/data"/> > > <to uri="file:C:\Data\FuseJars\messages"/> > > > That would move all files which appears in the src folder to the > messages folder. If you now want to move the files on a specified time, > you can only start the route at that time. For that have a look at: > http://camel.apache.org/how-can-i-stop-a-route-from-a-route.html > > > 2. Your problem is, that the body of the message has to contain the file > content you want to move. The quartz consumer endpoint you use just > sends out an empty body like Christian already explained. > To set the content of the messagebody to the filecontent you can use a > pollenrich. Have a look here: > http://camel.apache.org/content-enricher.html > > then your route would look similar to: > > <from uri="quartz://myQuarzJob?cron=0+16+*+*+*+?"/> > <log message="Writing message to Folder"/> > <pollEnrich uri="file://src/data?fileName=data.txt"/> > <to uri="file:C:\Data\FuseJars\messages"/> > > 3. Use a java bean which moves the files with pure java code > > <from uri="quartz://myQuarzJob?cron=0+16+*+*+*+?"/> > > <to uri="bean:fileMover"/> > > For how to use beans in camel have a look here: > http://camel.apache.org/bean.html > > I hope this helps understanding how camel works. I also can recommend > the book "camel in action" which gives a good overview of how camel > works and dives you into the different aspects of using camel. > > regards, Marco > > > > > Am 25.03.2013 15:34, schrieb bru1900: > > > Christian, > > > > So in this case, a new file is being written into the target folder with > > the Content "Camel Rocks". > > > > But am looking to move a file from the source folder to the > destination... > > how can i do that? using quartz schedule ! > > > > Thank you, > > Remya > > > > > > On Fri, Mar 22, 2013 at 5:56 PM, Christian Mueller [via Camel] < > > [hidden email] <http://user/SendEmail.jtp?type=node&node=5729766&i=0>> > wrote: > > > >> <route id="simple"> > >> <from uri="quartz://src/data?cron=0+16+*+*+*+?"/> > >> <log message="Writing message to Folder"/> > >> <setBody><constant>Camel rocks</constant></setBody> > >> <to uri="file:C:\Data\FuseJars\messages"/> > >> </route> > >> > >> Best, > >> Christian > >> > >> On Fri, Mar 22, 2013 at 10:15 PM, bru1900 <[hidden email]< > http://user/SendEmail.jtp?type=node&node=5729705&i=0>> > >> wrote: > >> > >>> Am sorry about my lack of understanding. > >>> > >>> But by adding <setBody><constant>Camel rocks</constant></setBody> to > the > >>> file endpoint you mean? which file? > >>> > >>> This is my context file(that am executing) and the other is my msg > file > >> ( > >>> present in src/data) > >>> > >>> > >>> On Fri, Mar 22, 2013 at 5:07 PM, Christian Mueller [via Camel] < > >>> [hidden email] <http://user/SendEmail.jtp?type=node&node=5729705&i=1>> > > >> wrote: > >>>> By using "quartz://src/data" it looks like you want route messages > >> from > >>>> the > >>>> src/data folder. But in this case "src" is the timer group name and > >>> "data" > >>>> is the timer name. > >>>> And the quartz component sends an empty message (with a null body). > >>> That's > >>>> what the file component complians. If you add something like: > >>>> <setBody><constant>Camel rocks</constant></setBody> > >>>> > >>>> before your file endpoint, it should work... > >>>> > >>>> Best, > >>>> Christian > >>>> > >>>> On Fri, Mar 22, 2013 at 9:50 PM, bru1900 <[hidden email]< > >>> http://user/SendEmail.jtp?type=node&node=5729701&i=0>> > >>>> wrote: > >>>> > >>>>> I did look at these documents, in one of the examples, the suggested > >>> was > >>>>> from("quartz://myGroup/myTimerName?cron=0+0/5+12-18+?+*+MON-FRI"). > >>>>> > >>>>> i am trying to do a similar thing in xml configuration. Where am i > >>> going > >>>>> wrong? > >>>>> > >>>>> > >>>>> > >>>>> On Fri, Mar 22, 2013 at 4:47 PM, Christian Mueller [via Camel] < > >>>>> [hidden email] <http://user/SendEmail.jtp?type=node&node=5729701&i=1>> > > >>>> wrote: > >>>>>> Your Quartz URI is not valid. You can read more about it at [1]. > >>>>>> I think you are looking for the cron scheduled route policy [2]. > >>>>>> > >>>>>> [1] http://camel.apache.org/quartz.html > >>>>>> [2] http://camel.apache.org/cronscheduledroutepolicy.html > >>>>>> > >>>>>> Best, > >>>>>> Christian > >>>>>> > >>>>>> On Fri, Mar 22, 2013 at 8:45 PM, bru1900 <[hidden email]< > >>>>> http://user/SendEmail.jtp?type=node&node=5729698&i=0>> > >>>>>> wrote: > >>>>>> > >>>>>>> I am newly learning how to set up routes in camel, and Quartz > >>>> schedule > >>>>>>> them. > >>>>>>> > >>>>>>> I wrote a simple xml config, > >>>>>>> <?xml version="1.0" encoding="UTF-8"?> > >>>>>>> <beans xmlns="http://www.springframework.org/schema/beans" > >>>>>>> xmlns:camel="http://camel.apache.org/schema/spring" > >>>>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > >>>>>>> xsi:schemaLocation=" > >>>> http://www.springframework.org/schema/beans > >>>>>>> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd > >>>>>>> http://camel.apache.org/schema/spring > >>>>>>> http://camel.apache.org/schema/spring/camel-spring.xsd"> > >>>>>>> > >>>>>>> <camelContext trace="false" xmlns=" > >>>>>> http://camel.apache.org/schema/spring > >>>>>>> "> > >>>>>>> <route id="simple"> > >>>>>>> > >>>>>>> <from > >> uri="quartz://src/data?cron=0+16+*+*+*+?"/> > >>>>>>> <log message="Moving message to Folder"/> > >>>>>>> <to uri="file:C:\Data\FuseJars\messages"/> > >>>>>>> </route> > >>>>>>> </camelContext> > >>>>>>> > >>>>>>> </beans> > >>>>>>> > >>>>>>> The simple file transfer works, but when i added the scheduling > >>> part > >>>> am > >>>>>>> getting the following error. > >>>>>>> Any help will be highly appreciated. > >>>>>>> > >>>>>>> [artzScheduler-camel-1_Worker-5] QuartzEndpoint > >>>> ERROR > >>>>>> Error > >>>>>>> processing exchange. Exchange[Message: [Body is null]]. Caused > >> by: > >>>>>>> [org.quartz.JobExecutionException - > >>>>>>> > >>> org.apache.camel.component.file.GenericFileOperationFailedException: > >>>>>> Cannot > >>>>>>> write null body to file: > >>>>>>> > >> C:\Data\FuseJars\messages\ID-CGL-R8Y2AEZ-64638-1363878882438-0-29] > >>>>>>> [artzScheduler-camel-1_Worker-5] JobRunShell > >>> INFO > >>>>>> Job > >>>>>>> DEFAULT.quartz-endpoint1 threw a JobExecutionException: > >>>>>>> org.quartz.JobExecutionException: > >>>>>>> > >>> org.apache.camel.component.file.GenericFileOperationFailedException: > >>>>>> Cannot > >>>>>>> write null body to file: > >>>>>>> > >> C:\Data\FuseJars\messages\ID-CGL-R8Y2AEZ-64638-1363878882438-0-29 > >>>> [See > >>>>>>> nested exception: > >>>>>>> > >>> org.apache.camel.component.file.GenericFileOperationFailedException: > >>>>>> Cannot > >>>>>>> write null body to file: > >>>>>>> > >> C:\Data\FuseJars\messages\ID-CGL-R8Y2AEZ-64638-1363878882438-0-29] > >>>>>>> at > >>>>>>> > >>>>>>> > >> > org.apache.camel.component.quartz.QuartzEndpoint.onJobExecute(QuartzEndpoint.java:117)[camel-quartz-2.10.0.fuse-71-047.jar:2.10.0.fuse-71-047] > > >> > >>>>>>> at > >>>>>>> > >>>>>>> > >> > org.apache.camel.component.quartz.CamelJob.execute(CamelJob.java:54)[camel-quartz-2.10.0.fuse-71-047.jar:2.10.0.fuse-71-047] > > >> > >>>>>>> at > >>>>>>> > >>> > org.quartz.core.JobRunShell.run(JobRunShell.java:216)[quartz-1.8.5.jar:] > >>>>>>> at > >>>>>>> > >>>>>>> > >> > org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)[quartz-1.8.5.jar:] > > >> > >>>>>>> [artzScheduler-camel-1_Worker-6] simple > >>> INFO > >>>>>>> Moving > >>>>>>> message to Folder > >>>>>>> [ > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> -- > >>>>>>> View this message in context: > >>>>>>> > >> > http://camel.465427.n5.nabble.com/Cannot-write-null-body-to-file-error-tp5729696.html > >>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com. > >>>>>>> > >>>>>> > >>>>>> ------------------------------ > >>>>>> If you reply to this email, your message will be added to the > >>>> discussion > >>>>>> below: > >>>>>> > >>>>>> > >> > http://camel.465427.n5.nabble.com/Cannot-write-null-body-to-file-error-tp5729696p5729698.html > >>>>>> To unsubscribe from Cannot write null body to file error !, click > >>>> here< > >>>>> > >>>>>> . > >>>>>> NAML< > >> > http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> View this message in context: > >>>>> > >> > http://camel.465427.n5.nabble.com/Cannot-write-null-body-to-file-error-tp5729696p5729699.html > >>>>> Sent from the Camel - Users mailing list archive at Nabble.com. > >>>>> > >>>> > >>>> ------------------------------ > >>>> If you reply to this email, your message will be added to the > >> discussion > >>>> below: > >>>> > >>>> > >> > http://camel.465427.n5.nabble.com/Cannot-write-null-body-to-file-error-tp5729696p5729701.html > >> > >>>> To unsubscribe from Cannot write null body to file error !, click > >> here< > >>> > >>>> . > >>>> NAML< > >> > http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml > >>>> > >>> > >>> camelContext.xml (1K) < > >>> > http://camel.465427.n5.nabble.com/attachment/5729702/0/camelContext.xml> > >>> message2.xml (286 bytes) < > >>> http://camel.465427.n5.nabble.com/attachment/5729702/1/message2.xml> > >>> > >>> > >>> > >>> > >>> -- > >>> View this message in context: > >>> > >> > http://camel.465427.n5.nabble.com/Cannot-write-null-body-to-file-error-tp5729696p5729702.html > >> > >>> Sent from the Camel - Users mailing list archive at Nabble.com. > >>> > >> > >> ------------------------------ > >> If you reply to this email, your message will be added to the > discussion > >> below: > >> > >> > > >> . > >> NAML< > http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > > >> > > > > > > > > -- > > View this message in context: > http://camel.465427.n5.nabble.com/Cannot-write-null-body-to-file-error-tp5729696p5729760.html > > > Sent from the Camel - Users mailing list archive at Nabble.com. > > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://camel.465427.n5.nabble.com/Cannot-write-null-body-to-file-error-tp5729696p5729766.html > To unsubscribe from Cannot write null body to file error !, click > here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5729696&code=cmFyZXJlbXlAZ21haWwuY29tfDU3Mjk2OTZ8LTE5Mzg3NTA5NjY=> > . > NAML<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > -- View this message in context: http://camel.465427.n5.nabble.com/Cannot-write-null-body-to-file-error-tp5729696p5729802.html Sent from the Camel - Users mailing list archive at Nabble.com.