/** * Section 5.2.3, Page 95 * * Agent using ParallelBehaviour class to abort a task * in case it does not complete within a given timeout **/ import jade.core.behaviours.*; import jade.core.Agent; public class ParallelBehaviourAgent extends Agent { public void setup() { Behaviour task = new CyclicBehaviour() { public void action() { System.out.println("Operation TASK"); } }; ParallelBehaviour pb = new ParallelBehaviour(this, ParallelBehaviour.WHEN_ANY); pb.addSubBehaviour(task); pb.addSubBehaviour(new WakerBehaviour(this, 60000) { public void onWake() { System.out.println("timeout expired"); } }); addBehaviour(pb); } }