/** * Notifies the listeners of the add/remove * * @param jmxConnectorProviders * the {@link JMXConnectorProvider}s that changed * @param event * the type of change */ public void notify(List<JMXConnectorProvider> jmxConnectorProviders, EventType e) { this.event = e; Object[] copiedListeners = jmxTransportListeners.getListeners(); for (int i= 0; i < copiedListeners.length; i++) { listener = (IJMXTransportListener)copiedListeners[i]; for(JMXConnectorProvider connector : jmxConnectorProviders) { jmxConnectorProvider = connector; SafeRunner.run(this); } } listener = null; jmxConnectorProvider = null; }
private void loadTransportConfigurationElements(IConfigurationElement[] configElems) { for (int j = 0; j < configElems.length; j++) { final IConfigurationElement element = configElems[j]; final String elementName = element.getName(); String transport; if (elementName.equals("transport") //$NON-NLS-1$ && null != element.getAttribute("class") //$NON-NLS-1$ && null != (transport = element.getAttribute("protocol"))) //$NON-NLS-1$ { try { Object obj = element.createExecutableExtension("class"); //$NON-NLS-1$ if (obj instanceof JMXConnectorProvider) { transports.put(transport, (JMXConnectorProvider)obj); } } catch (CoreException e) { KarafWorkbenchActivator.getLogger().error(e.getMessage(), e); } } } final List<JMXConnectorProvider> transportsAdded = new ArrayList<JMXConnectorProvider>(); transportsAdded.addAll(transports.values()); getJMXTransportrNotifier().notify(transportsAdded, EventType.ADDED); }
@Override public JMXConnectorProvider getConnectorProvider(String key) { final JMXConnectorProvider connector = transports.get(key); // TODO: Add logging return connector; }
@Override public JMXConnector getJMXConnector(JMXServiceDescriptor serviceDescriptor) { try { final String transport = serviceDescriptor.getUrl().getProtocol(); final JMXConnectorProvider connectorProvider = getConnectorProvider(transport); final JMXServiceURL url = getJMXServiceURL( serviceDescriptor.getUrl().getHost(), serviceDescriptor.getUrl().getPort(), serviceDescriptor.getUrl().getProtocol(), serviceDescriptor.getDomain()); Map<String, Object> environment = null; if (serviceDescriptor.getUsername() != null) { environment = new HashMap<String, Object>(); String[] credentials = new String[] { serviceDescriptor.getUsername(), serviceDescriptor.getPassword() }; environment.put(JMXConnector.CREDENTIALS, credentials); } return connectorProvider.newJMXConnector(url, environment); } catch (Exception e) { KarafWorkbenchActivator.getLogger().error(e.getMessage(), e); return null; } }
public JMXTransportRegistry() { transports = Collections.synchronizedMap(new HashMap<String, JMXConnectorProvider>()); jmxTransportListeners = new ListenerList(); }
/** * Getter for a {@link JMXConnectorProvider} using its name as a retrieval * key * * @param name the name of the {@code JMXConnectorProvider} * * @return * the {@code JMXConnectorProvider} for the given name, or null if it * does not exist */ public JMXConnectorProvider getConnectorProvider(String name);