+1 Great feature, it reminds me an issue years ago where I found a management context with tons of file endpoint mbeans. It makes me wonder if the file component would be a good candidate for this optimisation ?
Alex On Tue, Apr 24, 2018 at 12:30 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > On Tue, Apr 24, 2018 at 11:43 AM, Bilgin Ibryam <bibr...@gmail.com> wrote: > > + 1 for this improvement from me. > > > > toD is very commonly used expression, and while it is an improvement > > over recipientList, it has a serious drawback - creating new endpoints > > for every changed option... > > > > Only last week I had to use toD for querying Cassandra, and it quickly > > became obvious it is not practical as it was creating a new endpoint > > and a new connection to a Cassandra cluster of 5 even for a small > > query parameter change. You change would allow to reuse the connection > > (I understand this has to be added to Cassandra component first as > > well) and dynamically build queries..gr8. > > > > Yes it would needed to be added specially per component that can > support such kind of optimisation. > For cassandra that would mean having a way of providing the dynamic > queries in headers. > > > > Bilgin > > > > > > On Mon, Apr 23, 2018 at 11:50 AM, Claus Ibsen <claus.ib...@gmail.com> > wrote: > >> Hi > >> > >> We have ticket > >> https://issues.apache.org/jira/browse/CAMEL-12462 > >> > >> Its an idea I had though about in the past, even before we had toD. > >> However I do think that the simplification toD gives Camel end users, > >> can warrant that we attempted to look at this again. > >> > >> In particular when you have HTTP endpoints that are dynamic (different > >> query parameters, context-path, etc) but calling to the same HTTP > >> server, then toD should ideally be optimised to deal with this > >> out-of-the-box. Today you end up with unique Camel endpoints per > >> unique combo computed from toD. > >> > >> So CAMEL-12462 optimised and resolved this. However it does this with > >> a little bit of complexity of parsing the computed endpoint uri to > >> resolve it into 3 parts > >> > >> - static base uri > >> - dynamic context-path > >> - dynamic query parameters > >> > >> Then it will use the static base url, as the Camel endpoint, and > >> therefore resolve into a single endpoint and Camel http producer. And > >> the dynamic parts are automatic provided in Camel headers that the > >> HTTP producer supports (HTTP_PATH and HTTP_QUERY). > >> > >> Anyway the PR has some docs and examples and more details in the > >> updated adoc file for toD, so take a look at that file. > >> > >> I implemented this with a way for components to support this by > >> providing a service locator file in the send-dynamic folder of > >> META-INF, eg same way we discover components. This way other > >> components can provide their own optimisation implementation in the > >> future. For example to other kinds of components like JMS, Kafka and > >> others. > >> > >> I wanted to give the community and other Camel committers a chance to > >> provide feedback, review, improve, etc - before we merged this into > >> the master branch. > >> > >> There is a GitHub PR that makes it easier to browse the code changes > >> https://github.com/apache/camel/pull/2302 > >> > >> > >> > >> > >> -- > >> Claus Ibsen > >> ----------------- > >> http://davsclaus.com @davsclaus > >> Camel in Action 2: https://www.manning.com/ibsen2 > > > > > > > > -- > > Bilgin Ibryam > > ASF Member | Architect at Red Hat > > http://ofbizian.com | @bibryam > > > > Kubernetes Patterns http://leanpub.com/k8spatterns (in progress) > > Camel Design Patterns https://leanpub.com/camel-design-patterns > > > > -- > Claus Ibsen > ----------------- > http://davsclaus.com @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 >