@Override public void resume() { super.resume(); executor = Executors.newSingleThreadScheduledExecutor(newThreadFactory()); executorTime = 0; executorQueued.set(false); }
@Override public void suspend() { super.suspend(); // TODO unsubscribe from everything? And resubscribe on resume? if (executor != null) executor.shutdownNow(); }
public AbstractPolicy(Map flags) { super(flags); policyType = new PolicyTypeImpl(getAdjunctType()); }
@Override public boolean isRunning() { return !isSuspended() && !isDestroyed(); }
@Override public void setEntity(EntityLocal entity) { Preconditions.checkArgument(entity instanceof Startable, "Restarter must take a Startable, not "+entity); super.setEntity(entity); subscribe(entity, getConfig(FAILURE_SENSOR_TO_MONITOR), new SensorEventListener<Object>() { @Override public void onEvent(SensorEvent<Object> event) { onDetectedFailure(event); } }); }
((AbstractPolicy)pol).setName(spec.getDisplayName()); ((AbstractPolicy)pol).setManagementContext(managementContext); Map<String, Object> config = ConfigBag.newInstance().putAll(spec.getFlags()).putAll(spec.getConfig()).getAllConfig(); ((AbstractPolicy)pol).configure(MutableMap.copyOf(config)); // TODO AbstractPolicy.configure modifies the map ((AbstractPolicy)pol).setConfig((ConfigKey)entry.getKey(), entry.getValue()); ((AbstractPolicy)pol).init();
@Override public String toString() { return Objects.toStringHelper(getClass()) .add("name", name) .add("running", isRunning()) .toString(); } }
public static void dumpInfo(Policy pol, Writer out, String currentIndentation, String tab) throws IOException { out.append(currentIndentation+pol.toString()+"\n"); for (ConfigKey<?> key : sortConfigKeys(pol.getPolicyType().getConfigKeys())) { Object val = ((AbstractPolicy)pol).getConfigMap().getRawConfig(key); if (!isTrivial(val)) { out.append(currentIndentation+tab+tab+key); out.append(" = "); if (isSecret(key.getName())) out.append("xxxxxxxx"); else out.append(""+val); out.append("\n"); } } out.flush(); }
@Override public boolean removePolicy(Policy policy) { ((AbstractPolicy)policy).destroy(); boolean changed = policies.remove(policy); if (changed) { getManagementSupport().getEntityChangeListener().onPoliciesChanged(); emit(AbstractEntity.POLICY_REMOVED, new PolicyDescriptor(policy)); } return changed; }
@Override public void setEntity(EntityLocal entity) { checkArgument(entity instanceof DynamicCluster, "Replacer must take a DynamicCluster, not %s", entity); Sensor<?> failureSensorToMonitor = checkNotNull(getConfig(FAILURE_SENSOR_TO_MONITOR), "failureSensorToMonitor"); super.setEntity(entity); subscribeToMembers((Group)entity, failureSensorToMonitor, new SensorEventListener<Object>() { @Override public void onEvent(SensorEvent<Object> event) { onDetectedFailure(event); } }); }
@Override public void setEntity(EntityLocal entity) { super.setEntity(entity); entity.subscribe(entity, sensor, listenerFromValueClosure(code)); } };
@Override public void suspend() { // TODO unsubscribe from everything? And resubscribe on resume? super.suspend(); if (executor != null) executor.shutdownNow(); executorQueued.set(false); }
@Override public void resume() { super.resume(); if (group != null) { subscribeToGroup(); } }
@Override public void setEntity(EntityLocal entity) { super.setEntity(entity); entity.subscribe(remoteEntity, remoteSensor, listenerFromValueClosure(code)); } };
@Override public void suspend() { // TODO unsubscribe from everything? And resubscribe on resume? super.suspend(); if (executor != null) executor.shutdownNow();; executorQueued.set(false); }
@Override public void resume() { super.resume(); executor = Executors.newSingleThreadScheduledExecutor(newThreadFactory()); executorTime = 0; executorQueued.set(false); }
@Override public void addPolicy(Policy policy) { policies.add((AbstractPolicy)policy); ((AbstractPolicy)policy).setEntity(this); getManagementSupport().getEntityChangeListener().onPoliciesChanged(); emit(AbstractEntity.POLICY_ADDED, new PolicyDescriptor(policy)); }
@Override public void suspend() { unsubscribeFromGroup(); super.suspend(); }
@Override public void resume() { super.resume(); executor = Executors.newSingleThreadScheduledExecutor(newThreadFactory()); }
@Override public void setEntity(EntityLocal entity) { super.setEntity(entity); if (getConfig(USE_SERVICE_STATE_RUNNING)) { subscribe(entity, Attributes.SERVICE_STATE, new SensorEventListener<Lifecycle>() { @Override public void onEvent(SensorEvent<Lifecycle> event) { onServiceState(event.getValue()); } }); } subscribe(entity, Startable.SERVICE_UP, new SensorEventListener<Boolean>() { @Override public void onEvent(SensorEvent<Boolean> event) { onServiceUp(event.getValue()); } }); onMemberAdded(); }