Package org.apache.sling.discovery

Examples of org.apache.sling.discovery.TopologyEvent


                        try {
                            Thread.sleep(sleepTime * 1000);
                        } catch ( final InterruptedException ie) {
                            Thread.currentThread().interrupt();
                        }
                        tel.handleTopologyEvent(new TopologyEvent(Type.TOPOLOGY_CHANGING, view, null));
                        final int changingTime = random.nextInt(20) + 3;
                        try {
                            Thread.sleep(changingTime * 1000);
                        } catch ( final InterruptedException ie) {
                            Thread.currentThread().interrupt();
                        }
                        tel.handleTopologyEvent(new TopologyEvent(Type.TOPOLOGY_CHANGED, view, view));
                    }
                    tel.getClass().getName();
                    finishedThreads.incrementAndGet();
                }
            });
View Full Code Here


        AssertingTopologyEventListener ada = new AssertingTopologyEventListener();
        ada.addExpected(Type.TOPOLOGY_INIT);
        instance.bindTopologyEventListener(ada);
        assertEquals(1, ada.getEvents().size());
        TopologyEvent initEvent = ada.getEvents().remove(0);
        assertNotNull(initEvent);

        assertEquals(initialClusterView.getId(), initEvent.getNewView()
                .getClusterViews().iterator().next().getId());
        assertEquals(initialClusterView.getInstances().get(0).getSlingId(),
                initEvent.getNewView().getLocalInstance().getSlingId());

        // hard assumption that the class we get is an
        // IsolatedInstanceDescription
        // this is because we dont have any established clusterview yet - hence
        // still entirely isolated
View Full Code Here

        synchronized (lock) {
            registeredServices = this.eventListeners;
            doUpdateProperties();

            TopologyViewImpl newView = (TopologyViewImpl) getTopology();
            TopologyEvent event = new TopologyEvent(Type.TOPOLOGY_INIT, null,
                    newView);
            for (final TopologyEventListener da : registeredServices) {
                sendTopologyEvent(da, event);
            }
            activated = true;
View Full Code Here

                    .toArray(new TopologyEventListener[currentList.size()]);
            activated = this.activated;
        }

        if (activated) {
            sendTopologyEvent(eventListener, new TopologyEvent(
                    Type.TOPOLOGY_INIT, null, getTopology()));
        }
    }
View Full Code Here

        }

        oldView.markOld();
        if (difference!=Type.TOPOLOGY_CHANGED) {
            for (final TopologyEventListener da : eventListeners) {
                sendTopologyEvent(da, new TopologyEvent(difference, oldView,
                        newView));
            }
        } else { // TOPOLOGY_CHANGED

          // send a TOPOLOGY_CHANGING first
            for (final TopologyEventListener da : eventListeners) {
                sendTopologyEvent(da, new TopologyEvent(Type.TOPOLOGY_CHANGING, oldView,
                        null));
            }

          if (config.getMinEventDelay()>0) {
                // then delay the sending of the next event
                logger.debug("handlePotentialTopologyChange: delaying event sending to avoid event flooding");

                if (runAfter(config.getMinEventDelay() /*seconds*/ , new Runnable() {

                    public void run() {
                        synchronized(lock) {
                          delayedEventPending = false;
                          logger.debug("handlePotentialTopologyChange: sending delayed event now");
                          if (!activated) {
                            logger.debug("handlePotentialTopologyChange: no longer activated. not sending delayed event");
                            return;
                          }
                            final TopologyViewImpl newView = (TopologyViewImpl) getTopology();
                            // irrespective of the difference, send the latest topology
                            // via a topology_changed event (since we already sent a changing)
                            for (final TopologyEventListener da : eventListeners) {
                                sendTopologyEvent(da, new TopologyEvent(Type.TOPOLOGY_CHANGED,
                                        DiscoveryServiceImpl.this.oldView, newView));
                            }
                            DiscoveryServiceImpl.this.oldView = newView;
                        }
                        if (heartbeatHandler!=null) {
                            // trigger a heartbeat 'now' to pass it on to the topology asap
                            heartbeatHandler.triggerHeartbeat();
                        }
                    }
                })) {
                  delayedEventPending = true;
                    logger.debug("handlePotentialTopologyChange: delaying of event triggered.");
                    return;
                } else {
                  logger.debug("handlePotentialTopologyChange: delaying did not work for some reason.");
                }
          }

          // otherwise, send the TOPOLOGY_CHANGED now
            for (final TopologyEventListener da : eventListeners) {
                sendTopologyEvent(da, new TopologyEvent(Type.TOPOLOGY_CHANGED, oldView,
                        newView));
            }
        }

        this.oldView = newView;
View Full Code Here

              logger.error("forcedShutdown: ignoring forced shutdown. No oldView available.");
              return;
          }
          logger.error("forcedShutdown: sending TOPOLOGY_CHANGING to all listeners");
            for (final TopologyEventListener da : eventListeners) {
                sendTopologyEvent(da, new TopologyEvent(Type.TOPOLOGY_CHANGING, oldView,
                        null));
            }
          logger.error("forcedShutdown: deactivating DiscoveryService.");
          // to make sure no further event is sent after this, flag this service as deactivated
            activated = false;
View Full Code Here

          }

        };
        }
        for(final TopologyEventListener da: registeredServices) {
          da.handleTopologyEvent(new TopologyEvent(Type.TOPOLOGY_INIT, null, topologyView));
        }
    }
View Full Code Here

                awares = this.listeners;
            }
        }
        if ( awares != null ) {
            for(final TopologyEventListener da : awares) {
                da.handleTopologyEvent(new TopologyEvent(Type.PROPERTIES_CHANGED, this.topologyView, this.topologyView));
            }
        }
    }
View Full Code Here

                awares = this.listeners;
            }
        }
        if ( inform && awares != null ) {
            for(final TopologyEventListener da : awares) {
                da.handleTopologyEvent(new TopologyEvent(Type.PROPERTIES_CHANGED, this.topologyView, this.topologyView));
            }
        }
    }
View Full Code Here

                inform = false;
            }
        }

        if ( inform ) {
          clusterAware.handleTopologyEvent(new TopologyEvent(Type.TOPOLOGY_INIT, null, topologyView));
        }
    }
View Full Code Here

TOP

Related Classes of org.apache.sling.discovery.TopologyEvent

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.