software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractControllerImpl.java [135:174]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
            Map<Entity,String> serverPoolTargets = Maps.newLinkedHashMap();
            for (Entity member : serverPool.getMembers()) {
                if (belongsInServerPool(member)) {
                    if (LOG.isTraceEnabled()) LOG.trace("Done {} checkEntity {}", this, member);
                    String address = getAddressOfEntity(member);
                    serverPoolTargets.put(member, address);
                }
            }

            LOG.info("Resetting {}, server pool targets {}", new Object[] {this, serverPoolTargets});
            sensors().set(SERVER_POOL_TARGETS, serverPoolTargets);
        }
    }
    
    protected void removeServerPoolMemberTrackingPolicy() {
        if (serverPoolMemberTrackerPolicy != null) {
            policies().remove(serverPoolMemberTrackerPolicy);
            serverPoolMemberTrackerPolicy = null;
        }
    }
    
    protected boolean hasServerPoolMemberTrackingPolicy() {
        if (serverPoolMemberTrackerPolicy != null) return true;

        // On rebind, might not have set the field yet
        for (Policy p: policies()) {
            if (p instanceof ServerPoolMemberTrackerPolicy) {
                LOG.info(this+" picking up "+p+" as the tracker (already set, often due to rebind)");
                serverPoolMemberTrackerPolicy = (ServerPoolMemberTrackerPolicy) p;
                return true;
            }
        }
        
        return false;
    }

    public static class ServerPoolMemberTrackerPolicy extends AbstractMembershipTrackingPolicy {
        @Override
        protected void onEntityEvent(EventType type, Entity entity) {
            defaultHighlightAction(type, entity);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



software/webapp/src/main/java/org/apache/brooklyn/entity/proxy/AbstractNonProvisionedControllerImpl.java [203:241]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        Map<Entity,String> serverPoolTargets = Maps.newLinkedHashMap();
        for (Entity member : serverPool.getMembers()) {
            if (belongsInServerPool(member)) {
                if (LOG.isTraceEnabled()) LOG.trace("Done {} checkEntity {}", this, member);
                String address = getAddressOfEntity(member);
                serverPoolTargets.put(member, address);
            }
        }

        LOG.info("Resetting {}, server pool targets {}", new Object[] {this, serverPoolTargets});
        sensors().set(SERVER_POOL_TARGETS, serverPoolTargets);
    }
    
    protected void removeServerPoolMemberTrackingPolicy() {
        if (serverPoolMemberTrackerPolicy != null) {
            policies().remove(serverPoolMemberTrackerPolicy);
            serverPoolMemberTrackerPolicy = null;
        }
    }
    
    protected boolean hasServerPoolMemberTrackingPolicy() {
        if (serverPoolMemberTrackerPolicy != null) return true;

        // On rebind, might not have set the field yet
        for (Policy p: policies()) {
            if (p instanceof ServerPoolMemberTrackerPolicy) {
                LOG.info(this+" picking up "+p+" as the tracker (already set, often due to rebind)");
                serverPoolMemberTrackerPolicy = (ServerPoolMemberTrackerPolicy) p;
                return true;
            }
        }
        
        return false;
    }

    public static class ServerPoolMemberTrackerPolicy extends AbstractMembershipTrackingPolicy {
        @Override
        protected void onEntityEvent(EventType type, Entity entity) {
            defaultHighlightAction(type, entity);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



