Hello. I have a CamelSpringBootTest, and I am trying to test that my
mbeans have been registered. This is how I am trying to check:
@CamelSpringTest
@ContextConfiguration
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD)
class DynamicRouterJmxIT {
@Autowired
CamelContext camelContext;
@Test
void testExpectedMbeansExist() throws MalformedObjectNameException {
Assertions.assertTrue(camelContext.isStarted());
MBeanServer mBeanServer =
camelContext.getManagementStrategy().getManagementAgent().getMBeanServer();
ObjectName name = new
ObjectName("org.apache.camel:context=camelContext,type=routes,name=\"testRoute\"");
DynamicRouterControlService controlMbean =
JMX.newMBeanProxy(mBeanServer, name,
DynamicRouterControlService.class);
DynamicRouterFilterService filterMbean =
JMX.newMBeanProxy(mBeanServer, name,
DynamicRouterFilterService.class);
Assertions.assertNotNull(controlMbean);
Assertions.assertNotNull(filterMbean);
}
}
Here is the XML that I am using for it, called
DynamicRouterJmxIT-context.xml:
<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="camelContext" xmlns="http://camel.apache.org/schema/spring">
<!-- enable JMX -->
<jmxAgent id="agent" disabled="false"/>
<route>
<from uri="direct:start" id="testRoute"/>
<to uri="dynamic-router:test"/>
</route>
<route>
<from uri="direct:subscribe-no-url-predicate"/>
<toD uri="dynamic-router-control:subscribe
?subscribeChannel=${headers.subscribeChannel}
&subscriptionId=${headers.subscriptionId}
&destinationUri=${headers.destinationUri}
&priority=${headers.priority}"/>
</route>
</camelContext>
</beans>
I keep getting this error:
Cannot invoke "org.apache.camel.spi.ManagementAgent.getMBeanServer()"
because the return value of
"org.apache.camel.spi.ManagementStrategy.getManagementAgent()" is null
What am I doing wrong?
Thanks,
Steve