Hi

Make sure you use the -starter JARs as dependency, eg
camel-http4-starter when using spring boot

On Thu, Feb 21, 2019 at 9:35 PM Peck, Sean <pec...@upmc.edu> wrote:
>
> I am using Springboot 2.22.0, and I am having a devil of a time using the 
> spring-boot autoconfiguraiton with http4 component, according to the 
> documentation :
>
> https://github.com/apache/camel/blob/bf5a73cec85825ee1750517fe699540ef5ee4445/docs/components/modules/ROOT/pages/http4-component.adoc
>
> I should be able to set values using the following:
>
> Application.properties:
> camel.component.http4.connection-time-to-live=30000
> camel.component.http4.connections-per-route=40
> camel.component.http4.enabled=true
>
> I have properly tagged the app as a SpringBootApplication, and other values 
> in the properties file are indeed being picked up and working as expected, 
> but the above ones don’t seem to have any impact:
>
> @SpringBootApplication
>
> Below is the code I am utilizing to try to verify its doing what I expect:
>
> Route:
>
> private synchronized void showStuff(Exchange exchange){
>     log.info("  component 
> "+exchange.getContext().getComponent("http4",HttpComponent.class));
>     log.info("  exchange 
> "+exchange.getContext().getComponent("http4",HttpComponent.class).getConnectionTimeToLive());
>     log.info(" ex max 
> "+(""+getContext().getComponent("http4",HttpComponent.class).getMaxTotalConnections()));
> }
>
> @Override
> public void configure() {
>
>
>     from("file:///data/input?fileName=test.txt&move=.done&moveFailed=.error")
>             .to(“http4://www.pitt.edu")
>             .process(this::showStuff)
>             .log("HTTP DONE")
>
>             .end();
> }
>
> I have also tried to see the values through the beforeApplication and 
> afterApplication start routines:
>
>
> @Bean
> CamelContextConfiguration contextConfiguration() {
>     return new CamelContextConfiguration() {
>
>         @Override
>         public void beforeApplicationStart(CamelContext context) {
>
>             Log.info("COMPONENTS "+context.getComponentNames());
>             HttpComponent c = context.getComponent("http4", 
> HttpComponent.class);
>             Log.info("TTL "+c.getConnectionTimeToLive());
>             Log.info("CM "+c.getClientConnectionManager());
>             Log.info("HTTPCOMPONENT "+c);
>             Log.info("Max Total "+c.getMaxTotalConnections());
>             Log.info("Max Route "+c.getConnectionsPerRoute());
>         }
>
>         public void afterApplicationStart(CamelContext context){
>             Log.info("COMPONENTS AFTER "+context.getComponentNames());
>
>             HttpComponent c = context.getComponent("http4", 
> HttpComponent.class);
>             Log.info("TTL "+c.getConnectionTimeToLive());
>             Log.info("CM "+c.getClientConnectionManager());
>             Log.info("HTTPCOMPONENT "+c);
>             Log.info("Max Total "+c.getMaxTotalConnections());
>             Log.info("Max Route "+c.getConnectionsPerRoute());
>         }
>     };
> }
>
> Yet every output shows me the same default values for time-to-live and 
> connections-per-route… -1 and 20, where I would expect them to be 30000 and 
> 40, the values I am putting in the application.properties appear to have no 
> effect.  The HttpComponent log also shows the component is indeed consistent 
> and the same component all the way through everything.
>
> Is the documentation wrong about these springboot autoconfigs being 
> supported?  Or am I just doing something wrong in either how I am setting 
> them?  Or how I can verify they have been changed?  Am I looking at the wrong 
> object?



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

Reply via email to