On Thu, Feb 18, 2010 at 10:52 PM, ankelee <[email protected]> wrote: > > I mean documenting using the system/routes by drawing diagrams with the > symbols for the patterns from the EIP book. >
The EIP book is a bit vague on error handling and its centered about MOM. http://en.wikipedia.org/wiki/Message-oriented_middleware And thus the Dead Letter Channel is kinda the error handler :) So that is your symbol :) > > Claus Ibsen-2 wrote: >> >> On Thu, Feb 18, 2010 at 12:52 PM, ankelee <[email protected]> wrote: >>> >>> On another note: >>> I'm trying to design this system using the EIP visual notation. I'm not >>> sure >>> how to go about this and error handling in general. Are these types of >>> things supposed to be left out and implicitly handled by the messagning >>> system, or what is the general practice here? >>> >> >> What do you mean by visual EIP? Do you use FUSE Integration Designer >> or other graphical tooling? >> >> There is no true story about error handling. Its hard and you gotta >> deal with it per use case. >> >> >>> >>> >>> Claus Ibsen-2 wrote: >>>> >>>> On Wed, Feb 17, 2010 at 8:01 PM, ankelee <[email protected]> >>>> wrote: >>>>> >>>>> The latter two suggestions I can get to work, but I just get null when >>>>> trying >>>>> to get the body as a String. >>>>> >>>>> I'm not sure what is going on behind the scenes here. As stated I want >>>>> to >>>>> be >>>>> able to recover from an exception if a transformation goes wrong and >>>>> write >>>>> the file to an error directory, and another directory if everything >>>>> succeeds. Is Camel keeping the original file "safe" internally no >>>>> matter >>>>> which way I do it? Can I always use the file handle to get first >>>>> original >>>>> message? >>>> >>>> The file component can do this by default using these options: >>>> moveFailed = move to a error folder if processing of the file failed >>>> move = move to a backup folder if processing succeeded >>>> >>>> http://camel.apache.org/file2.html >>>> >>>> So is this not something like that you want to do? >>>> >>>> >>>> >>>>> >>>>> getUnitOfWork() will always refer to the original entry point of the >>>>> message >>>>> or? I thought it would only keep knowledge about the latest node that >>>>> the >>>>> message had been through. >>>>> >>>>> >>>>> >>>>> Claus Ibsen-2 wrote: >>>>>> >>>>>> On Wed, Feb 17, 2010 at 5:04 PM, ankelee <[email protected]> >>>>>> wrote: >>>>>>> >>>>>>> Hello >>>>>>> >>>>>>> I'm trying to build a system where I consume files from a directory, >>>>>>> perform >>>>>>> transformations in several steps and finally deliver at an endpoint. >>>>>>> In >>>>>>> case >>>>>>> the delivery of the transformed message succeeds, I want to route a >>>>>>> copy >>>>>>> of >>>>>>> the original file as it was before consumation to a backup directory >>>>>>> on >>>>>>> disk. If the transformation fails, I want a copy of the original file >>>>>>> copied >>>>>>> to an error directory. >>>>>>> >>>>>>> I have thought up a couple of solutions but I don't think they are >>>>>>> best >>>>>>> practice. One is somehow keeping a copy in a queue and then going >>>>>>> back >>>>>>> and >>>>>>> identifying on an id and copy the. The other one is bundling the >>>>>>> original >>>>>>> file with the transforming message and then extracting the original >>>>>>> file >>>>>>> and >>>>>>> write it to the according directory/queue. >>>>>>> >>>>>>> What kind of approach would be good? >>>>>>> -- >>>>>> >>>>>> In the future Camel will have a some sort of better API to traverse >>>>>> the message history so you can see the modifications. >>>>>> >>>>>> Anyway the original input message is avail as follows >>>>>> >>>>>> Exchange exchange = ... >>>>>> >>>>>> Message in = exchange.getUnitOfWork().getOriginalInMessage(); >>>>>> // will read the file content >>>>>> String body = in.getBody(String.class); >>>>>> >>>>>> but as yours is a file you should be able to do >>>>>> GenericFile<File> file = in.getBody(GenericFile.class); >>>>>> >>>>>> if you want to use the file handle instead. >>>>>> >>>>>> >>>>>> You can also just extract the file name from the header and do >>>>>> >>>>>> File file = new File(exchange.getIn().getHeader(Exchange.FILE_NAME, >>>>>> String.class)); >>>>>> >>>>>> >>>>>> >>>>>>> View this message in context: >>>>>>> http://old.nabble.com/Keep-original-message-several-%22steps%22-back.-tp27626057p27626057.html >>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Claus Ibsen >>>>>> Apache Camel Committer >>>>>> >>>>>> Author of Camel in Action: http://www.manning.com/ibsen/ >>>>>> Open Source Integration: http://fusesource.com >>>>>> Blog: http://davsclaus.blogspot.com/ >>>>>> Twitter: http://twitter.com/davsclaus >>>>>> >>>>>> >>>>> >>>>> -- >>>>> View this message in context: >>>>> http://old.nabble.com/Keep-original-message-several-%22steps%22-back.-tp27626057p27628689.html >>>>> Sent from the Camel - Users mailing list archive at Nabble.com. >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Claus Ibsen >>>> Apache Camel Committer >>>> >>>> Author of Camel in Action: http://www.manning.com/ibsen/ >>>> Open Source Integration: http://fusesource.com >>>> Blog: http://davsclaus.blogspot.com/ >>>> Twitter: http://twitter.com/davsclaus >>>> >>>> >>> >>> -- >>> View this message in context: >>> http://old.nabble.com/Keep-original-message-several-%22steps%22-back.-tp27626057p27637396.html >>> Sent from the Camel - Users mailing list archive at Nabble.com. >>> >>> >> >> >> >> -- >> Claus Ibsen >> Apache Camel Committer >> >> Author of Camel in Action: http://www.manning.com/ibsen/ >> Open Source Integration: http://fusesource.com >> Blog: http://davsclaus.blogspot.com/ >> Twitter: http://twitter.com/davsclaus >> >> > > -- > View this message in context: > http://old.nabble.com/Keep-original-message-several-%22steps%22-back.-tp27626057p27646285.html > Sent from the Camel - Users mailing list archive at Nabble.com. > > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus
