import java.util.ArrayList;
import java.util.List;
import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
+import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChange;
import org.opendaylight.mdsal.eos.common.api.GenericEntity;
-import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipChange;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
import org.opendaylight.yangtools.concepts.HierarchicalIdentifier;
import org.slf4j.Logger;
* Intermediate place-holder to catch user requests while asynchronous shutdown of previous incarnation of
* a {@link ClusterSingletonServiceGroup} finishes.
*/
-final class PlaceholderGroup<P extends HierarchicalIdentifier<P>, E extends GenericEntity<P>,
- C extends GenericEntityOwnershipChange<P, E>> extends ClusterSingletonServiceGroup<P, E, C> {
+final class PlaceholderGroup<P extends HierarchicalIdentifier<P>, E extends GenericEntity<P>>
+ extends ClusterSingletonServiceGroup<P, E> {
private static final Logger LOG = LoggerFactory.getLogger(PlaceholderGroup.class);
private final List<ClusterSingletonServiceRegistration> services = new ArrayList<>(0);
- private final ClusterSingletonServiceGroup<P, E, C> previous;
+ private final ClusterSingletonServiceGroup<P, E> previous;
private final ListenableFuture<?> closeFuture;
- private volatile ClusterSingletonServiceGroup<P, E, C> successor;
+ private volatile ClusterSingletonServiceGroup<P, E> successor;
- PlaceholderGroup(final ClusterSingletonServiceGroup<P, E, C> previous, final ListenableFuture<?> closeFuture) {
+ PlaceholderGroup(final ClusterSingletonServiceGroup<P, E> previous, final ListenableFuture<?> closeFuture) {
this.previous = requireNonNull(previous);
this.closeFuture = requireNonNull(closeFuture);
}
}
@Override
- void ownershipChanged(final C ownershipChange) {
+ void ownershipChanged(final EntityOwnershipChange<E> ownershipChange) {
// This really should not happen, but let's be defensive
- final ClusterSingletonServiceGroup<P, E, C> local = successor;
+ final var local = successor;
(local == null ? previous : local).ownershipChanged(ownershipChange);
}
@Override
ListenableFuture<?> closeClusterSingletonGroup() {
- final ClusterSingletonServiceGroup<P, E, C> local = successor;
+ final var local = successor;
return local == null ? closeFuture : local.closeClusterSingletonGroup();
}
return services;
}
- void setSuccessor(final ClusterSingletonServiceGroup<P, E, C> successor) {
+ void setSuccessor(final ClusterSingletonServiceGroup<P, E> successor) {
verifyNoSuccessor();
this.successor = verifyNotNull(successor);
LOG.debug("{}: successor set to {}", this, successor);