/** * Processes a received ping for a client. * * @param proxyID The id of the client from which the ping was received */ public void receivedPing(ClientProxyMembershipID proxyID) { if (this._clientMonitor == null) { return; } if (logger.isTraceEnabled()) { logger.trace("ClientHealthMonitor: Received ping from client with member id {}", proxyID); } synchronized (_clientHeartbeatsLock) { if (!this._clientHeartbeats.containsKey(proxyID)) { registerClient(proxyID); } else { this._clientHeartbeats.put(proxyID, Long.valueOf(System.currentTimeMillis())); } } }
@Override protected boolean doHandShake(byte endpointType, int queueSize) { ClientHealthMonitor clientHealthMonitor = getAcceptor().getClientHealthMonitor(); clientHealthMonitor.registerClient(clientProxyMembershipID); clientHealthMonitor.addConnection(clientProxyMembershipID, this); return true; }
@Test public void testClientHealthMonitorRegistration() throws IOException { AcceptorImpl acceptorStub = mock(AcceptorImpl.class); ClientProtocolProcessor clientProtocolProcessor = mock(ClientProtocolProcessor.class); ServerConnection serverConnection = getServerConnection(clientProtocolProcessor, acceptorStub); ArgumentCaptor<ClientProxyMembershipID> registerCpmidArgumentCaptor = ArgumentCaptor.forClass(ClientProxyMembershipID.class); ArgumentCaptor<ClientProxyMembershipID> addConnectionCpmidArgumentCaptor = ArgumentCaptor.forClass(ClientProxyMembershipID.class); verify(clientHealthMonitorMock).addConnection(addConnectionCpmidArgumentCaptor.capture(), eq(serverConnection)); verify(clientHealthMonitorMock).registerClient(registerCpmidArgumentCaptor.capture()); assertEquals("identity(localhost<ec>:0,connection=1", registerCpmidArgumentCaptor.getValue().toString()); assertEquals("identity(localhost<ec>:0,connection=1", addConnectionCpmidArgumentCaptor.getValue().toString()); }
chm.registerClient(this.proxyId);