camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: Camel routing issue
Date Mon, 01 Apr 2013 08:32:40 GMT
Hi

See this EIP
http://camel.apache.org/content-enricher.html

About pollEnrich.

Though pollEnrich currently does support dynamic uris. Its on the roadmap,
for Camel 3.0.
It requires an API change and thus isn't so easy to implement currently on
2.x.

You can always use a java bean / camel processor, and consume the ftp file
from java code.
For example using consumer template.

As you use FTP you may want to set disconnect=true so the connect is not
remained open after usage.



On Sun, Mar 31, 2013 at 7:51 PM, Chris Wolf <cwolf.algo@gmail.com> wrote:

> Ok, I'm starting to get it - a little bit.  As for my concrete
> example, so far, I have:
>
>                 from("direct:start")
>                 .beanRef("config")
>                 .convertBodyTo(Document.class)
>                 .recipientList().xquery(
>                     "concat('ftp://'" +
>                     ",//remote[vendorId/@value='CBOE34']/server/@value" +
>
>
> ",//remote[vendorId/@value='CBOE34']/param[name/@value='directory']/value/@value"
> +
>                     ",'?noop=true&amp;username='" +
>                     ",//remote[vendorId/@value='CBOE34']/username/@value" +
>                     ",'&amp;password='" +
>
> ",//remote[vendorId/@value='CBOE34']/password/@value)", String.class);
>
> Here's the problem - this will create an FTP Producer - that's not
> what I need.  I need a dynamically
> constructed URI for a polling FTP consumer.  I don't think
> "recipientList" will work...   Any ideas?
>
> Thanks,
>
> Chris
>
> On Sun, Mar 31, 2013 at 10:27 AM, Chris Wolf <cwolf.algo@gmail.com> wrote:
> > Hi Claus,
> >
> > I hate to ask this - but I still don't get it.  I thought
> > "recipientList" was for sending to multiple, runtime-defined
> > recipients.  I don't see how this
> > answers the question of sending to one, single recipient, whose URI is
> > dynamically constructed - and in my use-case the dynamic settings
> > are not in properties - so "simple" (property place-holders) won't help
> me.
> >
> > Let me give you a concrete example.  I need to do an ftp download and
> > the connection information comes from up-stream in the route in the
> > form of XML (DOM - a Document instance).  Currently, I am trying to do
> > this with bean binding and method params decorated with @XPath
> > pointing into the Document with the ftp settings and inside the
> > this method doing:
> >
> > FtpComponent ftpComponent = context.getComponent("ftp",
> FtpComponent.class);
> >
> > ..and then attempt to get the endpoint and call createConsumer(...).
> > I'm sure this is not the right way to do it, but I don't see how else
> > - any ideas?
> >
> > Thanks,
> >
> >
> > Chris
> >
> > On Sun, Mar 31, 2013 at 2:28 AM, Claus Ibsen <claus.ibsen@gmail.com>
> wrote:
> >> Hi
> >>
> >> See this FAQ
> >> http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html
> >>
> >>
> >>
> >>
> >> On Sun, Mar 31, 2013 at 5:22 AM, prabumca06@gmail.com
> >> <prabumca06@gmail.com>wrote:
> >>
> >>> Thanks Walzer..
> >>> *
> >>> *
> >>> *Queston1:
> >>>
> >>> *
> >>> *Example*
> >>>
> >>> .when(header("foo").isEqualTo("bar"))
> >>>                     .to("direct:b")
> >>>
> >>> In my case i have to add more than 80 condition and forwards to 80
> >>> different queues.
> >>>
> >>> Above example i can only hard-code queue name,But what i want is below.
> >>>
> >>> * .when(header("Type").isNotNull())
> >>>     .to("activemq.Inbound."+header("Type"))
> >>> *
> >>>
> >>> Example:If queue type is test,It should forward to *Inbound.test*
> queue.
> >>>
> >>> Above example i tried,but it did not worked,created queue something
> >>> like this *Inbound.header("type")*
> >>>
> >>> *Question2*:
> >>>
> >>> from("direct:a")
> >>>             .multicast().to("direct:b", "direct:c", "direct:d");
> >>>
> >>> Based on messages header and content type i want forward to different
> >>> queue.
> >>>
> >>> condition will be *OR *and *AND*.How can i do that like above example.*
> >>> *
> >>>
> >>> Thanks in advance*
> >>> *
> >>>
> >>> *Regards*
> >>>
> >>> Prabu.N
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> On Sun, Mar 31, 2013 at 2:43 AM, Walzer, Thomas [via Camel] <
> >>> ml-node+s465427n5730116h98@n5.nabble.com> wrote:
> >>>
> >>> > Hi,
> >>> >
> >>> > you could start by reading Claus´ book (p. 44ff) which has a perfect
> >>> > example or http://camel.apache.org/content-based-router.html (just
> >>> > replace the direct: with your queues).
> >>> > If you need to fire your messages to multiple queues:
> >>> > http://camel.apache.org/publish-subscribe-channel.html shows you the
> >>> > various ways.
> >>> > When you get the concepts you can just "lego" them together.
> >>> >
> >>> > Regards, Thomas.
> >>> >
> >>> > Am 30.03.2013 um 19:05 schrieb "[hidden email]<
> >>> http://user/SendEmail.jtp?type=node&node=5730116&i=0>"
> >>> > <[hidden email] <
> http://user/SendEmail.jtp?type=node&node=5730116&i=1>>:
> >>> >
> >>> > > Hi Claus,
> >>> > >
> >>> > > Thanks so much Clus for help.It is working now.
> >>> > >
> >>> > > I need your guidance for the following requirement.
> >>> > >
> >>> > > 1.I have one *inbound queue* it will receive message frequently
> from my
> >>> > > application.
> >>> > > 2.From *inbound queue* i need camel routing to move message from
> >>> > > another *message
> >>> > > based inbound queue* based on message header value.
> >>> > > 3.From *message based inbound queue *i* *need camel routing to
move
> >>> > message
> >>> > > to *one or more outbound queue *based on message content*
> >>> > > *
> >>> > >
> >>> > > I need *camel java DSL*sample code for above requirement.*
> >>> > > *
> >>> > > *
> >>> > > *
> >>> > > *Thanks in advance*
> >>> > >
> >>> > >
> >>> > > On Sat, Mar 30, 2013 at 3:10 PM, Claus Ibsen-2 [via Camel] <
> >>> > > [hidden email] <
> http://user/SendEmail.jtp?type=node&node=5730116&i=2>>
> >>> > wrote:
> >>> > >
> >>> > >> Hi
> >>> > >>
> >>> > >> Do as the exception tells you. Check route 2. You route from
> >>> > >> "Inbound.SSS.TestEvent". And that is now know to Camel.
> >>> > >>
> >>> > >> Maybe you need to add "activemq:" as prefix so its
> >>> > >> "activemq:Inbound.SSS.TestEvent".
> >>> > >>
> >>> > >>
> >>> > >> On Fri, Mar 29, 2013 at 7:01 PM, [hidden email]<
> >>> > http://user/SendEmail.jtp?type=node&node=5730109&i=0>
> >>> > >> <[hidden email] <
> http://user/SendEmail.jtp?type=node&node=5730109&i=1
> >>> >>
> >>> >
> >>> > >> wrote:
> >>> > >>
> >>> > >>>
> >>> > >>> I have activemmq  Project in that i have following requirement
> >>> > >>>
> >>> > >>> 1.Move message from Inbound queue to type based inbound
queue.
> >>> > >>> 2.Move message from Message type inbound queue to outbound
queue
> >>> > >>>
> >>> > >>> I have created two bean for to achieve this.
> >>> > >>>
> >>> > >>> 1.one for move from inbound to message type  inbound queue
> >>> > >>> 2.one for move from inbound to outbound queue.
> >>> > >>>
> >>> > >>> I have following entry in camel.xml
> >>> > >>>
> >>> > >>>   <camelContext id="camel" xmlns="
> >>> > http://camel.apache.org/schema/spring">
> >>> > >>
> >>> > >>>
> >>> > >>>                <routeBuilder ref="routeBuilder" />
> >>> > >>>            <routeBuilder ref="routeBuilder1" />
> >>> > >>>
> >>> > >>>    </camelContext>
> >>> > >>>
> >>> > >>>    <bean id="routeBuilder"
> >>> > >>> class="com.camel.routes.SinglecastRouteBuilder"/>
> >>> > >>>    <bean id="recipientsGenerator"
> >>> > >>> class="com.camel.routes.TypeSpecificListBean"/>
> >>> > >>>    <bean id="routeBuilder1"
> >>> > >>> class="com.camel.routes.MulticastRouteBuilder"/>
> >>> > >>>    <bean id="recipientsGenerator1"
> >>> > >>> class="com.camel.routes.RecipientListBean"/>
> >>> > >>>
> >>> > >>> When i run application i am getting following error.
> >>> > >>>
> >>> > >>> * java.lang.Exception: org.apache.camel.RuntimeCamelException:
> >>> > >>> org.apache.camel.Fa
> >>> > >>> iledToCreateRouteException: Failed to create route route2:
> >>> > >>> Route[[From[Inbound.G
> >>> > >>> MD.TestEvent]] -> [Multicast[[Bean[ref:... because
of No endpoint
> >>> > could
> >>> > >> be
> >>> > >>> found
> >>> > >>> for: Inbound.SSS.TestEvent, please check your classpath
contains
> the
> >>> > >> needed
> >>> > >>> Cam
> >>> > >>> el component jar.*
> >>> > >>>
> >>> > >>> I am not sure i am missing any configuration,Please kindly
help
> me
> >>> > >>>
> >>> > >>>
> >>> > >>>
> >>> > >>>
> >>> > >>> --
> >>> > >>> View this message in context:
> >>> > >>
> http://camel.465427.n5.nabble.com/Camel-routing-issue-tp5730094.html
> >>> > >>> Sent from the Camel - Users mailing list archive at Nabble.com.
> >>> > >>
> >>> > >>
> >>> > >>
> >>> > >> --
> >>> > >> Claus Ibsen
> >>> > >> -----------------
> >>> > >> Red Hat, Inc.
> >>> > >> FuseSource is now part of Red Hat
> >>> > >> Email: [hidden email]<
> >>> > http://user/SendEmail.jtp?type=node&node=5730109&i=2>
> >>> > >> Web: http://fusesource.com
> >>> > >> Twitter: davsclaus
> >>> > >> Blog: http://davsclaus.com
> >>> > >> Author of Camel in Action: http://www.manning.com/ibsen
> >>> > >>
> >>> > >>
> >>> > >> ------------------------------
> >>> > >> 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
> >>> >
> >>> >
> >>> > >>
> >>> > >
> >>> > >
> >>> > >
> >>> > > --
> >>> > > Thanks & Regards
> >>> > > Prabu.N
> >>> > >
> >>> > >
> >>> > >
> >>> > >
> >>> > > --
> >>> > > View this message in context:
> >>> >
> >>>
> http://camel.465427.n5.nabble.com/Camel-routing-issue-tp5730094p5730115.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/Camel-routing-issue-tp5730094p5730116.html
> >>> >  To unsubscribe from Camel routing issue, click here<
> >>>
> http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=5730094&code=cHJhYnVtY2EwNkBnbWFpbC5jb218NTczMDA5NHw4OTY0MTU3ODg=
> >>> >
> >>> > .
> >>> > 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
> >>> >
> >>> >
> >>>
> >>>
> >>>
> >>> --
> >>> Thanks & Regards
> >>>  Prabu.N
> >>>
> >>>
> >>>
> >>>
> >>> --
> >>> View this message in context:
> >>>
> http://camel.465427.n5.nabble.com/Camel-routing-issue-tp5730094p5730118.html
> >>> Sent from the Camel - Users mailing list archive at Nabble.com.
> >>>
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> Red Hat, Inc.
> >> FuseSource is now part of Red Hat
> >> Email: cibsen@redhat.com
> >> Web: http://fusesource.com
> >> Twitter: davsclaus
> >> Blog: http://davsclaus.com
> >> Author of Camel in Action: http://www.manning.com/ibsen
>



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: cibsen@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

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