You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2016/08/09 09:42:21 UTC

[jira] [Commented] (CAMEL-10226) camel-jms ignores connection pool settings in spring-boot deployment

    [ https://issues.apache.org/jira/browse/CAMEL-10226?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15413294#comment-15413294 ] 

Claus Ibsen commented on CAMEL-10226:
-------------------------------------

I am not aware of a special use-case. Can you check the commit log when the code was introduced - likely 9 years ago by James.

> camel-jms ignores connection pool settings in spring-boot deployment
> --------------------------------------------------------------------
>
>                 Key: CAMEL-10226
>                 URL: https://issues.apache.org/jira/browse/CAMEL-10226
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-jms
>            Reporter: Nicola Ferraro
>            Assignee: Nicola Ferraro
>
> The camel jms-component (particularly the camel-activemq, that inherits from it) cannot be fully configured in a spring-boot environment.
> When using eg. the spring-xml configuration (spring-boot properties are not yet available in the activemq component):
> {code:xml}
> <bean id="amq" class="org.apache.activemq.camel.component.ActiveMQComponent">
>     <property name="userName" value="XXX"/>
>     <property name="password" value="YYY"/>
>     <property name="brokerURL" value="ZZZ"/>
> </bean>
> {code}
> The properties _userName_, _password_ and _brokerURL_ are simply ignored.
> The reason is that spring-boot defines its own connection factory that is automatically bound to the application context when ActiveMQ is on the classpath (https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQConnectionFactoryConfiguration.java#L41-L71).
> And the JMS component is programmed to use any connection factory that is available in the spring application context: https://github.com/apache/camel/blob/master/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java#L151-L155.
> This prevents the configuration object to create a new connection factory with the specified properties, so they are ignored. The component always use an in-memory broker (whenever the creation of the JmsConfiguration object is not overridden by the user).
> I can work to fix this behavior, but I need to know if the lookup in the application context (it is located in the camel source, even if it affects activemq) is historically related to some use case or it can be safely removed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)