Hi

The code has been merged on master.

I am working on further improving to use a single configurer class for
all endpoint instances, instead of creating a new configurer per
endpoint.
And to polish the naming of the API in camel-api

On Fri, Aug 23, 2019 at 10:02 AM Claus Ibsen <claus.ib...@gmail.com> wrote:
>
> Hi
>
> Just a heads up, that the code is now in good shape, and I will work
> on merging to master.
>
> On Thu, Aug 22, 2019 at 2:34 PM Claus Ibsen <claus.ib...@gmail.com> wrote:
> >
> > Hi
> >
> > JIRA ticket
> > https://issues.apache.org/jira/browse/CAMEL-13870
> >
> > We have been working on further optimize Apache Camel. And the latest
> > step is to configure all of Camel endpoints in a faster way via direct
> > method invocatations of the setter methods on the endpoint or its
> > configuration class.
> >
> > Beforehand we did a java reflection introspection to discover the
> > getter/setters and then match that against the uri parameters.
> >
> > What we have done now is to source code generate fast setters
> > (endpoint configurer classes) that are automatic generated via
> > camel-apt compiler plugin. Then at runtime we discover this configurer
> > class and use it instead of the "old way".
> >
> > All this work is done in a separate branch with name CAMEL-13870. The
> > code is now ready for review (if anyone want to take a peak) and then
> > get shaped so it can be merged onto master branch.
> >
> > This technique is the same we already do for fast
> > - type converters
> > - fast EIP configurations
> >
> > So its just another step ahead but for the biggest of them all - all
> > the 300+ endpoints.
> >
> > The next level after this is to do the same for component options
> > (however we configure endpoints much more frequently).
> >
> > We have also added a BeanIntrospection SPI that captures runtime usage
> > of java reflection, so we can use this to find bottlenecks and improve
> > even more.
> >
> > In case you ask if its faster - yes. But its not as measureable. But
> > we are talking about not using Java reflection at all, and also its
> > invoking direct java method invocations.
> >
> > A very early micro benchmark test via tests/camel-jmh showed that
> > setting just 1 option with old vs fast way was approx 40% quicker - on
> > the log endpoint. The tests are part of the massive commit.
> >
> > For component developers then this is enabled out of the box if you
> > use camel-apt. But you can turn it off by setting generateConfigurer =
> > false in the @UriEndppoint annotation. We have done this for
> > camel-mllp as it has some weird issue (its not developed to best
> > standard so it actually surfaces a problem it has currently). You can
> > also turn it off at runtime by setting basicPropertyBinding=true on
> > component|endpoint level.
> >
> >
> >
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > http://davsclaus.com @davsclaus
> > Camel in Action 2: https://www.manning.com/ibsen2
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to