package org.ourgrid.worker.communication.sender; import org.ourgrid.common.interfaces.management.WorkerManagement; import org.ourgrid.common.interfaces.management.WorkerManagementClient; import org.ourgrid.common.internal.SenderIF; import org.ourgrid.worker.WorkerConstants; import org.ourgrid.worker.response.WorkerLoginResponseTO; 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 WorkerLoginSender implements SenderIF<WorkerLoginResponseTO> { @Override public void execute(WorkerLoginResponseTO response, ServiceManager manager) { ServiceID peerServiceID = ServiceID.parse( response.getWorkerManagementClientAddress()); WorkerManagementClient client = (WorkerManagementClient) manager. getStub(peerServiceID, WorkerManagementClient.class); ObjectDeployment objectDeployment = manager.getObjectDeployment( WorkerConstants.LOCAL_WORKER_MANAGEMENT); WorkerManagement wm = (WorkerManagement) objectDeployment.getObject(); client.workerLogin(wm, response.getWorkerSpecification()); } }