package org.ourgrid.peer.communication.sender; import org.ourgrid.common.interfaces.RemoteWorkerProvider; import org.ourgrid.common.interfaces.RemoteWorkerProviderClient; import org.ourgrid.common.internal.SenderIF; import org.ourgrid.peer.PeerConstants; import org.ourgrid.peer.response.RemoteHereIsWorkerResponseTO; import br.edu.ufcg.lsd.commune.container.servicemanager.ServiceManager; import br.edu.ufcg.lsd.commune.identification.ServiceID; public class RemoteHereIsWorkerSender implements SenderIF<RemoteHereIsWorkerResponseTO>{ public void execute(RemoteHereIsWorkerResponseTO response, ServiceManager manager) { RemoteWorkerProviderClient rwpc = (RemoteWorkerProviderClient) manager.getStub(ServiceID.parse(response.getRwpcAddress()), RemoteWorkerProviderClient.class); RemoteWorkerProvider rwp = (RemoteWorkerProvider) manager.getObjectDeployment( PeerConstants.REMOTE_WORKER_PROVIDER).getObject(); rwpc.hereIsWorker(rwp, ServiceID.parse(response.getRwmAddress()), response.getWorkerSpec()); } }