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] |