package org.ourgrid.worker.communication.sender; import org.ourgrid.common.interfaces.management.WorkerManagementClient; import org.ourgrid.common.internal.SenderIF; import org.ourgrid.peer.PeerConstants; import org.ourgrid.worker.WorkerConstants; import org.ourgrid.worker.response.StatusChangedAllocatedForPeerResponseTO; import br.edu.ufcg.lsd.commune.container.ObjectDeployment; import br.edu.ufcg.lsd.commune.container.servicemanager.ServiceManager; import br.edu.ufcg.lsd.commune.identification.ServiceID; public class StatusChangedAllocatedForPeerSender implements SenderIF<StatusChangedAllocatedForPeerResponseTO> { public void execute(StatusChangedAllocatedForPeerResponseTO response, ServiceManager manager) { ServiceID clientID = ServiceID.parse(response.getClientAddress()); ServiceID wmClientID = new ServiceID(clientID.getContainerID(), PeerConstants.WORKER_MANAGEMENT_CLIENT_OBJECT_NAME); WorkerManagementClient client = (WorkerManagementClient) manager.getStub(wmClientID, WorkerManagementClient.class); ObjectDeployment objectDeployment = manager.getObjectDeployment(WorkerConstants.REMOTE_WORKER_MANAGEMENT); client.statusChangedAllocatedForPeer(objectDeployment.getDeploymentID().getServiceID(), response.getRemotePeerPubKey()); } }