package org.ourgrid.broker.business.requester; import java.util.ArrayList; import java.util.List; import org.ourgrid.broker.BrokerConstants; import org.ourgrid.broker.business.dao.BrokerDAOFactory; import org.ourgrid.broker.business.dao.PeerEntry; import org.ourgrid.broker.business.messages.BrokerControlMessages; import org.ourgrid.broker.communication.receiver.LocalWorkerProviderClientReceiver; import org.ourgrid.broker.request.LWPDoNotifyRecoveryRequestTO; import org.ourgrid.broker.response.LoginResponseTO; import org.ourgrid.common.internal.IResponseTO; import org.ourgrid.common.internal.RequesterIF; import org.ourgrid.common.internal.response.DeployServiceResponseTO; import org.ourgrid.common.internal.response.LoggerResponseTO; public class LWPDoNotifyRecoveryRequester implements RequesterIF<LWPDoNotifyRecoveryRequestTO> { public List<IResponseTO> execute(LWPDoNotifyRecoveryRequestTO request) { List<IResponseTO> responses = new ArrayList<IResponseTO>(); PeerEntry peerEntry = BrokerDAOFactory.getInstance().getPeerDAO().getPeerEntry(request.getPeerAddress()); if (peerEntry == null) { responses.add(new LoggerResponseTO(BrokerControlMessages.getNoPeerWithSuchEntityIDMessage(request.getPeerID()), LoggerResponseTO.WARN)); return responses; } peerEntry.setAsNotLogged(null); if (!request.isClientDeployed()) { DeployServiceResponseTO to = new DeployServiceResponseTO(); to.setServiceClass(LocalWorkerProviderClientReceiver.class); to.setServiceName(BrokerConstants.LOCAL_WORKER_PROVIDER_CLIENT); responses.add(to); } LoginResponseTO to = new LoginResponseTO(); to.setStubAddress(request.getPeerAddress()); responses.add(to); responses.add(new LoggerResponseTO(BrokerControlMessages.getPeerIsUpMessage(request.getPeerID()), LoggerResponseTO.DEBUG)); return responses; } }