X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fentityownership%2Fselectionstrategy%2FEntityOwnerSelectionStrategyConfig.java;fp=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fentityownership%2Fselectionstrategy%2FEntityOwnerSelectionStrategyConfig.java;h=5a785fcc00b5610f42e6730f8334fddb0a0edf07;hb=bb1891e328feee08ccd29c96034e967f1eeccece;hp=c1ddab3c7d67aa351a38654351a93a34673e6d27;hpb=2f562353a2f92b4f53d23c3926522ad39d165dac;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/selectionstrategy/EntityOwnerSelectionStrategyConfig.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/selectionstrategy/EntityOwnerSelectionStrategyConfig.java index c1ddab3c7d..5a785fcc00 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/selectionstrategy/EntityOwnerSelectionStrategyConfig.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/selectionstrategy/EntityOwnerSelectionStrategyConfig.java @@ -30,7 +30,7 @@ public final class EntityOwnerSelectionStrategyConfig { return entityTypeToStrategyInfo.get(entityType) != null; } - public EntityOwnerSelectionStrategy createStrategy(final String entityType) { + public EntityOwnerSelectionStrategy createStrategy(String entityType, Map initialStatistics){ final EntityOwnerSelectionStrategy strategy; final EntityOwnerSelectionStrategy existingStrategy = entityTypeToOwnerSelectionStrategy.get(entityType); if(existingStrategy != null){ @@ -40,7 +40,7 @@ public final class EntityOwnerSelectionStrategyConfig { if(strategyInfo == null){ strategy = FirstCandidateSelectionStrategy.INSTANCE; } else { - strategy = strategyInfo.createStrategy(); + strategy = strategyInfo.createStrategy(initialStatistics); } entityTypeToOwnerSelectionStrategy.put(entityType, strategy); } @@ -58,6 +58,10 @@ public final class EntityOwnerSelectionStrategyConfig { * using it. */ @Deprecated + public void clearStrategies() { + entityTypeToOwnerSelectionStrategy.clear(); + } + private static final class StrategyInfo { private final Class strategyClass; private final long delay; @@ -67,9 +71,9 @@ public final class EntityOwnerSelectionStrategyConfig { this.delay = delay; } - public EntityOwnerSelectionStrategy createStrategy() { + public EntityOwnerSelectionStrategy createStrategy(Map initialStatistics){ try { - return strategyClass.getDeclaredConstructor(long.class).newInstance(delay); + return strategyClass.getDeclaredConstructor(long.class, Map.class).newInstance(delay, initialStatistics); } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { LOG.warn("could not create custom strategy", e); }