Details
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalRequestPlan.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalRequestPlan.java
index b1fdd25..7d37d87 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalRequestPlan.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalRequestPlan.java
@@ -42,6 +42,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import bdi4jade.belief.Predicate;
+import bdi4jade.belief.TransientPredicate;
import bdi4jade.core.BDIAgent;
import bdi4jade.core.Capability;
import bdi4jade.goal.BeliefGoal;
@@ -82,14 +83,9 @@ public class GoalRequestPlan extends DefaultPlan {
GoalResponse<?> response = (GoalResponse<?>) myAgent
.getContentManager().extractContent(reply);
- Predicate<?> predicate = requestDescription.capability
- .belief(response.getPredicate(),
- response.getValue());
-
- BeliefGoal goal = (BeliefGoal<?>) getGoal();
- goal.setOutputBelief(predicate);
- assert goal.isAchieved(requestDescription.capability
- .getBeliefBase());
+ Predicate<?> predicate = new TransientPredicate(
+ response.getPredicate(), response.getValue());
+ ((BeliefGoal) getGoal()).setOutputBelief(predicate);
if (requestDescription.subscribe) {
myAgent.addBehaviour(new ReceiveUpdatesBehavior(
@@ -177,9 +173,11 @@ public class GoalRequestPlan extends DefaultPlan {
}
long timeElapsed = System.currentTimeMillis() - requestTime;
if (answers >= requests || timeElapsed >= ANSWER_TIME_OUT) {
+ log.debug("Received answers: " + answers + " (of " + requests
+ + ")");
this.state = State.Selecting;
} else {
- log.info("Waiting for more answers...");
+ log.debug("Waiting for more answers...");
}
}
@@ -336,9 +334,9 @@ public class GoalRequestPlan extends DefaultPlan {
AchievingGoal, Ended, ReceivingResponses, Resquesting, Selecting;
}
- public static final int ANSWER_TIME_OUT = 60000;
+ public static final int ANSWER_TIME_OUT = 5000;
private static final Log log = LogFactory.getLog(GoalRequestPlan.class);
- public static final int MSG_TIME_OUT = 10000;
+ public static final int MSG_TIME_OUT = 1000;
private Map<GoalTemplate, RequestDescription> requestDescriptions;
public GoalRequestPlan() {
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalResponsePlan.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalResponsePlan.java
index 197dbd2..66bfc81 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalResponsePlan.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/GoalResponsePlan.java
@@ -68,8 +68,8 @@ public class GoalResponsePlan extends DefaultPlan {
private Capability partCapability;
private Predicate<?> predicate;
private GoalRequest<?> request;
- private State state;
private long responseTime;
+ private State state;
private void achieveBeliefGoal() throws Exception {
GoalEvent event = getGoalEvent();
@@ -237,25 +237,35 @@ public class GoalResponsePlan extends DefaultPlan {
}
}
- ACLMessage reply = beliefGoalMsg.createReply();
- reply.setPerformative(canAchieve ? ACLMessage.PROPOSE
- : ACLMessage.REFUSE);
- reply.setReplyWith("per" + responseTime);
+ if (canAchieve) {
+ ACLMessage reply = beliefGoalMsg.createReply();
+ reply.setPerformative(ACLMessage.PROPOSE);
+ reply.setReplyWith("per" + responseTime);
+ // TODO set proposal cost
+ Random r = new Random(System.currentTimeMillis());
+ GoalProposal proposal = new GoalProposal(r.nextDouble());
+ myAgent.getContentManager().fillContent(reply, proposal);
+ myAgent.send(reply);
- // TODO set proposal cost
- Random r = new Random(System.currentTimeMillis());
- GoalProposal proposal = new GoalProposal(r.nextDouble());
- myAgent.getContentManager().fillContent(reply, proposal);
+ log.debug("Agent " + myAgent.getLocalName() + " CAN achieve "
+ + goal);
- myAgent.send(reply);
+ this.mt = MessageTemplate.and(MessageTemplate
+ .MatchConversationId(reply.getConversationId()),
+ MessageTemplate.MatchInReplyTo(reply.getReplyWith()));
+ this.state = State.ReceivingReply;
+ } else {
+ ACLMessage reply = beliefGoalMsg.createReply();
+ reply.setPerformative(ACLMessage.REFUSE);
+ reply.setReplyWith("per" + responseTime);
+ myAgent.send(reply);
- log.debug("Agent " + myAgent.getLocalName() + " can achieve "
- + goal + ": " + canAchieve);
+ log.debug("Agent " + myAgent.getLocalName()
+ + " CANNOT achieve " + goal);
- this.mt = MessageTemplate.and(MessageTemplate
- .MatchConversationId(reply.getConversationId()),
- MessageTemplate.MatchInReplyTo(reply.getReplyWith()));
- this.state = State.ReceivingReply;
+ setEndState(EndState.SUCCESSFUL);
+ this.state = State.Ended;
+ }
}
@Parameter(direction = Direction.IN)
@@ -269,8 +279,8 @@ public class GoalResponsePlan extends DefaultPlan {
AchievingBeliefGoal, Ended, ReceivingReply, SendingResponse, SendingUpdates;
}
+ public static final int ANSWER_TIME_OUT = 5000;
private static final Log log = LogFactory.getLog(GoalResponsePlan.class);
- public static final int ANSWER_TIME_OUT = 60000;
public GoalResponsePlan() {
super(new MessageTemplate(new MatchExpression() {
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RouterAgentCapability.java b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RouterAgentCapability.java
index 1e3ecf9..8337217 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RouterAgentCapability.java
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/agent/RouterAgentCapability.java
@@ -60,18 +60,18 @@ public abstract class RouterAgentCapability extends Capability implements
protected void addBelief(Belief<?, ?> belief) {
getBeliefBase().addOrUpdateBelief(belief);
- log.debug("belief added or updated: " + belief);
+ log.info("belief added or updated: " + belief);
}
protected Predicate<?> belief(Object proposition, Boolean value) {
if (value == null) {
getBeliefBase().removeBelief(proposition);
- log.debug("belief(~" + proposition + "))");
+ log.info("belief(~" + proposition + "))");
return null;
} else {
Predicate<?> predicate = new TransientPredicate(proposition, value);
getBeliefBase().addOrUpdateBelief(predicate);
- log.debug("belief(" + (value ? "" : "not ") + proposition + ")");
+ log.info("belief(" + (value ? "" : "not ") + proposition + ")");
return predicate;
}
}
@@ -127,9 +127,9 @@ public abstract class RouterAgentCapability extends Capability implements
}
if (!getMyAgent().hasGoal(goal)) {
if (value == null) {
- log.debug("goal(~" + proposition + "))");
+ log.info("goal(~" + proposition + "))");
} else {
- log.debug("goal(" + (value ? "" : "not ") + proposition + "))");
+ log.info("goal(" + (value ? "" : "not ") + proposition + "))");
}
goalUpdateSet.generateGoal(goal, this, listener);
}
@@ -139,7 +139,7 @@ public abstract class RouterAgentCapability extends Capability implements
GoalListener listener) {
Goal goal = new BeliefPresentGoal(proposition);
if (!getMyAgent().hasGoal(goal)) {
- log.debug("goal(?" + proposition + "))");
+ log.info("goal(?" + proposition + "))");
goalUpdateSet.generateGoal(goal, this, listener);
}
}
@@ -157,7 +157,7 @@ public abstract class RouterAgentCapability extends Capability implements
protected void removeBelief(Belief<?, ?> belief) {
getBeliefBase().removeBelief(belief.getName());
- log.debug("belief removed: " + belief);
+ log.info("belief removed: " + belief);
}
@Override
diff --git a/network-resilience/src/br/ufrgs/inf/bdinetr/log4j.properties b/network-resilience/src/br/ufrgs/inf/bdinetr/log4j.properties
index 4e28233..ad39f61 100644
--- a/network-resilience/src/br/ufrgs/inf/bdinetr/log4j.properties
+++ b/network-resilience/src/br/ufrgs/inf/bdinetr/log4j.properties
@@ -30,5 +30,5 @@ log4j.logger.org.apache.struts2=FATAL
log4j.logger.org.springframework=FATAL
log4j.logger.bdi4jade=WARN
-log4j.logger.br.ufrgs.inf.bdinetr=DEBUG
+log4j.logger.br.ufrgs.inf.bdinetr=INFO