Apache Camel (premier volet) : configuration des timeouts HTTP Configuration de la temporisation par route à la demande

Il y a même plus court et surtout plus souple. La configuration précédente présente l'inconvénient de fixer les valeurs de temporisation pour l'ensemble des routes utilisant le composant HTTP. Pour une configuration "par route" à la demande, on peut utiliser le paramétrage par référence. Avec les déclarations Spring suivantes :


 <bean id="clientConnectionManager2"
   class="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager">
   <property name="params">
      <bean
         class="org.apache.commons.httpclient.params.HttpConnectionManagerParams">
         <property name="connectionTimeout" value="5000" />
         <property name="soTimeout" value="2000" />
      </bean>
   </property>
</bean>

<bean id="clientConnectionManager3"
   class="org.apache.commons.httpclient.MultiThreadedHttpConnectionManager">
   <property name="params">
      <bean
         class="org.apache.commons.httpclient.params.HttpConnectionManagerParams">
         <property name="connectionTimeout" value="10000" />
         <property name="soTimeout" value="12000" />
      </bean>
   </property>
</bean>

Il suffit de configurer les routes avec la référence du bean souhaité :


from("direct:start1").
to("http://www.google.com/search?q=netapsys&clientConnectionManager=#clientConnectionManager2").to("mock:result");

from("direct:start2").
to("http://www.google.com/search?q=netapsys&clientConnectionManager=#clientConnectionManager3").to("mock:result");


Il existe un composant Camel utilisant la version 4.x d'HttpClient que je n'ai pas encore eu l'occasion d'utiliser. La configuration doit être probablement légèrement différente.