[ https://issues.apache.org/jira/browse/CAMEL-9916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Catalina-Alina Dobrica updated CAMEL-9916: ------------------------------------------ Comment: was deleted (was: I don't set up the connection pool - it is currently handled in SJMS, in the component's doStart and doStop methods. What I propose is doing it in the endpoint's doStart and doStop, as I suggest the ConnectionFactory should belong to the endpoint instead of the component. Keeping, of course, the backward compatibility. Here's a simple use-case of the restart issue (which is not restricted to XML usage): /** * Using a basic use-case of SJMS component + ActiveMQConnectionFactory, context cannot be restarted **/ @Test public void useCase() throws Exception { SimpleRegistry registry = new SimpleRegistry(); ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://broker?broker.persistent=false&broker.useJmx=false"); registry.put("activemq", connectionFactory); DefaultCamelContext context = new DefaultCamelContext(registry); //adding a connection factory to a SJMS component instance, as per the current usage of this component SjmsComponent sjmsComponent = new SjmsComponent(); sjmsComponent.setConnectionFactory(connectionFactory); context.addComponent("sjms", sjmsComponent); //with no added complexity in the route RouteBuilder routeBuilder = new RouteBuilder(context) { @Override public void configure() throws Exception { from("sjms:queue:test").log("${body}"); } }; context.addRoutes(routeBuilder); //when the context starts, SjmsComponent.doStart creates a ConnectionFactoryResource with an underlying GenericObjectPool<Connection>, even if the pool size is 1 (default = this use-case) and fills the pool context.start(); //when the context starts, SjmsComponent.doStop drains the pool context.stop(); //FAIL - the context cannot start again because of an NPE in SjmsConsumer when trying to borrowConnection from the ConnectionFactoryResource context.start(); context.stop(); }) > SJMS component is not currently nodev/XML route compatible > ---------------------------------------------------------- > > Key: CAMEL-9916 > URL: https://issues.apache.org/jira/browse/CAMEL-9916 > Project: Camel > Issue Type: New Feature > Components: camel-sjms > Reporter: Catalina-Alina Dobrica > > SJMS component is currently not friendly for XML route usage because: > * You need a component instance which has been "activated" - has had a > connection factory set. > * On route restart, the component cannot be reused because the underlying > pool is closed and not recreated -- This message was sent by Atlassian JIRA (v6.3.4#6332)