I am going to switch over to the dev list for this. I did not know about that list until today.
On Tue, Jan 2, 2024 at 4:30 PM Steve973 <steve...@gmail.com> wrote: > Thanks. For the code that I included with my email, it didn't even get > that far. The ManagementAgent was null. I switched my test over to extend > CamelTestSupport, and I removed @CamelSpringTest, and now I can get the > MBeanServer. I can list all of the beans by doing this: > > MBeanServer mBeanServer = > context.getManagementStrategy().getManagementAgent().getMBeanServer(); > String names = mBeanServer.queryNames(null, null).stream() > .map(ObjectName::getCanonicalName) > .filter(name -> name.contains("ynamic")) > .collect(Collectors.joining("\n")); > System.err.println("MBean names:\n" + names); > > The result is this: > > MBean names: > > org.apache.camel:context=camel-1,name="dynamic-router-control",type=components > org.apache.camel:context=camel-1,name="dynamic-router",type=components > > org.apache.camel:context=camel-1,name="dynamic-router-control://subscribe",type=endpoints > > org.apache.camel:context=camel-1,name=DynamicRouterProducer(0x511505e7),type=producers > > org.apache.camel:context=camel-1,name=DynamicRouterControlProducer(0x70abf9b0),type=producers > > org.apache.camel:context=camel-1,name="dynamic-router://test",type=endpoints > > But I don't see the two classes that I have annotated > with @ManagedResource (that also include @ManagedOperation > and @ManagedAttribute) that extend ServiceSupport. There's something here > that I am missing, but I have indeed looked at a lot of code in the camel > components directory and as much documentation as I could find. > > On Tue, Jan 2, 2024 at 4:00 PM Claus Ibsen <claus.ib...@gmail.com> wrote: > >> Hi >> >> The mbean name you create is for a route, so it's a RouteMBean. >> >> You can use jconsole to look inside the running Camel test and see what >> mbeans there are etc. >> You can just add a thread sleep (long value) to keep the jvm running. >> >> Then find the right mbean you want to get and update your test code. >> >> Also take a look at the existing tests in camel-management etc. >> >> >> >> >> >> On Tue, Jan 2, 2024 at 6:53 PM Steve973 <steve...@gmail.com> wrote: >> >> > Hi, Claus. Yes, I have included camel-management as a test-scoped >> > dependency. >> > >> > On Tue, Jan 2, 2024 at 12:24 AM Claus Ibsen <claus.ib...@gmail.com> >> wrote: >> > >> > > Hi >> > > >> > > Have you added camel-management as a dependency. >> > > >> > > On Tue, Jan 2, 2024 at 2:15 AM Steve973 <steve...@gmail.com> wrote: >> > > >> > > > 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 >> > > > >> > > >> > > >> > > -- >> > > Claus Ibsen >> > > ----------------- >> > > @davsclaus >> > > Camel in Action 2: https://www.manning.com/ibsen2 >> > > >> > >> >> >> -- >> Claus Ibsen >> ----------------- >> @davsclaus >> Camel in Action 2: https://www.manning.com/ibsen2 >> >