public synchronized void registerListener(final DiscoveryListener listener) { listeners.add(listener); if (!connectors.isEmpty()) { listener.connectorsChanged(getDiscoveryEntries()); } }
/** * This will start the DiscoveryRunnable and run it directly. * This is useful for a test process where we need this execution blocking a thread. */ public void internalRunning() throws Exception { endpoint.openClient(); started = true; DiscoveryRunnable runnable = new DiscoveryRunnable(); runnable.run(); }
private boolean checkExpiration() { boolean changed = false; long now = System.currentTimeMillis(); Iterator<Map.Entry<String, DiscoveryEntry>> iter = connectors.entrySet().iterator(); // Weed out any expired connectors while (iter.hasNext()) { Map.Entry<String, DiscoveryEntry> entry = iter.next(); if (entry.getValue().getLastUpdate() + timeout <= now) { if (logger.isTraceEnabled()) { logger.trace("Timed out node on discovery:" + entry.getValue()); } iter.remove(); changed = true; } } return changed; } }
@Override public synchronized void initialize() throws ActiveMQException { if (state == STATE.INITIALIZED) return; synchronized (stateGuard) { if (state == STATE.CLOSING) throw new ActiveMQIllegalStateException(); try { state = STATE.INITIALIZED; latch = new CountDownLatch(1); setThreadPools(); topology.setExecutor(new OrderedExecutor(threadPool)); instantiateLoadBalancingPolicy(); if (discoveryGroupConfiguration != null) { discoveryGroup = createDiscoveryGroup(nodeID, discoveryGroupConfiguration); discoveryGroup.registerListener(this); discoveryGroup.start(); } } catch (Exception e) { state = null; throw ActiveMQClientMessageBundle.BUNDLE.failedToInitialiseSessionFactory(e); } } }
newInitialconnectors[count++] = entry.getConnector(); if (ha && topology.getMember(entry.getNodeID()) == null) { TopologyMemberImpl member = new TopologyMemberImpl(entry.getNodeID(), null, null, entry.getConnector(), null); topology.updateMember(0, entry.getNodeID(), member);
private static DiscoveryGroup createDiscoveryGroup(String nodeID, DiscoveryGroupConfiguration config) throws Exception { DiscoveryGroup group = new DiscoveryGroup(nodeID, config.getName(), config.getRefreshTimeout(), config.getBroadcastEndpointFactory(), null); return group; }
synchronized (this) { try { discoveryGroup.stop(); } catch (Exception e) { ActiveMQClientLogger.LOGGER.failedToStopDiscovery(e);
boolean ok = discoveryGroup.waitForBroadcast(timeout);
@Override public synchronized void start() throws Exception { if (started) { return; } endpoint.openClient(); started = true; thread = new Thread(new DiscoveryRunnable(), "activemq-discovery-group-thread-" + name); thread.setDaemon(true); thread.start(); if (notificationService != null) { TypedProperties props = new TypedProperties(); props.putSimpleStringProperty(new SimpleString("name"), new SimpleString(name)); Notification notification = new Notification(nodeID, CoreNotificationType.DISCOVERY_GROUP_STARTED, props); notificationService.sendNotification(notification); } }
entriesRead[i] = new DiscoveryEntry(originatingNodeID, connector, System.currentTimeMillis());
private void callListeners() { for (DiscoveryListener listener : listeners) { try { listener.connectorsChanged(getDiscoveryEntries()); } catch (Throwable t) { // Catch it so exception doesn't prevent other listeners from running ActiveMQClientLogger.LOGGER.failedToCallListenerInDiscovery(t); } } }
private void callListeners() { for (DiscoveryListener listener : listeners) { try { listener.connectorsChanged(getDiscoveryEntries()); } catch (Throwable t) { // Catch it so exception doesn't prevent other listeners from running ActiveMQClientLogger.LOGGER.failedToCallListenerInDiscovery(t); } } }
public synchronized void registerListener(final DiscoveryListener listener) { listeners.add(listener); if (!connectors.isEmpty()) { listener.connectorsChanged(getDiscoveryEntries()); } }
public synchronized void registerListener(final DiscoveryListener listener) { listeners.add(listener); if (!connectors.isEmpty()) { listener.connectorsChanged(getDiscoveryEntries()); } }
public synchronized void registerListener(final DiscoveryListener listener) { listeners.add(listener); if (!connectors.isEmpty()) { listener.connectorsChanged(getDiscoveryEntries()); } }
private void callListeners() { for (DiscoveryListener listener : listeners) { try { listener.connectorsChanged(getDiscoveryEntries()); } catch (Throwable t) { // Catch it so exception doesn't prevent other listeners from running ActiveMQClientLogger.LOGGER.failedToCallListenerInDiscovery(t); } } }
private void callListeners() { for (DiscoveryListener listener : listeners) { try { listener.connectorsChanged(getDiscoveryEntries()); } catch (Throwable t) { // Catch it so exception doesn't prevent other listeners from running ActiveMQClientLogger.LOGGER.failedToCallListenerInDiscovery(t); } } }
private void callListeners() { for (DiscoveryListener listener : listeners) { try { listener.connectorsChanged(getDiscoveryEntries()); } catch (Throwable t) { // Catch it so exception doesn't prevent other listeners from running ActiveMQClientLogger.LOGGER.failedToCallListenerInDiscovery(t); } } }
private void callListeners() { for (DiscoveryListener listener : listeners) { try { listener.connectorsChanged(getDiscoveryEntries()); } catch (Throwable t) { // Catch it so exception doesn't prevent other listeners from running ActiveMQClientLogger.LOGGER.failedToCallListenerInDiscovery(t); } } }
private void callListeners() { for (DiscoveryListener listener : listeners) { try { listener.connectorsChanged(getDiscoveryEntries()); } catch (Throwable t) { // Catch it so exception doesn't prevent other listeners from running ActiveMQClientLogger.LOGGER.failedToCallListenerInDiscovery(t); } } }