[
https://issues.apache.org/jira/browse/CAMEL-12063?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-12063.
---------------------------------
Resolution: Incomplete
Fix Version/s: 2.21.0
User did not respond
> Spring Boot - xmlRoutesReloadDirectory & jmxCreateConnector issue -
> duplicated JMX
> ----------------------------------------------------------------------------------
>
> Key: CAMEL-12063
> URL: https://issues.apache.org/jira/browse/CAMEL-12063
> Project: Camel
> Issue Type: Bug
> Components: camel-spring-boot
> Environment: Windows
> Camel 2.20.0
> JDK 1.8
> Reporter: Frédéric OLIER
> Priority: Minor
> Fix For: 2.21.0
>
>
> We configured CAMEL with Spring Boot.
> We used the 'application.properties' file to set-up a folder in which routes
> are read from when they are updated:
> camel.springboot.xmlRoutesReloadDirectory=/path/to/route/folder/
> *First remark:* If a file is already in the folder, a 'touch' on it is
> required for it to be loaded.
> We then tried to configure an JMX agent with the following configuration,
> still in 'application.properties':
> camel.sprintboot.jmxCreateConnector=true
> *Second remark:* The value is not set. We traced (debug mode) to check
> whether the method 'CamelConfigurationProperties.setJmxCreateConnector()' was
> called. It is NOT called.
> We therefore configured our Spring Boot application to load a context on
> start-up:
> {{
> @SpringBootApplication
> @ImportResource({"classpath:camelContext.xml"})
> public class ST3Application {
> /**
> * A main method to start this application.
> * @throws Exception
> */
> public static void main(String[] args) throws Exception {
> SpringApplication.run(ST3Application.class, args);
> }
> }
> }}
> The camelContext.xml being as follows:
> {{
> <beans xmlns="http://www.springframework.org/schema/beans"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://camel.apache.org/schema/spring
> http://camel.apache.org/schema/spring/camel-spring.xsd">
> <camelContext id="camel-xml"
> xmlns="http://camel.apache.org/schema/spring">
> <jmxAgent id="agent" createConnector="true" />
> </camelContext>
> </beans>
> }}
> In this case, the JMX Bean is exposed and accessible via a JMX client.
> *Third remark:* When we update the route file from the
> '/path/to/route/folder/' folder, there is a message in the log indicateing
> that there is a conflict with the exposed JMX:
> {{
> 2017-12-05 09:49:37.368 WARN 3096 --- [ main]
> a.c.m.DefaultManagementLifecycleStrategy : This CamelContext(camel-xml) will
> be registered using the name: camel-xml-1 due to clash with an existing name
> already registered in MBeanServer.
> }}
> So it seems that upon routes reloading, the initial JMX are not properly
> destroyed before creating the new ones.
> The annoying thing is that we cannot safely access the MBean as it is mixed
> up.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)