Package org.apache.sling.discovery.impl.topology

Examples of org.apache.sling.discovery.impl.topology.TopologyViewImpl


        final TopologyEventListener[] registeredServices;
        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);
            }
View Full Code Here


        if (clusterViewService == null) {
            throw new IllegalStateException(
                    "DiscoveryService not yet initialized with IClusterViewService");
        }
        // create a new topology view
        final TopologyViewImpl topology = new TopologyViewImpl();

        final ClusterView localClusterView = clusterViewService.getClusterView();

        final List<InstanceDescription> localInstances = localClusterView.getInstances();
        topology.addInstances(localInstances);

        Collection<InstanceDescription> attachedInstances = announcementRegistry
                .listInstances(localClusterView);
        topology.addInstances(attachedInstances);

        // TODO: isCurrent() might be wrong!!!

        return topology;
    }
View Full Code Here

            return;
        }
        if (oldView == null) {
            throw new IllegalStateException("oldView must not be null");
        }
        TopologyViewImpl newView = (TopologyViewImpl) getTopology();
        TopologyViewImpl oldView = this.oldView;

        Type difference = newView.compareTopology(oldView);
        if (difference == null) {
            // then dont send any event then
            logger.debug("handlePotentialTopologyChange: identical views. not informing listeners");
            return;
        } else {
            if (logger.isDebugEnabled()) {
                logger.debug("handlePotentialTopologyChange: difference: {}, oldView={}, newView={}",
                        new Object[] {difference, oldView, newView});
            }
        }

        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));
View Full Code Here

TOP

Related Classes of org.apache.sling.discovery.impl.topology.TopologyViewImpl

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.