package siebog.agents.test.load;
import javax.ejb.Remote;
import javax.ejb.Stateful;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import siebog.agents.Agent;
import siebog.agents.XjafAgent;
import siebog.interaction.ACLMessage;
import siebog.interaction.Performative;
@Stateful
@Remote(Agent.class)
public class LoadAgent extends XjafAgent {
private static final long serialVersionUID = 1L;
private static final Logger LOG = LoggerFactory.getLogger(LoadAgent.class);
private int total;
@Override
protected void onMessage(ACLMessage msg) {
LOG.info("{} processing a message on node {}.", myAid.getName(), getNodeName());
try {
Thread.sleep(3000);
} catch (InterruptedException ex) {
}
++total;
LOG.info("{} processed {} messages.", myAid.getName(), total);
reply(msg);
}
private void reply(ACLMessage msg) {
ACLMessage reply = msg.makeReply(Performative.INFORM);
reply.content = msg.content;
msm().post(reply);
}
}