package org.ourgrid.broker.business.requester; import java.util.ArrayList; import java.util.List; import org.ourgrid.broker.business.dao.BrokerDAOFactory; import org.ourgrid.broker.business.dao.JobDAO; import org.ourgrid.broker.business.messages.BrokerControlMessages; import org.ourgrid.broker.request.AddJobRequestTO; import org.ourgrid.common.internal.IResponseTO; import org.ourgrid.common.internal.RequesterIF; import org.ourgrid.common.internal.response.LoggerResponseTO; /** * Add Job message executor. */ public class AddJobRequester implements RequesterIF<AddJobRequestTO> { /** * {@inheritDoc} */ public List<IResponseTO> execute(AddJobRequestTO request) { List<IResponseTO> responses = new ArrayList<IResponseTO>(); responses.add(new LoggerResponseTO("Trying to add a job.", LoggerResponseTO.INFO)); String senderPublicKey = request.getSenderPublicKey(); if (!request.isThisMyPublicKey()) { responses.add(new LoggerResponseTO(BrokerControlMessages.getUnknownSenderControllingBrokerMessage(senderPublicKey), LoggerResponseTO.WARN)); return responses; } if (!request.canComponentBeUsed()) { responses.add(new LoggerResponseTO(BrokerControlMessages.getComponentNotStartedMessage(), LoggerResponseTO.ERROR)); return responses; } int jobID = BrokerDAOFactory.getInstance().getJobCounterDAO().getJobCounter().nextJobId(); JobDAO jobDAO = BrokerDAOFactory.getInstance().getJobDAO(); jobDAO.setBrokerControlClientAddress(request.getBrokerControlClientAddress()); jobDAO.addJobSpec(jobID, request.getJobSpec()); jobDAO.addJob(jobID); jobDAO.getHeadScheduler().addJob(request.getJobSpec(), jobID, responses); return responses; } }