An upgrade from Camel 2.1.0 to 2.2.0 seems to fix the issue, this is a
plausible cause?




ankelee wrote:
> 
> Yes that indeed looks like exactly what I want.
> 
>         context.addRoutes(new RouteBuilder() {
>             public void configure() {
>                
> from("file://data/inbox?move=data/backup&moveFailed=data/error")
>                       .to("xslt://file:Schemas/Common/Xslt/x-to-y.xsl")
>                       .to("xslt://file:Schemas/Common/Xslt/y-to-z.xsl")
>                       .to("file:data/outbox");
>             }
>         });
> 
> What qualifies as a succeeded processing though and which errors does it
> react to? The "move" works fine, but then I tried to introduce a flaw in
> my input file which obviously gives me an exception, Camel creates the
> error folder, but the file still only sits in the source directory, can
> you explain further?
> 
> 
> 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.-tp27626057p27632561.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to