/** * Register the component as MBean. The implementation uses the known DynamicMBeanProvider * instances to get the MBean from the component. * * @see com.picocontainer.PicoVisitor#visitComponentAdapter(com.picocontainer.ComponentAdapter) */ @Override public void visitComponentAdapter(final ComponentAdapter componentAdapter) { super.visitComponentAdapter(componentAdapter); if (picoContainer == null) { throw new JMXRegistrationException( "Cannot start JMXVisitor traversal with a ComponentAdapter"); } if (!visited.contains(componentAdapter.getComponentKey())) { visited.add(componentAdapter.getComponentKey()); for (final DynamicMBeanProvider provider : mBeanProviders) { final JMXRegistrationInfo info = provider.provide(picoContainer, componentAdapter); if (info != null) { registeredInfo.add(register(info.getMBean(), info.getObjectName())); break; } } } }