/** * @deprecated since 0.9.0; see {@link BasicPolicySupport#addPolicy(PolicySpec)}; e.g. {@code policies().addPolicy(spec)} */ @Override @Deprecated public <T extends Policy> T addPolicy(PolicySpec<T> spec) { return policies().add(spec); }
/** * @deprecated since 0.9.0; see {@link BasicPolicySupport#addPolicy(Policy)}; e.g. {@code policies().addPolicy(policy)} */ @Override @Deprecated public void addPolicy(Policy policy) { policies().add(policy); }
/** * Start the tracker. * <p> * Subclasses should take care to synchronize on {@link #trackerLock}. */ protected void startTracker() { synchronized (trackerLock) { if (targetEntityProvider == null || !getManagementSupport().isDeployed()) { log.debug("Tracker for " + this + " not yet active: " + targetEntityProvider + " / " + getManagementContext()); return; } endTracker(); ImmutableSet.Builder<Sensor<?>> sensorsToTrack = ImmutableSet.<Sensor<?>>builder().add( HOSTNAME, ADDRESS, Attributes.MAIN_URI, WebAppService.ROOT_URL); // Don't subscribe to lifecycle events if entities will be included regardless of their status. if (Boolean.TRUE.equals(config().get(FILTER_FOR_RUNNING))) { sensorsToTrack.add(Attributes.SERVICE_STATE_ACTUAL); } log.debug("Initializing tracker for " + this + ", following " + targetEntityProvider); tracker = policies().add(PolicySpec.create(MemberTrackingPolicy.class) .displayName("GeoDNS targets tracker") .configure(AbstractMembershipTrackingPolicy.SENSORS_TO_TRACK, sensorsToTrack.build()) .configure(AbstractMembershipTrackingPolicy.GROUP, targetEntityProvider)); refreshGroupMembership(); } }
serverPoolMemberTrackerPolicy = policies().add(PolicySpec.create(ServerPoolMemberTrackerPolicy.class) .displayName("Controller targets tracker") .configure("group", serverPool)
serverPoolMemberTrackerPolicy = policies().add(PolicySpec.create(MemberTrackingPolicy.class) .displayName("Controller targets tracker") .configure("group", serverPool)); serverPoolMemberTrackerPolicy = policies().add(PolicySpec.create(ServerPoolMemberTrackerPolicy.class) .displayName("Controller targets tracker") .configure("group", serverPool)
urlMappingsMemberTrackerPolicy = policies().add(PolicySpec.create(UrlMappingsMemberTrackerPolicy.class) .configure("group", urlMappings));
protected void addHostTrackerPolicy() { Group hosts = getDockerHostCluster(); if (hosts != null) { MemberTrackingPolicy hostTrackerPolicy = policies().add(PolicySpec.create(MemberTrackingPolicy.class) .displayName("Docker host tracker") .configure("group", hosts)); LOG.info("Added policy {} to {}, during start", hostTrackerPolicy, this); } }
@Override public <T extends Policy> T add(PolicySpec<T> spec) { T policy = getManagementContext().getEntityManager().createPolicy(spec); add(policy); return policy; }
protected void connectSensors() { policies().add(PolicySpec.create(MemberTrackingPolicy.class) .displayName("EtcdCluster node tracker") .configure("sensorsToTrack", ImmutableSet.of(Attributes.HOSTNAME, EtcdNode.ETCD_NODE_INSTALLED)) .configure("notifyOnDuplicates", Boolean.TRUE) .configure("group", this)); }
private void addMembershipTrackerPolicy() { membershipTracker = policies().add(PolicySpec.create(MemberTrackingPolicy.class) .displayName(getDisplayName() + " membership tracker") .configure("group", this)); }