|
From: <jom...@us...> - 2016-04-08 19:25:45
|
Revision: 1888
http://sourceforge.net/p/jason/svn/1888
Author: jomifred
Date: 2016-04-08 19:25:42 +0000 (Fri, 08 Apr 2016)
Log Message:
-----------
improvements in the ag-env API
move classe Config from jedit to util
Modified Paths:
--------------
trunk/applications/as-unit-test/src/jason/asunit/TestArch.java
trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java
trunk/examples/airport/cph/CPHAgArch.java
trunk/examples/auction/AuctioneerGUI.java
trunk/src/jason/architecture/AgArch.java
trunk/src/jason/architecture/AgArchInfraTier.java
trunk/src/jason/architecture/MindInspectorAgArch.java
trunk/src/jason/architecture/MindInspectorWeb.java
trunk/src/jason/asSemantics/Agent.java
trunk/src/jason/asSemantics/Circumstance.java
trunk/src/jason/asSemantics/TransitionSystem.java
trunk/src/jason/asSyntax/PlanLibrary.java
trunk/src/jason/asSyntax/Structure.java
trunk/src/jason/asSyntax/directives/Include.java
trunk/src/jason/bb/BeliefBase.java
trunk/src/jason/bb/ChainBB.java
trunk/src/jason/bb/DefaultBeliefBase.java
trunk/src/jason/bb/IndexedBB.java
trunk/src/jason/bb/JDBCPersistentBB.java
trunk/src/jason/bb/TextPersistentBB.java
trunk/src/jason/control/ExecutionControlGUI.java
trunk/src/jason/infra/centralised/CentralisedAgArch.java
trunk/src/jason/infra/centralised/CentralisedMASLauncherAnt.java
trunk/src/jason/infra/centralised/CreateJNLP.java
trunk/src/jason/infra/centralised/RunCentralisedMAS.java
trunk/src/jason/infra/jade/JadeMASLauncherAnt.java
trunk/src/jason/infra/jade/JasonBridgeArch.java
trunk/src/jason/infra/jade/RunJadeMAS.java
trunk/src/jason/infra/repl/ReplAgGUI.java
trunk/src/jason/jeditplugin/CheckVersion.java
trunk/src/jason/jeditplugin/JasonID.java
trunk/src/jason/jeditplugin/JasonIDPlugin.java
trunk/src/jason/jeditplugin/NewAgentGUI.java
trunk/src/jason/jeditplugin/NewEnvironmentGUI.java
trunk/src/jason/jeditplugin/NewInternalActionGUI.java
trunk/src/jason/jeditplugin/NewProjectGUI.java
trunk/src/jason/mas2j/MAS2JProject.java
trunk/src/jason/util/ConfigGUI.java
trunk/src/test/VarTermTest.java
Added Paths:
-----------
trunk/src/jason/util/Config.java
Removed Paths:
-------------
trunk/src/jason/jeditplugin/Config.java
Modified: trunk/applications/as-unit-test/src/jason/asunit/TestArch.java
===================================================================
--- trunk/applications/as-unit-test/src/jason/asunit/TestArch.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/applications/as-unit-test/src/jason/asunit/TestArch.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -1,5 +1,8 @@
package jason.asunit;
+import java.util.ArrayList;
+import java.util.List;
+
import jason.JasonException;
import jason.asSemantics.ActionExec;
import jason.asSyntax.Literal;
@@ -8,9 +11,6 @@
import jason.infra.centralised.CentralisedEnvironment;
import jason.infra.centralised.RunCentralisedMAS;
-import java.util.ArrayList;
-import java.util.List;
-
public class TestArch extends CentralisedAgArch implements Runnable {
private static int nameCount = 0;
@@ -77,13 +77,13 @@
}
@Override
- public void act(ActionExec action, List<ActionExec> feedback) {
+ public void act(ActionExec action) { //, List<ActionExec> feedback) {
actions.add(action.getActionTerm());
if (getEnvInfraTier() != null) {
- super.act(action, feedback); //env.scheduleAction(getAgName(), action.getActionTerm(), action);
+ super.act(action); //, feedback); //env.scheduleAction(getAgName(), action.getActionTerm(), action);
} else {
action.setResult(true);
- feedback.add(action);
+ actDone(action); //feedback.add(action);
}
}
Modified: trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java
===================================================================
--- trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -64,11 +64,11 @@
// this method get the agent actions
@Override
- public void act(ActionExec action, List<ActionExec> feedback) {
+ public void act(ActionExec action) {
getTS().getLogger().info("Agent " + getAgName() + " is doing: " + action.getActionTerm());
// set that the execution was ok
action.setResult(true);
- feedback.add(action);
+ actDone(action);
}
@Override
Modified: trunk/examples/airport/cph/CPHAgArch.java
===================================================================
--- trunk/examples/airport/cph/CPHAgArch.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/examples/airport/cph/CPHAgArch.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -24,11 +24,12 @@
}
}
- public void act(ActionExec action, List<ActionExec> feedback) {
+ @Override
+ public void act(ActionExec action) { //, List<ActionExec> feedback) {
// get the action to be performed
Structure taction = action.getActionTerm();
if (!taction.getFunctor().equals("disarm")) {
- super.act(action,feedback);
+ super.act(action);
} else {
System.out.println("A CPH is trying to disarm a bomb! Disabled by its architecture.");
}
Modified: trunk/examples/auction/AuctioneerGUI.java
===================================================================
--- trunk/examples/auction/AuctioneerGUI.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/examples/auction/AuctioneerGUI.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -40,16 +40,16 @@
}
@Override
- public void act(ActionExec action, List<ActionExec> feedback) {
+ public void act(ActionExec action) { //, List<ActionExec> feedback) {
if (action.getActionTerm().getFunctor().startsWith("show_winner")) {
jt.append("Winner of auction " + action.getActionTerm().getTerm(0));
jt.append(" is " + action.getActionTerm().getTerm(1) + "\n");
action.setResult(true);
- feedback.add(action);
+ actDone(action);
auction.setEnabled(true); // enable GUI button
} else {
- super.act(action,feedback); // send the action to the environment to be performed.
+ super.act(action); // send the action to the environment to be performed.
}
}
Modified: trunk/src/jason/architecture/AgArch.java
===================================================================
--- trunk/src/jason/architecture/AgArch.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/architecture/AgArch.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -22,20 +22,17 @@
package jason.architecture;
-import jason.JasonException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.logging.Level;
+
import jason.asSemantics.ActionExec;
import jason.asSemantics.Message;
import jason.asSemantics.TransitionSystem;
import jason.asSyntax.Literal;
import jason.infra.centralised.CentralisedAgArch;
-import jason.mas2j.ClassParameters;
import jason.runtime.RuntimeServicesInfraTier;
-import jason.runtime.Settings;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.logging.Level;
-
/**
* Base agent architecture class that defines the overall agent architecture;
* the AS interpreter is the reasoner (a kind of mind) within this
@@ -69,13 +66,6 @@
firstArch = this;
}
- /**
- * @deprecated for arch initialisation you should override the init() method.
- */
- public void initAg(String agClass, ClassParameters bbPars, String asSrc, Settings stts) throws JasonException {
- //Agent.create(this, agClass, bbPars, asSrc, stts);
- }
-
public void init() throws Exception {
}
@@ -131,7 +121,6 @@
try {
AgArch a = (AgArch) Class.forName(agArchClass).newInstance();
a.setTS(ts); // so a.init() can use TS
- a.initAg(null, null, null, null); // for compatibility reasons
insertAgArch(a);
a.init();
} catch (Exception e) {
@@ -200,12 +189,15 @@
* Executes the action <i>action</i> and, when finished, add it back in
* <i>feedback</i> actions.
*/
- // TODO: remove feedback parameter and use getTS().addFeedbackAction in a new method of this class to be executed when the action is finished (as actionExecuted of centralised)
- // for jason 2.0 to avoid backward compatibility problems
- public void act(ActionExec action, List<ActionExec> feedback) {
+ public void act(ActionExec action) {
if (successor != null)
- successor.act(action, feedback);
+ successor.act(action);
}
+
+ /** called to inform that the action execution is finished */
+ public void actDone(ActionExec act) {
+ getTS().getC().addFeedbackAction(act);
+ }
/** Returns true if the agent can enter in sleep mode. */
public boolean canSleep() {
Modified: trunk/src/jason/architecture/AgArchInfraTier.java
===================================================================
--- trunk/src/jason/architecture/AgArchInfraTier.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/architecture/AgArchInfraTier.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -45,8 +45,8 @@
/** Reads the agent's mailbox and adds messages into the agent's circumstance */
public void checkMail();
- /** Executes the action <i>action</i> and, when finished, add it back in <i>feedback</i> actions. */
- public void act(ActionExec action, List<ActionExec> feedback);
+ /** Executes the action <i>action</i> in the environment */
+ public void act(ActionExec action); //, List<ActionExec> feedback);
/** Returns true whether the agent can sleep according to the arch */
public boolean canSleep();
Modified: trunk/src/jason/architecture/MindInspectorAgArch.java
===================================================================
--- trunk/src/jason/architecture/MindInspectorAgArch.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/architecture/MindInspectorAgArch.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -22,16 +22,6 @@
package jason.architecture;
-import jason.NoValueException;
-import jason.asSyntax.ASSyntax;
-import jason.asSyntax.NumberTerm;
-import jason.asSyntax.Structure;
-import jason.control.ExecutionControlGUI;
-import jason.jeditplugin.Config;
-import jason.runtime.Settings;
-import jason.util.asl2html;
-import jason.util.asl2xml;
-
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
@@ -62,6 +52,16 @@
import org.w3c.dom.Document;
+import jason.NoValueException;
+import jason.asSyntax.ASSyntax;
+import jason.asSyntax.NumberTerm;
+import jason.asSyntax.Structure;
+import jason.control.ExecutionControlGUI;
+import jason.runtime.Settings;
+import jason.util.Config;
+import jason.util.asl2html;
+import jason.util.asl2xml;
+
/**
* ArArch that displays the mind state of the agent
*/
Modified: trunk/src/jason/architecture/MindInspectorWeb.java
===================================================================
--- trunk/src/jason/architecture/MindInspectorWeb.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/architecture/MindInspectorWeb.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -1,11 +1,5 @@
package jason.architecture;
-import jason.asSemantics.Agent;
-import jason.jeditplugin.Config;
-import jason.runtime.Settings;
-import jason.util.asl2html;
-import jason.util.asl2xml;
-
import java.io.IOException;
import java.io.OutputStream;
import java.io.StringWriter;
@@ -26,6 +20,12 @@
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
+import jason.asSemantics.Agent;
+import jason.runtime.Settings;
+import jason.util.Config;
+import jason.util.asl2html;
+import jason.util.asl2xml;
+
public class MindInspectorWeb {
private static MindInspectorWeb singleton = null;
Modified: trunk/src/jason/asSemantics/Agent.java
===================================================================
--- trunk/src/jason/asSemantics/Agent.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/asSemantics/Agent.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -23,35 +23,6 @@
package jason.asSemantics;
-import jason.JasonException;
-import jason.RevisionFailedException;
-import jason.architecture.AgArch;
-import jason.architecture.MindInspectorWeb;
-import jason.asSyntax.ASSyntax;
-import jason.asSyntax.ArithFunctionTerm;
-import jason.asSyntax.InternalActionLiteral;
-import jason.asSyntax.Literal;
-import jason.asSyntax.LogicalFormula;
-import jason.asSyntax.Plan;
-import jason.asSyntax.PlanLibrary;
-import jason.asSyntax.Rule;
-import jason.asSyntax.Term;
-import jason.asSyntax.Trigger;
-import jason.asSyntax.Trigger.TEOperator;
-import jason.asSyntax.Trigger.TEType;
-import jason.asSyntax.directives.FunctionRegister;
-import jason.asSyntax.directives.Include;
-import jason.asSyntax.parser.ParseException;
-import jason.asSyntax.parser.as2j;
-import jason.bb.BeliefBase;
-import jason.bb.DefaultBeliefBase;
-import jason.bb.StructureWrapperForLiteral;
-import jason.functions.Count;
-import jason.functions.RuleToFunction;
-import jason.jeditplugin.Config;
-import jason.mas2j.ClassParameters;
-import jason.runtime.Settings;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -82,8 +53,37 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import jason.JasonException;
+import jason.RevisionFailedException;
+import jason.architecture.AgArch;
+import jason.architecture.MindInspectorWeb;
+import jason.asSyntax.ASSyntax;
+import jason.asSyntax.ArithFunctionTerm;
+import jason.asSyntax.InternalActionLiteral;
+import jason.asSyntax.Literal;
+import jason.asSyntax.LogicalFormula;
+import jason.asSyntax.Plan;
+import jason.asSyntax.PlanLibrary;
+import jason.asSyntax.Rule;
+import jason.asSyntax.Term;
+import jason.asSyntax.Trigger;
+import jason.asSyntax.Trigger.TEOperator;
+import jason.asSyntax.Trigger.TEType;
+import jason.asSyntax.directives.FunctionRegister;
+import jason.asSyntax.directives.Include;
+import jason.asSyntax.parser.ParseException;
+import jason.asSyntax.parser.as2j;
+import jason.bb.BeliefBase;
+import jason.bb.DefaultBeliefBase;
+import jason.bb.StructureWrapperForLiteral;
+import jason.functions.Count;
+import jason.functions.RuleToFunction;
+import jason.mas2j.ClassParameters;
+import jason.runtime.Settings;
+import jason.util.Config;
+
/**
* The Agent class has the belief base and plan library of an
* AgentSpeak agent. It also implements the default selection
Modified: trunk/src/jason/asSemantics/Circumstance.java
===================================================================
--- trunk/src/jason/asSemantics/Circumstance.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/asSemantics/Circumstance.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -23,14 +23,7 @@
package jason.asSemantics;
-import jason.asSyntax.Literal;
-import jason.asSyntax.Trigger;
-import jason.asSyntax.Trigger.TEOperator;
-import jason.asSyntax.Trigger.TEType;
-import jason.infra.centralised.CentralisedAgArch;
-
import java.io.Serializable;
-import java.util.AbstractList;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -43,6 +36,12 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import jason.asSyntax.Literal;
+import jason.asSyntax.Trigger;
+import jason.asSyntax.Trigger.TEOperator;
+import jason.asSyntax.Trigger.TEType;
+import jason.infra.centralised.CentralisedAgArch;
+
public class Circumstance implements Serializable {
private static final long serialVersionUID = 1L;
@@ -550,6 +549,7 @@
public List<ActionExec> getFeedbackActions() {
return FA;
}
+ /*
public List<ActionExec> getFeedbackActionsWrapper() {
return new AbstractList<ActionExec>() {
public boolean add(ActionExec act) {
@@ -560,6 +560,7 @@
public ActionExec get(int index) { return null; }
};
}
+ */
public void addFeedbackAction(ActionExec act) {
if (act.getIntention() != null) {
Modified: trunk/src/jason/asSemantics/TransitionSystem.java
===================================================================
--- trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -23,6 +23,18 @@
package jason.asSemantics;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.TimeUnit;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
import jason.JasonException;
import jason.NoValueException;
import jason.RevisionFailedException;
@@ -54,25 +66,13 @@
import jason.asSyntax.parser.ParseException;
import jason.bb.BeliefBase;
import jason.infra.centralised.CentralisedAgArchAsynchronous;
-import jason.jeditplugin.Config;
import jason.runtime.Settings;
import jason.stdlib.add_nested_source;
import jason.stdlib.desire;
import jason.stdlib.fail_goal;
+import jason.util.Config;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
-import java.util.concurrent.TimeUnit;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
public class TransitionSystem {
public enum State { StartRC, SelEv, RelPl, ApplPl, SelAppl, FindOp, AddIM, ProcAct, SelInt, ExecInt, ClrInt }
@@ -1515,7 +1515,7 @@
if (action != null) {
C.addPendingAction(action);
// We need to send a wrapper for FA to the user so that add method then calls C.addFA (which control atomic things)
- getUserAgArch().act(action, C.getFeedbackActionsWrapper());
+ getUserAgArch().act(action); //, C.getFeedbackActionsWrapper());
}
} catch (Exception e) {
logger.log(Level.SEVERE, "*** ERROR in the transition system (act). "+conf.C+"\nCreating a new C!", e);
Modified: trunk/src/jason/asSyntax/PlanLibrary.java
===================================================================
--- trunk/src/jason/asSyntax/PlanLibrary.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/asSyntax/PlanLibrary.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -25,13 +25,6 @@
package jason.asSyntax;
-import jason.JasonException;
-import jason.asSyntax.Trigger.TEOperator;
-import jason.asSyntax.Trigger.TEType;
-import jason.asSyntax.parser.ParseException;
-import jason.bb.BeliefBase;
-import jason.jeditplugin.Config;
-
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -42,6 +35,13 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import jason.JasonException;
+import jason.asSyntax.Trigger.TEOperator;
+import jason.asSyntax.Trigger.TEType;
+import jason.asSyntax.parser.ParseException;
+import jason.bb.BeliefBase;
+import jason.util.Config;
+
/** Represents a set of plans used by an agent
@has - plans 0..* Plan
Modified: trunk/src/jason/asSyntax/Structure.java
===================================================================
--- trunk/src/jason/asSyntax/Structure.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/asSyntax/Structure.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -23,10 +23,6 @@
package jason.asSyntax;
-import jason.asSemantics.Unifier;
-import jason.asSyntax.parser.as2j;
-import jason.jeditplugin.Config;
-
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
@@ -39,6 +35,10 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import jason.asSemantics.Unifier;
+import jason.asSyntax.parser.as2j;
+import jason.util.Config;
+
/**
* Represents a structure: a functor with <i>n</i> arguments,
* e.g.: val(10,x(3)).
Modified: trunk/src/jason/asSyntax/directives/Include.java
===================================================================
--- trunk/src/jason/asSyntax/directives/Include.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/asSyntax/directives/Include.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -1,12 +1,5 @@
package jason.asSyntax.directives;
-import jason.asSemantics.Agent;
-import jason.asSyntax.Atom;
-import jason.asSyntax.Pred;
-import jason.asSyntax.StringTerm;
-import jason.asSyntax.parser.as2j;
-import jason.jeditplugin.Config;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -18,6 +11,13 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import jason.asSemantics.Agent;
+import jason.asSyntax.Atom;
+import jason.asSyntax.Pred;
+import jason.asSyntax.StringTerm;
+import jason.asSyntax.parser.as2j;
+import jason.util.Config;
+
/** Implementation of the <code>include</code> directive. */
public class Include extends DefaultDirective implements Directive {
Modified: trunk/src/jason/bb/BeliefBase.java
===================================================================
--- trunk/src/jason/bb/BeliefBase.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/bb/BeliefBase.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -23,6 +23,12 @@
package jason.bb;
+import java.util.Iterator;
+import java.util.Set;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
import jason.asSemantics.Agent;
import jason.asSemantics.Unifier;
import jason.asSyntax.Atom;
@@ -31,13 +37,7 @@
import jason.asSyntax.PredicateIndicator;
import jason.asSyntax.Term;
-import java.util.Iterator;
-import java.util.Set;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-
/**
* Common interface for all kinds of Jason Belief bases, even those
* customised by the user.
@@ -88,11 +88,12 @@
public Iterator<Literal> getAll();
/**
- * Returns an iterator for all literals in BB that match the functor/arity
+ * Returns an iterator for all literals in the default namespace of the BB that match the functor/arity
* of the parameter.<br>
*/
public Iterator<Literal> getCandidateBeliefs(PredicateIndicator pi);
-
+ public default Iterator<Literal> getCandidateBeliefs(Atom namespace, PredicateIndicator pi) { return null; }
+
/**
* Returns an iterator for all literals relevant for l's predicate
* indicator, if l is a var, returns all beliefs.<br>
@@ -127,14 +128,19 @@
/** Removes a literal from BB, returns true if succeed */
public boolean remove(Literal l);
- /** Removes all believes with some functor/arity */
+ /** Removes all believes with some functor/arity in the default namespace */
public boolean abolish(PredicateIndicator pi);
+ public default boolean abolish(Atom namespace, PredicateIndicator pi) { return false; }
/** Gets the BB as XML */
public Element getAsDOM(Document document);
public BeliefBase clone();
+ Object lock = new Object();
+
/** Gets a lock for the BB */
- public Object getLock();
+ public default Object getLock() {
+ return lock;
+ }
}
Modified: trunk/src/jason/bb/ChainBB.java
===================================================================
--- trunk/src/jason/bb/ChainBB.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/bb/ChainBB.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -90,10 +90,4 @@
}
return r;
}
-
- public final Object lockBB = new Object();
-
- public Object getLock() {
- return lockBB;
- }
}
Modified: trunk/src/jason/bb/DefaultBeliefBase.java
===================================================================
--- trunk/src/jason/bb/DefaultBeliefBase.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/bb/DefaultBeliefBase.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -72,12 +72,6 @@
}
}
- public final Object lockBB = new Object();
-
- public Object getLock() {
- return lockBB;
- }
-
public Set<Atom> getNameSpaces() {
return nameSpaces.keySet();
}
@@ -269,7 +263,10 @@
}
public boolean abolish(PredicateIndicator pi) {
- BelEntry entry = belsMapDefaultNS.remove(pi); // TODO: consider other NS (?) this method is not used by jason
+ return abolish(Literal.DefaultNS, pi);
+ }
+ public boolean abolish(Atom namespace, PredicateIndicator pi) {
+ BelEntry entry = nameSpaces.get(namespace).remove(pi);
if (entry != null) {
size -= entry.size();
@@ -301,14 +298,16 @@
}
public Iterator<Literal> getCandidateBeliefs(PredicateIndicator pi) {
- BelEntry entry = belsMapDefaultNS.get(pi); // TODO: consider other NS ? this method is not used by jason
+ return getCandidateBeliefs(Literal.DefaultNS, pi);
+ }
+ public Iterator<Literal> getCandidateBeliefs(Atom namespace, PredicateIndicator pi) {
+ BelEntry entry = nameSpaces.get(namespace).get(pi);
if (entry != null)
- //return Collections.unmodifiableList(entry.list).iterator();
return entry.list.iterator();
else
return null;
}
-
+
public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u) {
if (l.isVar()) {
// all bels are relevant
Modified: trunk/src/jason/bb/IndexedBB.java
===================================================================
--- trunk/src/jason/bb/IndexedBB.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/bb/IndexedBB.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -98,10 +98,4 @@
return nbb;
}
- public final Object lockBB = new Object();
-
- public Object getLock() {
- return lockBB;
- }
-
}
Modified: trunk/src/jason/bb/JDBCPersistentBB.java
===================================================================
--- trunk/src/jason/bb/JDBCPersistentBB.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/bb/JDBCPersistentBB.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -1,22 +1,6 @@
package jason.bb;
import static jason.asSyntax.ASSyntax.createNumber;
-import jason.asSemantics.Agent;
-import jason.asSemantics.Unifier;
-import jason.asSyntax.ASSyntax;
-import jason.asSyntax.ListTerm;
-import jason.asSyntax.ListTermImpl;
-import jason.asSyntax.Literal;
-import jason.asSyntax.LiteralImpl;
-import jason.asSyntax.NumberTerm;
-import jason.asSyntax.NumberTermImpl;
-import jason.asSyntax.PredicateIndicator;
-import jason.asSyntax.StringTerm;
-import jason.asSyntax.StringTermImpl;
-import jason.asSyntax.Structure;
-import jason.asSyntax.Term;
-import jason.asSyntax.parser.ParseException;
-import jason.asSyntax.parser.TokenMgrError;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -36,6 +20,23 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import jason.asSemantics.Agent;
+import jason.asSemantics.Unifier;
+import jason.asSyntax.ASSyntax;
+import jason.asSyntax.ListTerm;
+import jason.asSyntax.ListTermImpl;
+import jason.asSyntax.Literal;
+import jason.asSyntax.LiteralImpl;
+import jason.asSyntax.NumberTerm;
+import jason.asSyntax.NumberTermImpl;
+import jason.asSyntax.PredicateIndicator;
+import jason.asSyntax.StringTerm;
+import jason.asSyntax.StringTermImpl;
+import jason.asSyntax.Structure;
+import jason.asSyntax.Term;
+import jason.asSyntax.parser.ParseException;
+import jason.asSyntax.parser.TokenMgrError;
+
/**
Implementation of BB that stores some beliefs in a relational data base.
@@ -88,6 +89,7 @@
public class JDBCPersistentBB extends ChainBBAdapter {
private static Logger logger = Logger.getLogger(JDBCPersistentBB.class.getName());
+ // TODO: manage namespace
static final String COL_PREFIX = "term";
static final String COL_NEG = "j_negated";
static final String COL_ANNOT = "j_annots";
@@ -115,7 +117,7 @@
public void init(Agent ag, String[] args) {
try {
agentName = ag.getTS().getUserAgArch().getAgName();
- } catch (Exception _) {
+ } catch (Exception e) {
logger.warning("Can not get the agent name!");
agentName = "none";
}
@@ -713,10 +715,4 @@
}
return null;
}
-
- public final Object lockBB = new Object();
-
- public Object getLock() {
- return lockBB;
- }
}
Modified: trunk/src/jason/bb/TextPersistentBB.java
===================================================================
--- trunk/src/jason/bb/TextPersistentBB.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/bb/TextPersistentBB.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -1,14 +1,14 @@
package jason.bb;
-import jason.asSemantics.Agent;
-import jason.asSyntax.Literal;
-
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
+import jason.asSemantics.Agent;
+import jason.asSyntax.Literal;
+
/**
* Implementation of BB that stores the agent BB in text files. This
* implementation is very simple: when the agent starts, load the
@@ -56,11 +56,4 @@
}
nextBB.stop();
}
-
- public final Object lockBB = new Object();
-
- public Object getLock() {
- return lockBB;
- }
-
}
Modified: trunk/src/jason/control/ExecutionControlGUI.java
===================================================================
--- trunk/src/jason/control/ExecutionControlGUI.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/control/ExecutionControlGUI.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -23,12 +23,6 @@
package jason.control;
-import jason.infra.centralised.RunCentralisedMAS;
-import jason.jeditplugin.Config;
-import jason.util.asl2html;
-import jason.util.asl2tex;
-import jason.util.asl2xml;
-
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
@@ -74,6 +68,12 @@
import org.w3c.dom.Document;
+import jason.infra.centralised.RunCentralisedMAS;
+import jason.util.Config;
+import jason.util.asl2html;
+import jason.util.asl2tex;
+import jason.util.asl2xml;
+
public class ExecutionControlGUI extends ExecutionControl {
String currentAgState = "";
Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java
===================================================================
--- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -214,35 +214,18 @@
i++;
}
- /* TODO execute 1 deed from each intention
- * - use -1 as a parameter for number of cycles
- * - make a clone of the intentions and execute one by one (careful with concurrent access)
- * - careful when intentions are removed/suspended
- * */
+ i = 0;
+ int ca = cyclesAct;
+ if (cyclesAct == 9999)
+ ca = ts.getC().getIntentions().size();
- i = 0;
- if (cyclesAct == 9999) { //TODO adjust parameter for executing one deed from each intention
-
- while (running && i < ts.getC().getIntentions().size()) {
-
- //System.out.println("# Executing one deed from each intention #" + i + " -> " + getTS().getC().getIntentions().size());
-
- if (!ts.act()) {
- return false;
- } else if (ts.canSleepAct()) {
- break;
- }
- i++;
+ while (running && i < ca) {
+ if (!ts.act()) {
+ return false;
+ } else if (ts.canSleepAct()) {
+ break;
}
- } else {
- while (running && i < cyclesAct) {
- if (!ts.act()) {
- return false;
- } else if (ts.canSleepAct()) {
- break;
- }
- i++;
- }
+ i++;
}
return true;
@@ -360,7 +343,8 @@
}
/** called by the TS to ask the execution of an action in the environment */
- public void act(ActionExec action, List<ActionExec> feedback) {
+ @Override
+ public void act(ActionExec action) {
if (logger.isLoggable(Level.FINE)) logger.info("doing: " + action.getActionTerm());
if (isRunning() && infraEnv != null)
infraEnv.act(getAgName(), action);
Modified: trunk/src/jason/infra/centralised/CentralisedMASLauncherAnt.java
===================================================================
--- trunk/src/jason/infra/centralised/CentralisedMASLauncherAnt.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/infra/centralised/CentralisedMASLauncherAnt.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -1,10 +1,5 @@
package jason.infra.centralised;
-import jason.jeditplugin.Config;
-import jason.jeditplugin.MASLauncherInfraTier;
-import jason.jeditplugin.RunProjectListener;
-import jason.mas2j.MAS2JProject;
-
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
@@ -13,6 +8,11 @@
import java.text.SimpleDateFormat;
import java.util.Date;
+import jason.jeditplugin.MASLauncherInfraTier;
+import jason.jeditplugin.RunProjectListener;
+import jason.mas2j.MAS2JProject;
+import jason.util.Config;
+
/**
* Write the Ant script to run the MAS in centralised infrastructure and
* start this script.
Modified: trunk/src/jason/infra/centralised/CreateJNLP.java
===================================================================
--- trunk/src/jason/infra/centralised/CreateJNLP.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/infra/centralised/CreateJNLP.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -1,10 +1,10 @@
package jason.infra.centralised;
-import jason.jeditplugin.Config;
-
import java.io.File;
import java.io.PrintWriter;
+import jason.util.Config;
+
/** creates a JNLP file for a project */
public class CreateJNLP {
public static void main(String[] args) {
Modified: trunk/src/jason/infra/centralised/RunCentralisedMAS.java
===================================================================
--- trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -23,25 +23,6 @@
package jason.infra.centralised;
-import jason.JasonException;
-import jason.asSemantics.Agent;
-import jason.asSyntax.directives.DirectiveProcessor;
-import jason.asSyntax.directives.Include;
-import jason.bb.DefaultBeliefBase;
-import jason.control.ExecutionControlGUI;
-import jason.infra.components.CircumstanceListenerComponents;
-import jason.infra.repl.ReplAgGUI;
-import jason.jeditplugin.Config;
-import jason.mas2j.AgentParameters;
-import jason.mas2j.ClassParameters;
-import jason.mas2j.MAS2JProject;
-import jason.mas2j.parser.ParseException;
-import jason.runtime.MASConsoleGUI;
-import jason.runtime.MASConsoleLogFormatter;
-import jason.runtime.MASConsoleLogHandler;
-import jason.runtime.RuntimeServicesInfraTier;
-import jason.runtime.Settings;
-
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -74,6 +55,25 @@
import javax.swing.JTextArea;
import javax.swing.JTextField;
+import jason.JasonException;
+import jason.asSemantics.Agent;
+import jason.asSyntax.directives.DirectiveProcessor;
+import jason.asSyntax.directives.Include;
+import jason.bb.DefaultBeliefBase;
+import jason.control.ExecutionControlGUI;
+import jason.infra.components.CircumstanceListenerComponents;
+import jason.infra.repl.ReplAgGUI;
+import jason.mas2j.AgentParameters;
+import jason.mas2j.ClassParameters;
+import jason.mas2j.MAS2JProject;
+import jason.mas2j.parser.ParseException;
+import jason.runtime.MASConsoleGUI;
+import jason.runtime.MASConsoleLogFormatter;
+import jason.runtime.MASConsoleLogHandler;
+import jason.runtime.RuntimeServicesInfraTier;
+import jason.runtime.Settings;
+import jason.util.Config;
+
/**
* Runs MASProject using centralised infrastructure.
*/
@@ -719,7 +719,6 @@
}
}
- //TODO here creates one thread for each agent
/** creates one thread per agent */
private void createAgsThreads() {
@@ -736,7 +735,7 @@
cyclesSense = cyclesDeliberate = cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(1));
}
- logger.info("Creating a threaded agents." + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct);
+ //logger.info("Creating a threaded agents." + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct);
}
for (CentralisedAgArch ag : ags.values()) {
Modified: trunk/src/jason/infra/jade/JadeMASLauncherAnt.java
===================================================================
--- trunk/src/jason/infra/jade/JadeMASLauncherAnt.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/infra/jade/JadeMASLauncherAnt.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -1,14 +1,5 @@
package jason.infra.jade;
-import jason.asSyntax.ASSyntax;
-import jason.asSyntax.Literal;
-import jason.asSyntax.StringTerm;
-import jason.asSyntax.parser.ParseException;
-import jason.infra.centralised.CentralisedMASLauncherAnt;
-import jason.jeditplugin.Config;
-import jason.jeditplugin.MASLauncherInfraTier;
-import jason.mas2j.AgentParameters;
-
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
@@ -19,6 +10,15 @@
import java.util.Iterator;
import java.util.Set;
+import jason.asSyntax.ASSyntax;
+import jason.asSyntax.Literal;
+import jason.asSyntax.StringTerm;
+import jason.asSyntax.parser.ParseException;
+import jason.infra.centralised.CentralisedMASLauncherAnt;
+import jason.jeditplugin.MASLauncherInfraTier;
+import jason.mas2j.AgentParameters;
+import jason.util.Config;
+
/**
* Creates the script build.xml to launch the MAS using JADE.
*/
Modified: trunk/src/jason/infra/jade/JasonBridgeArch.java
===================================================================
--- trunk/src/jason/infra/jade/JasonBridgeArch.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/infra/jade/JasonBridgeArch.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -184,7 +184,7 @@
@Override
- public void act(ActionExec action, List<ActionExec> feedback) {
+ public void act(ActionExec action) { //, List<ActionExec> feedback) {
if (!isRunning()) return;
if (getEnvironmentAg() == null) return;
@@ -244,7 +244,7 @@
} else {
a.setResult(false);
}
- getTS().getC().addFeedbackAction(a);
+ actDone(a);
} else {
logger.log(Level.SEVERE, "Error: received feedback for an Action that is not pending. The message is "+m);
}
Modified: trunk/src/jason/infra/jade/RunJadeMAS.java
===================================================================
--- trunk/src/jason/infra/jade/RunJadeMAS.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/infra/jade/RunJadeMAS.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -23,6 +23,20 @@
package jason.infra.jade;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Vector;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+
import jade.BootProfileImpl;
import jade.core.Profile;
import jade.core.ProfileImpl;
@@ -39,26 +53,12 @@
import jason.asSyntax.directives.Include;
import jason.control.ExecutionControlGUI;
import jason.infra.centralised.RunCentralisedMAS;
-import jason.jeditplugin.Config;
import jason.mas2j.AgentParameters;
import jason.mas2j.ClassParameters;
import jason.runtime.MASConsoleGUI;
+import jason.util.Config;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Vector;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
-
-
/**
* Runs MASProject using JADE infrastructure.
*
Modified: trunk/src/jason/infra/repl/ReplAgGUI.java
===================================================================
--- trunk/src/jason/infra/repl/ReplAgGUI.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/infra/repl/ReplAgGUI.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -127,7 +127,6 @@
mindPanel.setText(sMind); // show the HTML in the screen
lastMind = sMind;
} catch (Exception e) {
- // TODO Auto-generated catch block
e.printStackTrace();
}
}*/
Modified: trunk/src/jason/jeditplugin/CheckVersion.java
===================================================================
--- trunk/src/jason/jeditplugin/CheckVersion.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/jeditplugin/CheckVersion.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -16,6 +16,8 @@
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
+import jason.util.Config;
+
public class CheckVersion extends Thread {
public static final String JasonSite = "http://jason.sf.net";
Deleted: trunk/src/jason/jeditplugin/Config.java
===================================================================
--- trunk/src/jason/jeditplugin/Config.java 2016-04-07 16:21:43 UTC (rev 1887)
+++ trunk/src/jason/jeditplugin/Config.java 2016-04-08 19:25:42 UTC (rev 1888)
@@ -1,765 +0,0 @@
-//----------------------------------------------------------------------------
-// Copyright (C) 2003 Rafael H. Bordini, Jomi F. Hubner, et al.
-//
-// This library is free software; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public
-// License as published by the Free Software Foundation; either
-// version 2.1 of the License, or (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-//
-// To contact the authors:
-// http://www.inf.ufrgs.br/~bordini
-// http://www.das.ufsc.br/~jomi
-//
-//----------------------------------------------------------------------------
-
-package jason.jeditplugin;
-
-import jason.asSemantics.Message;
-import jason.asSemantics.TransitionSystem;
-import jason.infra.centralised.CentralisedFactory;
-import jason.infra.jade.JadeFactory;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-import java.util.StringTokenizer;
-
-/**
- * Jason configuration (used by JasonID to generate the project's scripts)
- *
- * @author jomi
- */
-public class Config extends Properties {
-
- private static final long serialVersionUID = 1L;
-
- /** path to jason.jar */
- public static final String JASON_JAR = "jasonJar";
-
- /** path to ant home (jar directory) */
- public static final String ANT_LIB = "antLib";
-
- /** path to jade.jar */
- public static final String JADE_JAR = "jadeJar";
- public static final String MOISE_JAR = "moiseJar";
- public static final String JACAMO_JAR = "jacamoJar";
-
- /** runtime jade arguments (the same used in jade.Boot) */
- public static final String JADE_ARGS = "jadeArgs";
-
- /** boolean, whether to start jade RMA or not */
- public static final String JADE_RMA = "jadeRMA";
-
- /** boolean, whether to start jade Sniffer or not */
- public static final String JADE_SNIFFER = "jadeSniffer";
-
- /** path to java home */
- public static final String JAVA_HOME = "javaHome";
-
- public static final String RUN_AS_THREAD = "runCentralisedInsideJIDE";
- public static final String SHELL_CMD = "shellCommand";
- public static final String CLOSEALL = "closeAllBeforeOpenMAS2J";
- public static final String CHECK_VERSION = "checkLatestVersion";
- public static final String WARN_SING_VAR = "warnSingletonVars";
-
- public static final String SHOW_ANNOTS = "showAnnots";
-
-
- public static final String jacamoHomeProp = "JaCaMoHome";
-
- public static final String SHORT_UNNAMED_VARS = "shortUnnamedVars";
- public static final String START_WEB_MI = "startWebMindInspector";
-
- public static final String NB_TH_SCH = "numberOfThreadsForScheduler";
-
- public static final String KQML_RECEIVED_FUNCTOR = "kqmlReceivedFunctor";
- public static final String KQML_PLANS_FILE = "kqmlPlansFile";
-
- private static Config singleton = null;
-
- protected static String configFactory = null;
-
- public static void setClassFactory(String f) {
- singleton = null;
- configFactory = f;
- }
-
- public static Config get() {
- return get(true);
- }
- public static Config get(boolean tryToFixConfig) {
- if (singleton == null) {
- if (configFactory == null)
- configFactory = Config.class.getName();
- try {
- singleton = (Config)Class.forName(configFactory).newInstance();
- } catch (Exception e) {
- System.err.println("Error creating config from "+configFactory+"("+e+"), using default.");
- singleton = new Config();
- }
- if (!singleton.load()) {
- if (tryToFixConfig) {
- singleton.fix();
- singleton.store();
- }
- }
- }
- return singleton;
- }
-
- protected Config() {
- }
-
- /** returns the file where the user preferences are stored */
- public File getUserConfFile() {
- return new File(System.getProperties().get("user.home") + File.separator + ".jason/user.properties");
- }
-
- public File getMasterConfFile() {
- return new File("jason.properties");
- }
-
- public String getFileConfComment() {
- return "Jason user configuration";
- }
-
- /** Returns true if the file is loaded correctly */
- public boolean load() {
- try {
- File f = getUserConfFile();
- if (f.exists()) {
- super.load(new FileInputStream(f));
- return true;
- } else { // load master configuration file
- f = getMasterConfFile();
- if (f.exists()) {
- System.out.println("User config file not found, loading master: "+f.getAbsolutePath());
- super.load(new FileInputStream(f));
- return true;
- }
- }
- } catch (Exception e) {
- System.err.println("Error reading preferences");
- e.printStackTrace();
- }
- return false;
- }
-
- public boolean getBoolean(String key) {
- return "true".equals(get(key));
- }
-
- /** Returns the full path to the jason.jar file */
- public String getJasonJar() {
- return getProperty(JASON_JAR);
- }
-
- /** returns the jason home (based on jason.jar) */
- public String getJasonHome() {
- try {
- return new File(getJasonJar()).getParentFile().getParent();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return "";
- }
-
- /** Returns the full path to the jade.jar file */
- public String getJadeJar() {
- return getProperty(JADE_JAR);
- }
-
- /** Return the jade args (those used in jade.Boot) */
- public String getJadeArgs() {
- return getProperty(JADE_ARGS);
- }
-
- public String[] getJadeArrayArgs() {
- List<String> ls = new ArrayList<String>();
- String jadeargs = getProperty(JADE_ARGS);
- if (jadeargs != null && jadeargs.length() > 0) {
- StringTokenizer t = new StringTokenizer(jadeargs);
- while (t.hasMoreTokens()) {
- ls.add(t.nextToken());
- }
- }
- String[] as = new String[ls.size()];
- for (int i=0; i<ls.size(); i++) {
- as[i] = ls.get(i);
- }
- return as;
- }
-
- /** Returns the path to the java home directory */
- public String getJavaHome() {
- String h = getProperty(JAVA_HOME);
- if (! h.endsWith(File.separator))
- h += File.separator;
- return h;
- }
-
- /** Returns the path to the ant home directory (where its jars are stored) */
- public String getAntLib() {
- return getProperty(ANT_LIB);
- }
-
- public void setJavaHome(String jh) {
- if (jh != null) {
- jh = new File(jh).getAbsolutePath();
- if (!jh.endsWith(File.separator)) {
- jh += File.separator;
- }
- put(JAVA_HOME, jh);
- }
- }
-
- public void setAntLib(String al) {
- if (al != null) {
- al = new File(al).getAbsolutePath();
- if (!al.endsWith(File.separator)) {
- al += File.separator;
- }
- put(ANT_LIB, al);
- }
- }
-
- public String getShellCommand() {
- return getProperty(SHELL_CMD);
- }
-
- public String getKqmlFunctor() {
- return getProperty(KQML_RECEIVED_FUNCTOR, Message.kqmlReceivedFunctor);
- }
- public String getKqmlPlansFile() {
- return getProperty(KQML_PLANS_FILE, Message.kqmlDefaultPlans);
- }
-
- public void resetSomeProps() {
- //System.out.println("Reseting configuration of "+Config.MOISE_JAR);
- remove(Config.MOISE_JAR);
- //System.out.println("Reseting configuration of "+Config.JASON_JAR);
- remove(Config.JASON_JAR);
- //System.out.println("Reseting configuration of "+Config.JADE_JAR);
- remove(Config.JADE_JAR);
- //System.out.println("Reseting configuration of "+Config.ANT_LIB);
- remove(Config.ANT_LIB);
- put(Config.SHOW_ANNOTS, "false");
- }
-
-
- /** Set most important parameters with default values */
- public void fix() {
- tryToFixJarFileConf(JASON_JAR, "jason.jar", 700000);
- tryToFixJarFileConf(JADE_JAR, "jade.jar", 2000000);
- tryToFixJarFileConf(MOISE_JAR, "moise.jar", 300000);
- tryToFixJarFileConf(JACAMO_JAR, "jacamo.jar", 5000);
- tryToFixJarFileConf(JASON_JAR, "jason.jar", 700000); // in case jacamo is found
-
- // fix java home
- if (get(JAVA_HOME) == null || !checkJavaHomePath(getProperty(JAVA_HOME))) {
- String javaHome = System.getProperty("java.home");
- if (checkJavaHomePath(javaHome)) {
- setJavaHome(javaHome);
- } else {
- String javaEnvHome = System.getenv("JAVA_HOME");
- if (javaEnvHome != null && checkJavaHomePath(javaEnvHome)) {
- setJavaHome(javaEnvHome);
- } else {
- String javaHomeUp = javaHome + File.separator + "..";
- if (checkJavaHomePath(javaHomeUp)) {
- setJavaHome(javaHomeUp);
- } else {
- // try JRE
- if (checkJREHomePath(javaHome)) {
- setJavaHome(javaHome);
- } else {
- setJavaHome(File.separator);
- }
- }
- }
- }
- }
-
- // fix ant lib
- if (get(ANT_LIB) == null || !checkAntLib(getAntLib())) {
- try {
- String jjar = getJasonJar();
- if (jjar != null) {
- String antlib = new File(jjar).getParentFile().getParentFile().getAbsolutePath() + File.separator + "lib";
- if (checkAntLib(antlib)) {
- setAntLib(antlib);
- } else {
- antlib = new File(".") + File.separator + "lib";
- if (checkAntLib(antlib)) {
- setAntLib(antlib);
- } else {
- antlib = new File("..") + File.separator + "lib";
- if (checkAntLib(antlib)) {
- setAntLib(antlib);
- }
- }
- }
- }
- } catch (Exception e) {
- System.out.println("Error setting ant lib!");
- e.printStackTrace();
- }
- }
-
- // Jason version
- put("version", getJasonRunningVersion());
-
- // font
- if (get("font") == null) {
- put("font", "Monospaced");
- }
- if (get("fontSize") == null) {
- put("fontSize", "14");
- }
-
- // shell command
- if (get(SHELL_CMD) == null) {
- if (System.getProperty("os.name").startsWith("Windows 9")) {
- put(SHELL_CMD, "command.com /e:1024 /c ");
- } else if (System.getProperty("os.name").indexOf("indows") > 0) {
- put(SHELL_CMD, "cmd /c ");
- } else {
- put(SHELL_CMD, "/bin/sh ");
- }
- }
-
- // close all
- if (get(CLOSEALL) == null) {
- put(CLOSEALL, "true");
- }
-
- if (get(CHECK_VERSION) == null) {
- put(CHECK_VERSION, "true");
- }
-
- // jade args
- if (getProperty(JADE_RMA) == null) {
- put(JADE_RMA, "true");
- }
-
- // show annots
- if (getProperty(SHOW_ANNOTS) == null) {
- put(SHOW_ANNOTS, "true");
- }
-
- if (getProperty(START_WEB_MI) == null) {
- put(START_WEB_MI, "true");
- }
-
- if (getProperty(NB_TH_SCH) == null) {
- put(NB_TH_SCH, "2");
- }
-
- if (getProperty(SHORT_UNNAMED_VARS) == null) {
- put(SHORT_UNNAMED_VARS,"true");
- }
-
- if (getProperty(KQML_RECEIVED_FUNCTOR) == null) {
- put(KQML_RECEIVED_FUNCTOR, Message.kqmlReceivedFunctor);
- }
-
- if (getProperty(KQML_PLANS_FILE) == null) {
- put(KQML_PLANS_FILE, Message.kqmlDefaultPlans);
- }
-
- // Default infrastructures
- put("infrastructure.Centralised", CentralisedFactory.class.getName());
- put("infrastructure.Jade", JadeFactory.class.getName());
- put("infrastructure.JaCaMo", "jacamo.infra.JaCaMoInfrastructureFactory");
-
- }
-
- public void store() {
- store(getUserConfFile());
- }
-
- public void store(File f) {
- try {
- if (!f.getParentFile().exists()) {
- f.getParentFile().mkdirs();
- }
- System.out.println("Storing configuration at "+f);
- super.store(new FileOutputStream(f), getFileConfComment());
- } catch (Exception e) {
- System.err.println("Error writting preferences");
- e.printStackTrace();
- }
- }
-
- public String[] getAvailableInfrastructures() {
- try {
- List<String> infras = new ArrayList<String>();
- infras.add("Centralised"); // set Centralised as the first
- for (Object k: keySet()) {
- String sk = k.toString();
- int p = sk.indexOf(".");
- if (p > 0 && sk.startsWith("infrastructure") && p == sk.lastIndexOf(".")) { // only one "."
- String newinfra = sk.substring(p+1);
- if (!infras.contains(newinfra)) {
- infras.add(newinfra);
- }
- }
- }
- if (infras.size() > 0) {
- // copy infras to a array
- String[] r = new String[infras.size()];
- for (int i=0; i<r.length; i++) {
- r[i] = infras.get(i);
- }
- return r;
- }
- } catch (Exception e) {
- System.err.println("Error getting user infrastructures.");
- }
- return new String[] {"Centralised","Jade","JaCaMo"};
- }
-
- public String getInfrastructureFactoryClass(String infraId) {
- return get("infrastructure." + infraId).toString();
- }
- public void setInfrastructureFactoryClass(String infraId, String factory) {
- put("infrastructure." + infraId, factory);
- }
- public void removeInfrastructureFactoryClass(String infraId) {
- remove("infrastructure." + infraId);
- }
-
-
- public String getDistPropFile() {
- return "/dist.properties";
- }
-
- public String getJasonRunningVersion() {
- try {
- Properties p = new Properties();
- p.load(Config.class.getResource(getDistPropFile()).openStream());
- return p.getProperty("version") + "." + p.getProperty("release");
- } catch (Exception ex1) {
- try {
- Properties p = new Properties();
- System.out.println("try 2 "+ex1);
- ex1.printStackTrace();
- p.load(new FileReader("bin"+getDistPropFile()));
- return p.getProperty("version") + "." + p.getProperty("release");
- } catch (Exception ex2) {
- System.out.println("*"+ex2);
- return "?";
- }
- }
- }
-
- public String getJasonBuiltDate() {
- try {
- Properties p = new Properties();
- p.load(Config.class.getResource("/dist.properties").openStream());
- return p.get("build.date").toString();
- } catch (Exception ex) {
- return "?";
- }
- }
-
- void tryToFixJarFileConf(String jarEntry, String jarName, int minSize) {
- String jarFile = getProperty(jarEntry);
- if (jarFile == null || !checkJar(jarFile, minSize)) {
- System.out.println("Wrong configuration for " + jarName + ", current is " + jarFile);
-
- // try eclipse installation
- jarFile = getJarFromEclipseInstallation(jarName);
- if (checkJar(jarFile, minSize)) {
- put(jarEntry, jarFile);
- System.out.println("found at " + jarFile+" in eclipse installation");
- return;
- }
-
- // try to get from classpath
- jarFile = getJarFromClassPath(jarName);
- if (checkJar(jarFile, minSize)) {
- put(jarEntry, jarFile);
- System.out.println("found at " + jarFile+" by classpath");
- return;
- }
-
- try {
- // try jason jar
- File jasonjard...
[truncated message content] |