camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dennis Bohnstedt Hansen <...@miracle.dk>
Subject Re: poll enrich and file endpoint
Date Thu, 18 Aug 2016 14:59:43 GMT
Hi

I’m seeing the same problem with pollEnrich, using a dynamic endpoint. I
send a my route a filename in the message-body, and expect the file content
as a reply:

from("direct:getFileContent")
        .log("Filename : ${body}")
        .pollEnrich().simple("file:/temp?readLock=none&noop=true&fileName=${body}").aggregationStrategy(new
BodyOnlyAggregationStrategy()).timeout(5000)
        .log(“FileContent: ${body}");

The first thing i experienced, was that i lost my headers, when i did not
set an aggregation strategy, to my “BodyOnlyAggregationStrategy”, is a
fairly started out as a fairly simple strategy, that just copied the body
to the original exchange:

public Exchange aggregate(Exchange original, Exchange resource) {
    if (resource != null && resource.getIn() != null) {
        Object resourceResponse = resource.getIn().getBody();
        if (original.getPattern().isOutCapable()) {
            original.getOut().setBody(resourceResponse);
        } else {
            original.getIn().setBody(resourceResponse);
        }
    }
    return original;
}


The first time i hit my route, everything works just fine, but after that,
i start waiting for the timeout, and returns null to the
AggregationStrategy “resource” Exchange. If i do not set a timeout i hangs
forever…

Regards
/ Dennis Bohnstedt Hansen
  Software designer
  Miracle A/S - www.miracle.dk <http://www.miracleas.dk/>
  +45 53747254


On Thu, Aug 18, 2016 at 8:12 AM, Claus Ibsen <claus.ibsen@gmail.com> wrote:

> Its easier to do a message transformation and set the body as a
> java.io.File
>
> <transform>
>   <simple type="java.io.File">{{env:HOME}}/my-dir/${body}</simple>
> </transform>
>
>
> On Tue, Aug 16, 2016 at 8:39 PM, Alex Soto <alex.soto@envieta.com> wrote:
> > Hello,
> >
> > I am experiencing erratic results when using the Poll Enrich with a
> static file.
> > The file is static in the sense that it never changes, so I am setting
> both the noop=true and the idempotent=false.
> > Basically I need to be able to serve this same files for ever, and not
> move it or deleted it.
> >
> > My route sets the body with the file name, then it continues with:
> >
> > <pollEnrich timeout="5000">
> >    <simple>file:{{env:HOME}}/my-dir?noop=true&amp;fileName=${
> body}&amp;idempotent=false</simple>
> > </pollEnrich>
> >
> > It works a few times, but after this is executed several times (from
> multiple clients concurrently), the body becomes null, even though, the
> file is still present in the directory.
> > Am I setting the options correctly?  How can this be accomplished?
> >
> > Best regards,
> > Alex soto
> >
> >
> >
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message