Brooklyn

brooklyn.entity.rebind
[Java] Class PeriodicDeltaChangeListener

java.lang.Object
  brooklyn.entity.rebind.PeriodicDeltaChangeListener
All Implemented Interfaces:
ChangeListener

public class PeriodicDeltaChangeListener

A "simple" implementation that periodically persists all entities/locations/policies that have changed since the last periodic persistence. TODO A better implementation would look at a per-entity basis. When the entity was modified, then schedule a write for that entity in X milliseconds time (if not already scheduled). That would prevent hammering the persister when a bunch of entity attributes change (e.g. when the entity has just polled over JMX/http/etc). Such a scheduled-write approach would be similar to the Nagle buffering algorithm in TCP (see tcp_nodelay).

Authors:
aled


Method Summary
java.lang.Object PeriodicDeltaChangeListener(ExecutionManager executionManager, BrooklynMementoPersister persister, long periodMillis)

void onChanged(Entity entity)

void onChanged(Location location)

void onChanged(Policy policy)

void onManaged(Entity entity)

void onManaged(Location location)

void onUnmanaged(Entity entity)

void onUnmanaged(Location location)

void waitForPendingComplete(long timeout, java.util.concurrent.TimeUnit unit)

This method must only be used for testing.

 
Methods inherited from class java.lang.Object
java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()
 

Method Detail

PeriodicDeltaChangeListener

public java.lang.Object PeriodicDeltaChangeListener(ExecutionManager executionManager, BrooklynMementoPersister persister, long periodMillis)


onChanged

@Override
public void onChanged(Entity entity)


onChanged

@Override
public void onChanged(Location location)


onChanged

@Override
public void onChanged(Policy policy)


onManaged

@Override
public void onManaged(Entity entity)


onManaged

@Override
public void onManaged(Location location)


onUnmanaged

@Override
public void onUnmanaged(Entity entity)


onUnmanaged

@Override
public void onUnmanaged(Location location)


waitForPendingComplete

@VisibleForTesting
public void waitForPendingComplete(long timeout, java.util.concurrent.TimeUnit unit)
This method must only be used for testing. If required in production, then revisit implementation!


 

Brooklyn Multi-Cloud Application Management Platform
brooklyncentral.github.com. Apache License. © 2012.