use of com.hazelcast.client.spi.EventHandler in project hazelcast by hazelcast.
the class ClientCacheProxy method registerCacheEntryListener.
@Override
public void registerCacheEntryListener(CacheEntryListenerConfiguration cacheEntryListenerConfiguration, boolean addToConfig) {
ensureOpen();
if (cacheEntryListenerConfiguration == null) {
throw new NullPointerException("CacheEntryListenerConfiguration can't be null");
}
CacheEventListenerAdaptor<K, V> adaptor = new CacheEventListenerAdaptor<K, V>(this, cacheEntryListenerConfiguration, clientContext.getSerializationService(), clientContext.getHazelcastInstance());
EventHandler handler = createHandler(adaptor);
String regId = clientContext.getListenerService().registerListener(createCacheEntryListenerCodec(), handler);
if (regId != null) {
if (addToConfig) {
cacheConfig.addCacheEntryListenerConfiguration(cacheEntryListenerConfiguration);
}
addListenerLocally(regId, cacheEntryListenerConfiguration);
if (addToConfig) {
updateCacheListenerConfigOnOtherNodes(cacheEntryListenerConfiguration, true);
}
}
}
use of com.hazelcast.client.spi.EventHandler in project hazelcast by hazelcast.
the class ClientReplicatedMapProxy method addNearCacheInvalidateListener.
private void addNearCacheInvalidateListener() {
try {
EventHandler handler = new ReplicatedMapAddNearCacheEventHandler();
invalidationListenerId = registerListener(createNearCacheInvalidationListenerCodec(), handler);
} catch (Exception e) {
ILogger logger = getContext().getLoggingService().getLogger(ClientReplicatedMapProxy.class);
logger.severe("-----------------\nNear Cache is not initialized!\n-----------------", e);
}
}
use of com.hazelcast.client.spi.EventHandler in project hazelcast by hazelcast.
the class ClientInvocationServiceSupport method registerInvocation.
private void registerInvocation(ClientInvocation clientInvocation) {
short protocolVersion = client.getProtocolVersion();
ClientMessage clientMessage = clientInvocation.getClientMessage();
clientMessage.setVersion(protocolVersion);
long correlationId = clientMessage.getCorrelationId();
callIdMap.put(correlationId, clientInvocation);
EventHandler handler = clientInvocation.getEventHandler();
if (handler != null) {
clientListenerService.addEventHandler(correlationId, handler);
}
}
use of com.hazelcast.client.spi.EventHandler in project hazelcast by hazelcast.
the class ClientHeartbeatTest method testAddingListenerToNewConnectionFailedBecauseOfHeartbeat.
@Test
public void testAddingListenerToNewConnectionFailedBecauseOfHeartbeat() throws Exception {
hazelcastFactory.newHazelcastInstance();
ClientConfig clientConfig = new ClientConfig();
clientConfig.setProperty(ClientProperty.HEARTBEAT_TIMEOUT.getName(), "4000");
clientConfig.setProperty(ClientProperty.HEARTBEAT_INTERVAL.getName(), "1000");
final HazelcastInstance client = hazelcastFactory.newHazelcastClient(clientConfig);
HazelcastClientInstanceImpl clientInstanceImpl = getHazelcastClientInstanceImpl(client);
final ClientListenerService clientListenerService = clientInstanceImpl.getListenerService();
final CountDownLatch blockIncoming = new CountDownLatch(1);
final CountDownLatch heartbeatStopped = new CountDownLatch(1);
final CountDownLatch onListenerRegister = new CountDownLatch(2);
clientInstanceImpl.getConnectionManager().addConnectionHeartbeatListener(new ConnectionHeartbeatListener() {
@Override
public void heartbeatResumed(Connection connection) {
}
@Override
public void heartbeatStopped(Connection connection) {
heartbeatStopped.countDown();
}
});
clientListenerService.registerListener(createPartitionLostListenerCodec(), new EventHandler() {
AtomicInteger count = new AtomicInteger(0);
@Override
public void handle(Object event) {
}
@Override
public void beforeListenerRegister() {
if (count.incrementAndGet() == 2) {
try {
blockIncoming.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Override
public void onListenerRegister() {
onListenerRegister.countDown();
}
});
HazelcastInstance hazelcastInstance2 = hazelcastFactory.newHazelcastInstance();
assertSizeEventually(2, clientInstanceImpl.getConnectionManager().getActiveConnections());
blockMessagesFromInstance(hazelcastInstance2, client);
assertOpenEventually(heartbeatStopped);
blockIncoming.countDown();
unblockMessagesFromInstance(hazelcastInstance2, client);
assertOpenEventually(onListenerRegister);
}
use of com.hazelcast.client.spi.EventHandler in project hazelcast by hazelcast.
the class ClientNonSmartListenerService method invoke.
private ClientEventRegistration invoke(ClientRegistrationKey registrationKey) throws Exception {
EventHandler handler = registrationKey.getHandler();
handler.beforeListenerRegister();
ClientMessage request = registrationKey.getCodec().encodeAddRequest(false);
ClientInvocation invocation = new ClientInvocation(client, request);
invocation.setEventHandler(handler);
ClientInvocationFuture future = invocation.invoke();
String registrationId = registrationKey.getCodec().decodeAddResponse(future.get());
handler.onListenerRegister();
Connection connection = future.getInvocation().getSendConnection();
return new ClientEventRegistration(registrationId, request.getCorrelationId(), connection, registrationKey.getCodec());
}
Aggregations