void recoverReliableEndpoint(Endpoint endpoint, Conduit conduit) { if (null == store || null == retransmissionQueue) { return; } String id = RMUtils.getEndpointIdentifier(endpoint, getBus()); Collection<SourceSequence> sss = store.getSourceSequences(id); Collection<DestinationSequence> dss = store.getDestinationSequences(id); if ((null == sss || 0 == sss.size()) && (null == dss || 0 == dss.size())) { return; } LOG.log(Level.FINE, "Number of source sequences: {0}", sss.size()); LOG.log(Level.FINE, "Number of destination sequences: {0}", dss.size()); LOG.log( Level.FINE, "Recovering {0} endpoint with id: {1}", new Object[] {null == conduit ? "client" : "server", id}); RMEndpoint rme = createReliableEndpoint(endpoint); rme.initialise(getConfiguration(), conduit, null, null, null); synchronized (reliableEndpoints) { reliableEndpoints.put(endpoint, rme); } for (SourceSequence ss : sss) { recoverSourceSequence(endpoint, conduit, rme.getSource(), ss); } for (DestinationSequence ds : dss) { reconverDestinationSequence(endpoint, conduit, rme.getDestination(), ds); } retransmissionQueue.start(); }
public void clientCreated(final Client client) { if (null == store || null == retransmissionQueue) { return; } String id = RMUtils.getEndpointIdentifier(client.getEndpoint(), getBus()); Collection<SourceSequence> sss = store.getSourceSequences(id /*, protocol*/); if (null == sss || 0 == sss.size()) { return; } LOG.log(Level.FINE, "Number of source sequences: {0}", sss.size()); recoverReliableEndpoint(client.getEndpoint(), client.getConduit() /*, protocol*/); }