code: private void startPassiveMonitoring(final StatusAggregator aggregator) {
  
      	log.info("Starting application health monitoring in PASSIVE mode");
  
          final AtomicBoolean health = new AtomicBoolean();
          health.set(!Status.FAIL.equals(aggregator.getStatus()));
  
          aggregator.addStatusChangeListener(new StatusChangeListener() {
  
              @Override
              public void statusChanged(StatusChangeEvent event) {
                  boolean healthStatusChanged ;
                  boolean isHealthy;
                  synchronized (health) {
                      boolean currentOverallHealth = health.get();  //true iff all services are healthy
                      isHealthy = !Status.FAIL.equals(event.getNewStatus()); 				//service is healthy if not fail status
                      health.set(isHealthy);
                      healthStatusChanged = currentOverallHealth != isHealthy;
                  }
                  if (healthStatusChanged) {
                      strategy.update(isHealthy);
                  }
              }
          });
  		strategy.update(health.get());
  	}
docs: Add listeners to all status aggregators to be advised when status of the aggregator changes
  </p>
  Keep track of all current status.  if, after update, all status are healthy then overall status = healthy, otherwise = unhealthy.
  </p>
  advise strategy only if the overall status has changed