use of com.hazelcast.partition.MigrationListener in project hazelcast by hazelcast.
the class ClientMigrationListenerTest method testRemoveMigrationListener_whenExistingRegistrationId.
@Test
public void testRemoveMigrationListener_whenExistingRegistrationId() {
HazelcastInstance instance = hazelcastFactory.newHazelcastInstance();
HazelcastInstance client = hazelcastFactory.newHazelcastClient();
PartitionService clientPartitionService = client.getPartitionService();
MigrationListener listener = mock(MigrationListener.class);
UUID registrationId = clientPartitionService.addMigrationListener(listener);
assertRegistrationsSizeEventually(instance, 1);
boolean removed = clientPartitionService.removeMigrationListener(registrationId);
assertRegistrationsSizeEventually(instance, 0);
assertTrue(removed);
HazelcastInstance hz2 = hazelcastFactory.newHazelcastInstance();
warmUpPartitions(instance, hz2);
verifyMigrationListenerNeverInvoked(listener);
}
use of com.hazelcast.partition.MigrationListener in project hazelcast by hazelcast.
the class AddMigrationListenerMessageTask method processInternal.
@Override
protected CompletableFuture<UUID> processInternal() {
IPartitionService partitionService = getService(getServiceName());
MigrationListener listener = createMigrationListener();
if (parameters) {
return newCompletedFuture(partitionService.addLocalMigrationListener(listener));
}
return partitionService.addMigrationListenerAsync(listener);
}
use of com.hazelcast.partition.MigrationListener in project hazelcast by hazelcast.
the class ClientMigrationListenerTest method testAddMigrationListener_whenListenerRegisteredTwice.
@Test
public void testAddMigrationListener_whenListenerRegisteredTwice() {
hazelcastFactory.newHazelcastInstance();
HazelcastInstance client = hazelcastFactory.newHazelcastClient();
PartitionService partitionService = client.getPartitionService();
MigrationListener listener = mock(MigrationListener.class);
UUID id1 = partitionService.addMigrationListener(listener);
UUID id2 = partitionService.addMigrationListener(listener);
assertNotEquals(id1, id2);
}
use of com.hazelcast.partition.MigrationListener in project hazelcast by hazelcast.
the class Node method initializeListeners.
@SuppressWarnings({ "checkstyle:npathcomplexity", "checkstyle:cyclomaticcomplexity", "checkstyle:methodlength" })
private void initializeListeners(Config config) {
for (final ListenerConfig listenerCfg : config.getListenerConfigs()) {
Object listener = listenerCfg.getImplementation();
if (listener == null) {
try {
listener = ClassLoaderUtil.newInstance(configClassLoader, listenerCfg.getClassName());
} catch (Exception e) {
logger.severe(e);
}
}
if (listener instanceof HazelcastInstanceAware) {
((HazelcastInstanceAware) listener).setHazelcastInstance(hazelcastInstance);
}
boolean known = false;
if (listener instanceof DistributedObjectListener) {
final ProxyServiceImpl proxyService = (ProxyServiceImpl) nodeEngine.getProxyService();
proxyService.addProxyListener((DistributedObjectListener) listener);
known = true;
}
if (listener instanceof MembershipListener) {
clusterService.addMembershipListener((MembershipListener) listener);
known = true;
}
if (listener instanceof MigrationListener) {
partitionService.addMigrationListener((MigrationListener) listener);
known = true;
}
if (listener instanceof PartitionLostListener) {
partitionService.addPartitionLostListener((PartitionLostListener) listener);
known = true;
}
if (listener instanceof LifecycleListener) {
hazelcastInstance.lifecycleService.addLifecycleListener((LifecycleListener) listener);
known = true;
}
if (listener instanceof ClientListener) {
String serviceName = ClientEngineImpl.SERVICE_NAME;
nodeEngine.getEventService().registerLocalListener(serviceName, serviceName, listener);
known = true;
}
if (listener instanceof MigrationInterceptor) {
partitionService.setMigrationInterceptor((MigrationInterceptor) listener);
known = true;
}
if (listener instanceof CPMembershipListener) {
hazelcastInstance.cpSubsystem.addMembershipListener((CPMembershipListener) listener);
known = true;
}
if (listener instanceof CPGroupAvailabilityListener) {
hazelcastInstance.cpSubsystem.addGroupAvailabilityListener((CPGroupAvailabilityListener) listener);
known = true;
}
if (nodeExtension.registerListener(listener)) {
known = true;
}
if (listener != null && !known) {
final String error = "Unknown listener type: " + listener.getClass();
Throwable t = new IllegalArgumentException(error);
logger.warning(error, t);
}
}
}
Aggregations