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}
                      &amp;subscriptionId=${headers.subscriptionId}
                      &amp;destinationUri=${headers.destinationUri}
                      &amp;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

Reply via email to