@Override public AdaptedConnectionRequest marshal(final ConnectionRequest cr) { final AdaptedConnectionRequest aCr = new AdaptedConnectionRequest(); if (cr != null) { aCr.setNodeIdentifier(cr.getProposedNodeIdentifier()); aCr.setDataFlow(cr.getDataFlow()); } return aCr; }
private ConnectionResponseMessage handleConnectionRequest(final ConnectionRequestMessage requestMessage, final Set<String> nodeIdentities) { final NodeIdentifier proposedIdentifier = requestMessage.getConnectionRequest().getProposedNodeIdentifier(); final NodeIdentifier withNodeIdentities = addNodeIdentities(proposedIdentifier, nodeIdentities); final DataFlow dataFlow = requestMessage.getConnectionRequest().getDataFlow(); final ConnectionRequest requestWithNodeIdentities = new ConnectionRequest(withNodeIdentities, dataFlow); // Resolve Node identifier. final NodeIdentifier resolvedNodeId = resolveNodeId(proposedIdentifier); if (isBlockedByFirewall(nodeIdentities)) { // if the socket address is not listed in the firewall, then return a null response logger.info("Firewall blocked connection request from node " + resolvedNodeId + " with Node Identities " + nodeIdentities); final ConnectionResponse response = ConnectionResponse.createBlockedByFirewallResponse(); final ConnectionResponseMessage responseMessage = new ConnectionResponseMessage(); responseMessage.setConnectionResponse(response); return responseMessage; } if (requireElection) { final DataFlow electedDataFlow = flowElection.castVote(dataFlow, withNodeIdentities); if (electedDataFlow == null) { logger.info("Received Connection Request from {}; responding with Flow Election In Progress message", withNodeIdentities); return createFlowElectionInProgressResponse(); } else { logger.info("Received Connection Request from {}; responding with DataFlow that was elected", withNodeIdentities); return createConnectionResponse(requestWithNodeIdentities, resolvedNodeId, electedDataFlow); } } logger.info("Received Connection Request from {}; responding with my DataFlow", withNodeIdentities); return createConnectionResponse(requestWithNodeIdentities, resolvedNodeId); }
@Override public AdaptedConnectionRequest marshal(final ConnectionRequest cr) { final AdaptedConnectionRequest aCr = new AdaptedConnectionRequest(); if (cr != null) { aCr.setNodeIdentifier(cr.getProposedNodeIdentifier()); aCr.setDataFlow(cr.getDataFlow()); } return aCr; }