You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
(35) |
Apr
(96) |
May
(39) |
Jun
(25) |
Jul
(7) |
Aug
(7) |
Sep
(44) |
Oct
(17) |
Nov
(14) |
Dec
(9) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(5) |
Feb
(28) |
Mar
(26) |
Apr
(14) |
May
(3) |
Jun
(3) |
Jul
(13) |
Aug
(41) |
Sep
(12) |
Oct
|
Nov
(2) |
Dec
(17) |
2010 |
Jan
(9) |
Feb
(5) |
Mar
(11) |
Apr
(3) |
May
(4) |
Jun
(2) |
Jul
(3) |
Aug
(8) |
Sep
(2) |
Oct
(11) |
Nov
(3) |
Dec
(1) |
2011 |
Jan
|
Feb
(1) |
Mar
(8) |
Apr
(4) |
May
(4) |
Jun
(5) |
Jul
(3) |
Aug
(2) |
Sep
(7) |
Oct
(4) |
Nov
(4) |
Dec
(2) |
2012 |
Jan
|
Feb
|
Mar
(4) |
Apr
(11) |
May
(8) |
Jun
(2) |
Jul
(7) |
Aug
(6) |
Sep
(2) |
Oct
(2) |
Nov
|
Dec
(3) |
2013 |
Jan
|
Feb
(1) |
Mar
(7) |
Apr
(3) |
May
(1) |
Jun
(4) |
Jul
(8) |
Aug
(4) |
Sep
(4) |
Oct
(6) |
Nov
(8) |
Dec
(6) |
2014 |
Jan
|
Feb
|
Mar
(2) |
Apr
(4) |
May
(6) |
Jun
(10) |
Jul
|
Aug
(7) |
Sep
(15) |
Oct
(4) |
Nov
(1) |
Dec
(1) |
2015 |
Jan
|
Feb
(1) |
Mar
(10) |
Apr
(4) |
May
(6) |
Jun
(1) |
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(5) |
Nov
(6) |
Dec
(12) |
2016 |
Jan
(1) |
Feb
(4) |
Mar
(7) |
Apr
(30) |
May
(5) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <jom...@us...> - 2016-05-17 11:06:48
|
Revision: 1915 http://sourceforge.net/p/jason/svn/1915 Author: jomifred Date: 2016-05-17 11:06:45 +0000 (Tue, 17 May 2016) Log Message: ----------- improve config Modified Paths: -------------- trunk/build.xml trunk/release-notes.txt trunk/src/jason/asSemantics/TransitionSystem.java trunk/src/jason/infra/centralised/CentralisedAgArch.java trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java trunk/src/jason/infra/centralised/RunCentralisedMAS.java trunk/src/jason/infra/components/ActComponent.java trunk/src/jason/infra/components/AgentComponent.java trunk/src/jason/infra/components/CircumstanceListenerComponents.java trunk/src/jason/infra/components/DeliberateComponent.java trunk/src/jason/infra/components/SenseComponent.java trunk/src/jason/util/Config.java Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/build.xml 2016-05-17 11:06:45 UTC (rev 1915) @@ -4,7 +4,7 @@ <property environment="env" /> - <property name="version" value="2" /> + <property name="version" value="2" /> <property name="release" value="0.beta" /> <property name="jasonJar" value="${basedir}/lib/jason-${version}.${release}.jar" /> @@ -12,7 +12,7 @@ <property name="jasonSJar" value="${basedir}/lib/s-jason.jar" /> <property name="replJar" value="${basedir}/lib/jason-repl.jar" /> <property name="coreJar" value="${basedir}/lib/jason-core.jar" /> - + <property name="build.dir" value="${basedir}/bin/classes" /> <property name="dist.properties" value="${basedir}/bin/dist.properties" /> Modified: trunk/release-notes.txt =================================================================== --- trunk/release-notes.txt 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/release-notes.txt 2016-05-17 11:06:45 UTC (rev 1915) @@ -6,7 +6,7 @@ New features: -- modules and namespaces, see doc/modules.pdf +- modules and namespaces, see doc/modules-namespaces.pdf - concurrent plans and advanced concurrent agent architectures, see doc/concurrency.pdf Modified: trunk/src/jason/asSemantics/TransitionSystem.java =================================================================== --- trunk/src/jason/asSemantics/TransitionSystem.java 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/src/jason/asSemantics/TransitionSystem.java 2016-05-17 11:06:45 UTC (rev 1915) @@ -1388,7 +1388,7 @@ } public boolean canSleepAct() { - //&& !C.hasPendingAction() + //&& !C.hasPendingAction() return !C.hasIntention() && !C.hasFeedbackAction() && C.getSelectedIntention() == null && getUserAgArch().canSleep(); } Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-05-17 11:06:45 UTC (rev 1915) @@ -200,7 +200,7 @@ //int sumDel = 0; int nbDel = 0; protected void deliberate() { - TransitionSystem ts = getTS(); + TransitionSystem ts = getTS(); int i = 0; while (running && i++ < cyclesDeliberate && !ts.canSleepDeliberate()) { ts.deliberate(); @@ -211,8 +211,8 @@ //int sumAct = 0; int nbAct = 0; protected void act() { - TransitionSystem ts = getTS(); - + TransitionSystem ts = getTS(); + int i = 0; int ca = cyclesAct; if (cyclesAct == 9999) @@ -226,9 +226,9 @@ } protected void reasoningCycle() { - sense(); - deliberate(); - act(); + sense(); + deliberate(); + act(); } public void run() { Modified: trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-05-17 11:06:45 UTC (rev 1915) @@ -10,11 +10,11 @@ import jason.infra.components.SenseComponent; public class CentralisedAgArchAsynchronous extends CentralisedAgArch implements Runnable { - private SenseComponent senseComponent; + private SenseComponent senseComponent; private DeliberateComponent deliberateComponent; private ActComponent actComponent; - private ExecutorService executorSense; + private ExecutorService executorSense; private ExecutorService executorDeliberate; private ExecutorService executorAct; @@ -23,80 +23,80 @@ public Object objAct = new Object(); public CentralisedAgArchAsynchronous() { - super(); - - senseComponent = new SenseComponent(this); - deliberateComponent = new DeliberateComponent(this); - actComponent = new ActComponent(this); + super(); + + senseComponent = new SenseComponent(this); + deliberateComponent = new DeliberateComponent(this); + actComponent = new ActComponent(this); } - public void wakeUpSense() { - senseComponent.wakeUp(); - } + public void wakeUpSense() { + senseComponent.wakeUp(); + } - public void wakeUpDeliberate() { - deliberateComponent.wakeUp(); - } - - public void wakeUpAct() { - actComponent.wakeUp(); - } - - public SenseComponent getSenseComponent() { - return senseComponent; - } + public void wakeUpDeliberate() { + deliberateComponent.wakeUp(); + } - public DeliberateComponent getDeliberateComponent() { - return deliberateComponent; - } - - public ActComponent getActComponent() { - return actComponent; - } - + public void wakeUpAct() { + actComponent.wakeUp(); + } + + public SenseComponent getSenseComponent() { + return senseComponent; + } + + public DeliberateComponent getDeliberateComponent() { + return deliberateComponent; + } + + public ActComponent getActComponent() { + return actComponent; + } + public ExecutorService getExecutorSense() { - return executorSense; - } + return executorSense; + } - public ExecutorService getExecutorDeliberate() { - return executorDeliberate; - } + public ExecutorService getExecutorDeliberate() { + return executorDeliberate; + } - public ExecutorService getExecutorAct() { - return executorAct; - } + public ExecutorService getExecutorAct() { + return executorAct; + } - public void setExecutorAct(ExecutorService executorAct) { - this.executorAct = executorAct; - } + public void setExecutorAct(ExecutorService executorAct) { + this.executorAct = executorAct; + } - public void setExecutorSense(ExecutorService executorSense) { - this.executorSense = executorSense; - } + public void setExecutorSense(ExecutorService executorSense) { + this.executorSense = executorSense; + } - public void setExecutorDeliberate(ExecutorService executorDeliberate) { - this.executorDeliberate = executorDeliberate; - } + public void setExecutorDeliberate(ExecutorService executorDeliberate) { + this.executorDeliberate = executorDeliberate; + } - public void setSenseComponent(SenseComponent senseComponent) { - this.senseComponent = senseComponent; - } - - public void addListenerToC(CircumstanceListener listener) { - getTS().getC().addEventListener(listener); - } - - public void receiveMsg(Message m) { - synchronized (objSense) { - super.receiveMsg(m); - } + public void setSenseComponent(SenseComponent senseComponent) { + this.senseComponent = senseComponent; } + public void addListenerToC(CircumstanceListener listener) { + getTS().getC().addEventListener(listener); + } + + public void receiveMsg(Message m) { + synchronized (objSense) { + super.receiveMsg(m); + } + } + /** called the the environment when the action was executed */ public void actionExecuted(ActionExec action) { - synchronized (objAct) { - super.actionExecuted(action); - } + synchronized (objAct) { + super.actionExecuted(action); + } } } Modified: trunk/src/jason/infra/centralised/RunCentralisedMAS.java =================================================================== --- trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-05-17 11:06:45 UTC (rev 1915) @@ -433,20 +433,20 @@ public void createAgs() throws JasonException { - - RConf generalConf; - if (project.getInfrastructure().hasParameter("pool")) { - generalConf = RConf.POOL_SYNCH; - } else if (project.getInfrastructure().hasParameter("synch_scheduled")) { - generalConf = RConf.POOL_SYNCH_SCHEDULED; - } else if (project.getInfrastructure().hasParameter("asynch")) { - generalConf = RConf.ASYNCH; - } else if (project.getInfrastructure().hasParameter("asynch_shared")) { - generalConf = RConf.ASYNCH_SHARED_POOLS; - } else { - generalConf = RConf.TRHEADED; - } - + + RConf generalConf; + if (project.getInfrastructure().hasParameter("pool")) { + generalConf = RConf.POOL_SYNCH; + } else if (project.getInfrastructure().hasParameter("synch_scheduled")) { + generalConf = RConf.POOL_SYNCH_SCHEDULED; + } else if (project.getInfrastructure().hasParameter("asynch")) { + generalConf = RConf.ASYNCH; + } else if (project.getInfrastructure().hasParameter("asynch_shared")) { + generalConf = RConf.ASYNCH_SHARED_POOLS; + } else { + generalConf = RConf.TRHEADED; + } + //boolean isPool = project.getInfrastructure().hasParameter("pool") || project.getInfrastructure().hasParameter("synch_scheduled"); //boolean isAsynch = project.getInfrastructure().hasParameter("asynch") || project.getInfrastructure().hasParameter("asynch_shared"); if (generalConf != RConf.TRHEADED) logger.info("Creating agents...."); @@ -480,38 +480,38 @@ RConf agentConf; if (ap.getOption("rc") != null) { - if (ap.getOption("rc").equals("pool")) { - agentConf = RConf.POOL_SYNCH; - } else if (ap.getOption("rc").equals("synch_scheduled")) { - agentConf = RConf.POOL_SYNCH_SCHEDULED; - } else if (ap.getOption("rc").equals("asynch")) { - agentConf = RConf.ASYNCH; - } else if (ap.getOption("rc").equals("asynch_shared")) { - agentConf = RConf.ASYNCH_SHARED_POOLS; - } else { - agentConf = RConf.TRHEADED; - } + if (ap.getOption("rc").equals("pool")) { + agentConf = RConf.POOL_SYNCH; + } else if (ap.getOption("rc").equals("synch_scheduled")) { + agentConf = RConf.POOL_SYNCH_SCHEDULED; + } else if (ap.getOption("rc").equals("asynch")) { + agentConf = RConf.ASYNCH; + } else if (ap.getOption("rc").equals("asynch_shared")) { + agentConf = RConf.ASYNCH_SHARED_POOLS; + } else { + agentConf = RConf.TRHEADED; + } } else { - agentConf = generalConf; + agentConf = generalConf; } //Get the number of reasoning cycles or number of cycles for each stage int cycles = 0; - int cyclesSense = 0; - int cyclesDeliberate = 0; - int cyclesAct = 0; - + int cyclesSense = 0; + int cyclesDeliberate = 0; + int cyclesAct = 0; + if (ap.getOption("cycles") != null) { - cycles = Integer.valueOf(ap.getOption("cycles")); + cycles = Integer.valueOf(ap.getOption("cycles")); } if (ap.getOption("cycles_sense") != null) { - cyclesSense = Integer.valueOf(ap.getOption("cycles_sense")); + cyclesSense = Integer.valueOf(ap.getOption("cycles_sense")); } if (ap.getOption("cycles_deliberate") != null) { - cyclesDeliberate = Integer.valueOf(ap.getOption("cycles_deliberate")); + cyclesDeliberate = Integer.valueOf(ap.getOption("cycles_deliberate")); } if (ap.getOption("cycles_act") != null) { - cyclesAct = Integer.valueOf(ap.getOption("cycles_act")); + cyclesAct = Integer.valueOf(ap.getOption("cycles_act")); } //Create agents according to the specific architecture @@ -520,44 +520,44 @@ } else if (agentConf == RConf.POOL_SYNCH_SCHEDULED) { agArch = new CentralisedAgArchSynchronousScheduled(); if (cycles != 0) { - if (cyclesSense == 0) { - cyclesSense = cycles; - } - if (cyclesDeliberate == 0) { - cyclesDeliberate = cycles; - } - if (cyclesAct == 0) { - cyclesAct = cycles; - } - cycles = 1; + if (cyclesSense == 0) { + cyclesSense = cycles; + } + if (cyclesDeliberate == 0) { + cyclesDeliberate = cycles; + } + if (cyclesAct == 0) { + cyclesAct = cycles; + } + cycles = 1; } } else if (agentConf == RConf.ASYNCH || agentConf == RConf.ASYNCH_SHARED_POOLS) { - agArch = new CentralisedAgArchAsynchronous(); + agArch = new CentralisedAgArchAsynchronous(); if (cycles != 0) { - if (cyclesSense == 0) { - cyclesSense = cycles; - } - if (cyclesDeliberate == 0) { - cyclesDeliberate = cycles; - } - if (cyclesAct == 0) { - cyclesAct = cycles; - } - cycles = 1; - } + if (cyclesSense == 0) { + cyclesSense = cycles; + } + if (cyclesDeliberate == 0) { + cyclesDeliberate = cycles; + } + if (cyclesAct == 0) { + cyclesAct = cycles; + } + cycles = 1; + } } else { agArch = new CentralisedAgArch(); if (cycles != 0) { - if (cyclesSense == 0) { - cyclesSense = cycles; - } - if (cyclesDeliberate == 0) { - cyclesDeliberate = cycles; - } - if (cyclesAct == 0) { - cyclesAct = cycles; - } - cycles = 1; + if (cyclesSense == 0) { + cyclesSense = cycles; + } + if (cyclesDeliberate == 0) { + cyclesDeliberate = cycles; + } + if (cyclesAct == 0) { + cyclesAct = cycles; + } + cycles = 1; } } @@ -621,36 +621,36 @@ logger.fine("Creating agent " + numberedAg + " (" + (cAg + 1) + "/" + ap.getNbInstances() + ")"); CentralisedAgArch agArch; if (isPool) { - if (project.getInfrastructure().hasParameter("synch_scheduled")) { - agArch = new CentralisedAgArchSynchronousScheduled(); - if (ap.getOption("cycles") != null) { - agArch.setCycles(Integer.valueOf(ap.getOption("cycles"))); - } - } else { - agArch = new CentralisedAgArchForPool(); - if (ap.getOption("cycles") != null) { - agArch.setCycles(Integer.valueOf(ap.getOption("cycles"))); - } - } + if (project.getInfrastructure().hasParameter("synch_scheduled")) { + agArch = new CentralisedAgArchSynchronousScheduled(); + if (ap.getOption("cycles") != null) { + agArch.setCycles(Integer.valueOf(ap.getOption("cycles"))); + } + } else { + agArch = new CentralisedAgArchForPool(); + if (ap.getOption("cycles") != null) { + agArch.setCycles(Integer.valueOf(ap.getOption("cycles"))); + } + } } else if (isAsynch) { - agArch = new CentralisedAgArchAsynchronous(); - - int cyclesSense = 0; - int cyclesDeliberate = 0; - int cyclesAct = 0; - - if (ap.getOption("cycles") != null) { - cyclesSense = cyclesDeliberate = cyclesAct = Integer.valueOf(ap.getOption("cycles")); - } - + agArch = new CentralisedAgArchAsynchronous(); + + int cyclesSense = 0; + int cyclesDeliberate = 0; + int cyclesAct = 0; + + if (ap.getOption("cycles") != null) { + cyclesSense = cyclesDeliberate = cyclesAct = Integer.valueOf(ap.getOption("cycles")); + } + if (ap.getOption("cycles_sense") != null) { - cyclesSense = Integer.valueOf(ap.getOption("cycles_sense")); + cyclesSense = Integer.valueOf(ap.getOption("cycles_sense")); } if (ap.getOption("cycles_deliberate") != null) { - cyclesDeliberate = Integer.valueOf(ap.getOption("cycles_deliberate")); + cyclesDeliberate = Integer.valueOf(ap.getOption("cycles_deliberate")); } if (ap.getOption("cycles_act") != null) { - cyclesAct = Integer.valueOf(ap.getOption("cycles_act")); + cyclesAct = Integer.valueOf(ap.getOption("cycles_act")); } ((CentralisedAgArchAsynchronous) agArch).getSenseComponent().setCycles(cyclesSense); @@ -660,7 +660,7 @@ } else { agArch = new CentralisedAgArch(); if (ap.getOption("cycles") != null) { - agArch.setCycles(Integer.valueOf(ap.getOption("cycles"))); + agArch.setCycles(Integer.valueOf(ap.getOption("cycles"))); } } agArch.setAgName(numberedAg); @@ -721,23 +721,23 @@ /** creates one thread per agent */ private void createAgsThreads() { - - int cyclesSense = 1; - int cyclesDeliberate = 1; - int cyclesAct = 5; - - if (project.getInfrastructure().hasParameters()) { + + int cyclesSense = 1; + int cyclesDeliberate = 1; + int cyclesAct = 5; + + if (project.getInfrastructure().hasParameters()) { if (project.getInfrastructure().getParametersArray().length > 2) { - cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(1)); - cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(2)); - cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(3)); + cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(1)); + cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(2)); + cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(3)); } else if (project.getInfrastructure().getParametersArray().length > 1) { - cyclesSense = cyclesDeliberate = cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(1)); - } + cyclesSense = cyclesDeliberate = cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(1)); + } //logger.info("Creating a threaded agents." + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct); - } - + } + for (CentralisedAgArch ag : ags.values()) { ag.setControlInfraTier(control); @@ -755,7 +755,7 @@ //logger.info("Creating threaded agents. Cycles: " + agTemp.getCyclesSense() + ", " + agTemp.getCyclesDeliberate() + ", " + agTemp.getCyclesAct()); for (CentralisedAgArch ag : ags.values()) { - ag.startThread(); + ag.startThread(); } } @@ -786,63 +786,63 @@ try { if (project.getInfrastructure().hasParameters()) { - - if (project.getInfrastructure().hasParameter("asynch")) { - configuration = 1; - maxthreadsSense = Integer.parseInt(project.getInfrastructure().getParameter(1)); - maxthreadsDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(2)); - maxthreadsAct = Integer.parseInt(project.getInfrastructure().getParameter(3)); - if (project.getInfrastructure().getParametersArray().length > 5) { - cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(4)); - cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(5)); - cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(6)); - } else if (project.getInfrastructure().getParametersArray().length > 4) { - cyclesSense = cyclesDeliberate = cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); - } - logger.info("Creating agents with asynchronous reasoning cycle. Sense (" + maxthreadsSense + "), Deliberate (" + maxthreadsDeliberate + "), Act (" + maxthreadsAct + ")" + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct); - } else if (project.getInfrastructure().hasParameter("asynch_shared")) { - configuration = 2; - maxthreads = Integer.parseInt(project.getInfrastructure().getParameter(1)); - if (project.getInfrastructure().getParametersArray().length > 3) { - cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(2)); - cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(3)); - cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); - } else if (project.getInfrastructure().getParametersArray().length > 2) { - cyclesSense = cyclesDeliberate = cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(2)); - } - logger.info("Creating agents with asynchronous reasoning cycle (shared). Sense, Deliberate, Act (" + maxthreads + ")" + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct); - } else if (project.getInfrastructure().hasParameter("synch_scheduled")) { + + if (project.getInfrastructure().hasParameter("asynch")) { + configuration = 1; + maxthreadsSense = Integer.parseInt(project.getInfrastructure().getParameter(1)); + maxthreadsDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(2)); + maxthreadsAct = Integer.parseInt(project.getInfrastructure().getParameter(3)); + if (project.getInfrastructure().getParametersArray().length > 5) { + cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(4)); + cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(5)); + cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(6)); + } else if (project.getInfrastructure().getParametersArray().length > 4) { + cyclesSense = cyclesDeliberate = cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); + } + logger.info("Creating agents with asynchronous reasoning cycle. Sense (" + maxthreadsSense + "), Deliberate (" + maxthreadsDeliberate + "), Act (" + maxthreadsAct + ")" + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct); + } else if (project.getInfrastructure().hasParameter("asynch_shared")) { + configuration = 2; maxthreads = Integer.parseInt(project.getInfrastructure().getParameter(1)); + if (project.getInfrastructure().getParametersArray().length > 3) { + cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(2)); + cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(3)); + cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); + } else if (project.getInfrastructure().getParametersArray().length > 2) { + cyclesSense = cyclesDeliberate = cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(2)); + } + logger.info("Creating agents with asynchronous reasoning cycle (shared). Sense, Deliberate, Act (" + maxthreads + ")" + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct); + } else if (project.getInfrastructure().hasParameter("synch_scheduled")) { + maxthreads = Integer.parseInt(project.getInfrastructure().getParameter(1)); if (project.getInfrastructure().getParametersArray().length > 3) { - cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(2)); - cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(3)); - cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); + cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(2)); + cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(3)); + cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); } else if (project.getInfrastructure().getParametersArray().length > 2) { - cyclesSense = cyclesDeliberate = cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(2)); - } + cyclesSense = cyclesDeliberate = cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(2)); + } - logger.info("Creating a thread pool with "+maxthreads+" thread(s)." + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct + " Reasoning Cycles: " + cycles); - } else { + logger.info("Creating a thread pool with "+maxthreads+" thread(s)." + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct + " Reasoning Cycles: " + cycles); + } else { maxthreads = Integer.parseInt(project.getInfrastructure().getParameter(1)); if (project.getInfrastructure().getParametersArray().length > 3) { - cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(2)); - cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(3)); - cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); - if (project.getInfrastructure().getParametersArray().length > 4) { - cycles = Integer.parseInt(project.getInfrastructure().getParameter(5)); - } else { - cycles = 5; - } + cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(2)); + cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(3)); + cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); + if (project.getInfrastructure().getParametersArray().length > 4) { + cycles = Integer.parseInt(project.getInfrastructure().getParameter(5)); + } else { + cycles = 5; + } } else if (project.getInfrastructure().getParametersArray().length > 2) { - cycles = Integer.parseInt(project.getInfrastructure().getParameter(2)); - } else { - cycles = 5; - } + cycles = Integer.parseInt(project.getInfrastructure().getParameter(2)); + } else { + cycles = 5; + } logger.info("Creating a thread pool with "+maxthreads+" thread(s)." + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct + " Reasoning Cycles: " + cycles); - } + } } } catch (Exception e) { logger.warning("Error getting the number of thread for the pool."); @@ -869,37 +869,37 @@ } } else { - - //TODO shared thread pool among the stages - if (configuration == 2) { - executorSense = executorDeliberate = executorAct = Executors.newFixedThreadPool(maxthreads); - } else { - executorSense = Executors.newFixedThreadPool(maxthreadsSense); - executorDeliberate = Executors.newFixedThreadPool(maxthreadsDeliberate); - executorAct = Executors.newFixedThreadPool(maxthreadsAct); - } + //TODO shared thread pool among the stages + if (configuration == 2) { + executorSense = executorDeliberate = executorAct = Executors.newFixedThreadPool(maxthreads); + } else { + executorSense = Executors.newFixedThreadPool(maxthreadsSense); + executorDeliberate = Executors.newFixedThreadPool(maxthreadsDeliberate); + executorAct = Executors.newFixedThreadPool(maxthreadsAct); + } + //ThreadMonitorAgents mon = new ThreadMonitorAgents(); // initially, add all agents in the tasks for (CentralisedAgArch ag : ags.values()) { - CentralisedAgArchAsynchronous ag2 = (CentralisedAgArchAsynchronous) ag; - - ag2.addListenerToC(new CircumstanceListenerComponents(ag2)); - - ag2.setExecutorAct(executorAct); - ag2.setCyclesAct(cyclesAct); - executorAct.execute(ag2.getActComponent()); - - ag2.setExecutorDeliberate(executorDeliberate); - ag2.setCyclesDeliberate(cyclesDeliberate); - executorDeliberate.execute(ag2.getDeliberateComponent()); - - ag2.setExecutorSense(executorSense); - ag2.setCyclesSense(cyclesSense); - executorSense.execute(ag2.getSenseComponent()); - - //mon.lst.add(ag2); + CentralisedAgArchAsynchronous ag2 = (CentralisedAgArchAsynchronous) ag; + + ag2.addListenerToC(new CircumstanceListenerComponents(ag2)); + + ag2.setExecutorAct(executorAct); + ag2.setCyclesAct(cyclesAct); + executorAct.execute(ag2.getActComponent()); + + ag2.setExecutorDeliberate(executorDeliberate); + ag2.setCyclesDeliberate(cyclesDeliberate); + executorDeliberate.execute(ag2.getDeliberateComponent()); + + ag2.setExecutorSense(executorSense); + ag2.setCyclesSense(cyclesSense); + executorSense.execute(ag2.getSenseComponent()); + + //mon.lst.add(ag2); } //new Thread(mon).start(); @@ -919,65 +919,65 @@ @Override public void wake() { if (sleepingAgs.remove(this)) { - executor.execute(this); + executor.execute(this); } else { runWakeAfterTS = true; } } public void sense() { - int number_cycles = getCyclesSense(); - int i = 0; - + int number_cycles = getCyclesSense(); + int i = 0; + while (isRunning() && i < number_cycles) { - runWakeAfterTS = false; - getTS().sense(); + runWakeAfterTS = false; + getTS().sense(); if (getTS().canSleepSense()) { if (runWakeAfterTS) { wake(); } - break; + break; } i++; } if (isRunning()) { - executor.execute(this); + executor.execute(this); } } public void deliberate() { - super.deliberate(); + super.deliberate(); if (isRunning()) { - executor.execute(this); + executor.execute(this); } } public void act() { - super.act(); + super.act(); if (isRunning()) { - executor.execute(this); + executor.execute(this); } } @Override public void run() { - switch (currentStep) { - case 0: - sense(); - currentStep = 1; - break; - case 1: - deliberate(); - currentStep = 2; - break; - case 2: - act(); - currentStep = 0; - break; - } + switch (currentStep) { + case 0: + sense(); + currentStep = 1; + break; + case 1: + deliberate(); + currentStep = 2; + break; + case 2: + act(); + currentStep = 0; + break; + } } } Modified: trunk/src/jason/infra/components/ActComponent.java =================================================================== --- trunk/src/jason/infra/components/ActComponent.java 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/src/jason/infra/components/ActComponent.java 2016-05-17 11:06:45 UTC (rev 1915) @@ -3,50 +3,50 @@ import jason.infra.centralised.CentralisedAgArchAsynchronous; public class ActComponent extends AgentComponent { - - public ActComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) { - super(centralisedAgArchAsynchronous); - } - - public void wakeUp() { - synchronized (ag.objAct) { - if (sleeping) { - sleeping = false; - enqueueExecutor(false); - } - } - } - - public void enqueueExecutor(boolean ts) { + + public ActComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) { + super(centralisedAgArchAsynchronous); + } + + public void wakeUp() { + synchronized (ag.objAct) { + if (sleeping) { + sleeping = false; + enqueueExecutor(false); + } + } + } + + public void enqueueExecutor(boolean ts) { if (!inQueue || ts) { - inQueue = true; - ag.getExecutorAct().execute(this); + inQueue = true; + ag.getExecutorAct().execute(this); } - } - - public boolean canSleep() { - return ag.getTS().canSleepAct(); - } - - public void run() { - int cycles = ag.getCyclesAct(); - //int number_cycles = 1; - int i = 0; + } + + public boolean canSleep() { + return ag.getTS().canSleepAct(); + } + + public void run() { + int cycles = ag.getCyclesAct(); + //int number_cycles = 1; + int i = 0; while (ag.isRunning() && i < cycles) { - i++; - ag.getTS().act(); - - - synchronized (ag.objAct) { - if (canSleep()) { - inQueue = false; - sleep(); - return; - } else if (i == cycles) { - enqueueExecutor(true); - return; - } - } + i++; + ag.getTS().act(); + + + synchronized (ag.objAct) { + if (canSleep()) { + inQueue = false; + sleep(); + return; + } else if (i == cycles) { + enqueueExecutor(true); + return; + } + } } - } + } } Modified: trunk/src/jason/infra/components/AgentComponent.java =================================================================== --- trunk/src/jason/infra/components/AgentComponent.java 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/src/jason/infra/components/AgentComponent.java 2016-05-17 11:06:45 UTC (rev 1915) @@ -3,23 +3,23 @@ import jason.infra.centralised.CentralisedAgArchAsynchronous; public abstract class AgentComponent implements Runnable { - protected CentralisedAgArchAsynchronous ag; - protected boolean inQueue = true; - protected boolean sleeping = false; - - public AgentComponent(CentralisedAgArchAsynchronous ag) { - this.ag = ag; - } - - public void sleep() { - sleeping = true; - } - - public boolean isSleeping() { - return sleeping; - } - - public abstract void wakeUp(); - public abstract void enqueueExecutor(boolean ts); - public abstract boolean canSleep(); + protected CentralisedAgArchAsynchronous ag; + protected boolean inQueue = true; + protected boolean sleeping = false; + + public AgentComponent(CentralisedAgArchAsynchronous ag) { + this.ag = ag; + } + + public void sleep() { + sleeping = true; + } + + public boolean isSleeping() { + return sleeping; + } + + public abstract void wakeUp(); + public abstract void enqueueExecutor(boolean ts); + public abstract boolean canSleep(); } Modified: trunk/src/jason/infra/components/CircumstanceListenerComponents.java =================================================================== --- trunk/src/jason/infra/components/CircumstanceListenerComponents.java 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/src/jason/infra/components/CircumstanceListenerComponents.java 2016-05-17 11:06:45 UTC (rev 1915) @@ -6,38 +6,38 @@ import jason.infra.centralised.CentralisedAgArchAsynchronous; public class CircumstanceListenerComponents implements CircumstanceListener { - private CentralisedAgArchAsynchronous ag; - - public CircumstanceListenerComponents(CentralisedAgArchAsynchronous ag) { - this.ag = ag; - } + private CentralisedAgArchAsynchronous ag; + + public CircumstanceListenerComponents(CentralisedAgArchAsynchronous ag) { + this.ag = ag; + } - public void notifyDeliberate() { - ag.wakeUpDeliberate(); - } - - public void notifyAct() { - ag.wakeUpAct(); - } - - public void eventAdded(Event e) { - notifyDeliberate(); - } + public void notifyDeliberate() { + ag.wakeUpDeliberate(); + } + + public void notifyAct() { + ag.wakeUpAct(); + } + + public void eventAdded(Event e) { + notifyDeliberate(); + } - public void intentionAdded(Intention i) { - notifyAct(); - } + public void intentionAdded(Intention i) { + notifyAct(); + } - public void intentionDropped(Intention i) { - notifyDeliberate(); - } + public void intentionDropped(Intention i) { + notifyDeliberate(); + } - public void intentionSuspended(Intention i, String reason) { - notifyDeliberate(); - } + public void intentionSuspended(Intention i, String reason) { + notifyDeliberate(); + } - public void intentionResumed(Intention i) { - //notifyDeliberate(); - notifyAct(); - } + public void intentionResumed(Intention i) { + //notifyDeliberate(); + notifyAct(); + } } Modified: trunk/src/jason/infra/components/DeliberateComponent.java =================================================================== --- trunk/src/jason/infra/components/DeliberateComponent.java 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/src/jason/infra/components/DeliberateComponent.java 2016-05-17 11:06:45 UTC (rev 1915) @@ -3,55 +3,55 @@ import jason.infra.centralised.CentralisedAgArchAsynchronous; public class DeliberateComponent extends AgentComponent { - - public DeliberateComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) { - super(centralisedAgArchAsynchronous); - } - - public boolean canSleep() { - return ag.getTS().canSleepDeliberate(); - } - - public void wakeUp() { - synchronized (ag.objDeliberate) { - if (sleeping) { - sleeping = false; - enqueueExecutor(false); - } - } - } - - public void enqueueExecutor(boolean ts) { + + public DeliberateComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) { + super(centralisedAgArchAsynchronous); + } + + public boolean canSleep() { + return ag.getTS().canSleepDeliberate(); + } + + public void wakeUp() { + synchronized (ag.objDeliberate) { + if (sleeping) { + sleeping = false; + enqueueExecutor(false); + } + } + } + + public void enqueueExecutor(boolean ts) { if (!inQueue || ts) { - inQueue = true; - ag.getExecutorDeliberate().execute(this); + inQueue = true; + ag.getExecutorDeliberate().execute(this); } else { - System.out.println("It's already in the queue! DELIBERATE"); + System.out.println("It's already in the queue! DELIBERATE"); } - } - - public void run() { - int cycles = ag.getCyclesDeliberate(); - //int number_cycles = 1; - int i = 0; - - while (ag.isRunning() && i < cycles) { - i++; - - ag.getTS().deliberate(); - - synchronized (ag.objDeliberate) { - - if (canSleep()) { - inQueue = false; - sleep(); - return; - } else if (i == cycles) { - enqueueExecutor(true); - return; - } - } + } + + public void run() { + int cycles = ag.getCyclesDeliberate(); + //int number_cycles = 1; + int i = 0; + + while (ag.isRunning() && i < cycles) { + i++; + + ag.getTS().deliberate(); + + synchronized (ag.objDeliberate) { + + if (canSleep()) { + inQueue = false; + sleep(); + return; + } else if (i == cycles) { + enqueueExecutor(true); + return; + } + } } - } + } } Modified: trunk/src/jason/infra/components/SenseComponent.java =================================================================== --- trunk/src/jason/infra/components/SenseComponent.java 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/src/jason/infra/components/SenseComponent.java 2016-05-17 11:06:45 UTC (rev 1915) @@ -3,60 +3,60 @@ import jason.infra.centralised.CentralisedAgArchAsynchronous; public class SenseComponent extends AgentComponent { - - public SenseComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) { - super(centralisedAgArchAsynchronous); - } - - public boolean canSleep() { - return ag.getTS().canSleepSense(); - } - - public void wakeUp() { - synchronized (ag.objSense) { - if (sleeping) { - sleeping = false; - enqueueExecutor(false); - } - } - } - - /* - public void wakeUp(boolean ts) { - synchronized (ag.objSense) { - if (ts || sleeping) { - sleeping = false; - enqueueExecutor(ts); - } - } - }*/ - - public void enqueueExecutor(boolean ts) { + + public SenseComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) { + super(centralisedAgArchAsynchronous); + } + + public boolean canSleep() { + return ag.getTS().canSleepSense(); + } + + public void wakeUp() { + synchronized (ag.objSense) { + if (sleeping) { + sleeping = false; + enqueueExecutor(false); + } + } + } + + /* + public void wakeUp(boolean ts) { + synchronized (ag.objSense) { + if (ts || sleeping) { + sleeping = false; + enqueueExecutor(ts); + } + } + }*/ + + public void enqueueExecutor(boolean ts) { if (!inQueue || ts) { - inQueue = true; - ag.getExecutorSense().execute(this); + inQueue = true; + ag.getExecutorSense().execute(this); } - } - - public void run() { - int cycles = ag.getCyclesSense(); - //int number_cycles = 1; - int i = 0; - - while (ag.isRunning() && i < cycles) { - i++; - ag.getTS().sense(); - - synchronized (ag.objSense) { - if (canSleep()) { - inQueue = false; - sleep(); - return; - } else if (i == cycles) { - enqueueExecutor(true); - return; - } - } + } + + public void run() { + int cycles = ag.getCyclesSense(); + //int number_cycles = 1; + int i = 0; + + while (ag.isRunning() && i < cycles) { + i++; + ag.getTS().sense(); + + synchronized (ag.objSense) { + if (canSleep()) { + inQueue = false; + sleep(); + return; + } else if (i == cycles) { + enqueueExecutor(true); + return; + } + } } - } + } } Modified: trunk/src/jason/util/Config.java =================================================================== --- trunk/src/jason/util/Config.java 2016-05-13 13:26:28 UTC (rev 1914) +++ trunk/src/jason/util/Config.java 2016-05-17 11:06:45 UTC (rev 1915) @@ -176,7 +176,7 @@ try { return new File(getJasonJar()).getParentFile().getParent(); } catch (Exception e) { - e.printStackTrace(); + //e.printStackTrace(); } return ""; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-05-13 13:26:31
|
Revision: 1914 http://sourceforge.net/p/jason/svn/1914 Author: jomifred Date: 2016-05-13 13:26:28 +0000 (Fri, 13 May 2016) Log Message: ----------- add doc about namespaces Modified Paths: -------------- trunk/src/jason/util/Config.java Added Paths: ----------- trunk/doc/modules-namespaces.pdf Added: trunk/doc/modules-namespaces.pdf =================================================================== (Binary files differ) Index: trunk/doc/modules-namespaces.pdf =================================================================== --- trunk/doc/modules-namespaces.pdf 2016-05-12 13:42:16 UTC (rev 1913) +++ trunk/doc/modules-namespaces.pdf 2016-05-13 13:26:28 UTC (rev 1914) Property changes on: trunk/doc/modules-namespaces.pdf ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/pdf \ No newline at end of property Modified: trunk/src/jason/util/Config.java =================================================================== --- trunk/src/jason/util/Config.java 2016-05-12 13:42:16 UTC (rev 1913) +++ trunk/src/jason/util/Config.java 2016-05-13 13:26:28 UTC (rev 1914) @@ -468,12 +468,12 @@ } catch (Exception ex1) { try { Properties p = new Properties(); - System.out.println("try 2 "+ex1); - ex1.printStackTrace(); + //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); + //System.out.println("*"+ex2); return "?"; } } @@ -489,7 +489,7 @@ } } - void tryToFixJarFileConf(String jarEntry, String jarFilePrefix, int minSize) { + public void tryToFixJarFileConf(String jarEntry, String jarFilePrefix, int minSize) { String jarFile = getProperty(jarEntry); if (jarFile == null || !checkJar(jarFile, minSize)) { System.out.println("Wrong configuration for " + jarFilePrefix + ", current is " + jarFile); @@ -502,6 +502,18 @@ return; } + // try current dir + jarFile = findJarInDirectory(new File("."), jarFilePrefix); + if (checkJar(jarFile, minSize)) { + try { + put(jarEntry, new File(jarFile).getCanonicalFile().getAbsolutePath()); + System.out.println("found at " + jarFile); + return; + } catch (IOException e) { + e.printStackTrace(); + } + } + // try to get from classpath jarFile = getJarFromClassPath(jarFilePrefix); if (checkJar(jarFile, minSize)) { @@ -534,18 +546,6 @@ } catch (Exception e) {} */ - // try current dir - jarFile = findJarInDirectory(new File("."), jarFilePrefix); - if (checkJar(jarFile, minSize)) { - try { - put(jarEntry, new File(jarFile).getCanonicalFile().getAbsolutePath()); - System.out.println("found at " + jarFile); - return; - } catch (IOException e) { - e.printStackTrace(); - } - } - // try current dir + lib jarFile = findJarInDirectory(new File(".." + File.separator + "lib"), jarFilePrefix); if (checkJar(jarFile, minSize)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-05-12 13:42:19
|
Revision: 1913 http://sourceforge.net/p/jason/svn/1913 Author: jomifred Date: 2016-05-12 13:42:16 +0000 (Thu, 12 May 2016) Log Message: ----------- add jason script (to run .mas2j files) remove jacamo as a infra for .mas2j (.jcm should be used for jacamo appls) Modified Paths: -------------- trunk/bin/mas2j.sh trunk/release-notes.txt trunk/src/jason/infra/jade/JadeAgArch.java trunk/src/jason/mas2j/MAS2JProject.java trunk/src/jason/util/Config.java trunk/src/test/MAS2JParserTest.java Added Paths: ----------- trunk/bin/jason trunk/src/jason/runtime/RunJasonProject.java Removed Paths: ------------- trunk/lib/c4jason.jar trunk/lib/cartago.jar trunk/lib/jacamo.jar trunk/lib/moise.jar trunk/lib/npl.jar Added: trunk/bin/jason =================================================================== --- trunk/bin/jason (rev 0) +++ trunk/bin/jason 2016-05-12 13:42:16 UTC (rev 1913) @@ -0,0 +1,35 @@ +#!/bin/bash + +if [ -z JASON_HOME ] ; then + CURDIR=`pwd` + JASON_HOME=`dirname $0` + cd "$JASON_HOME/.." + JASON_HOME=`pwd` + cd $CURDIR +fi + +echo Jason home is $JASON_HOME + +if [ -z $JDK_HOME ] ; then + if [ -n $JAVA_HOME ] ; then + JDK_HOME=$JAVA_HOME + fi +fi + +if [ -z $JDK_HOME ] ; then + if [ $OS == Darwin ] ; then + JDK_HOME=/usr + fi +fi + +# check JDK_HOME +if [ ! -f $JDK_HOME/bin/javac ] ; then + echo JDK_HOME is not properly set! +fi + +export PATH="$JDK_HOME/bin":$PATH + +JASON_JAR=`find $JASON_HOME/lib -name jason-2*.jar` +JACAMO_JAR=`find $JASON_HOME/lib -name jacamo*.jar` + +java -cp $JASON_JAR:$JACAMO_JAR jason.runtime.RunJasonProject $1 Property changes on: trunk/bin/jason ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Modified: trunk/bin/mas2j.sh =================================================================== --- trunk/bin/mas2j.sh 2016-05-09 10:19:38 UTC (rev 1912) +++ trunk/bin/mas2j.sh 2016-05-12 13:42:16 UTC (rev 1913) @@ -1,7 +1,7 @@ #!/bin/sh # -# this script creates the Ant script (build.xml) -# to run a Jason project +# this script creates the Ant script (build.xml) +# to run a Jason project # if [ ! -f $1 ] @@ -10,16 +10,20 @@ exit fi +if [ -z JASON_HOME ] ; then + CURDIR=`pwd` + JASON_HOME=`dirname $0` + cd "$JASON_HOME/.." + JASON_HOME=`pwd` + cd $CURDIR +fi -CURDIR=`pwd` +JASON_JAR=`find $JASON_HOME/lib -name jason-2*.jar` +JACAMO_JAR=`find $JASON_HOME/lib -name jacamo*.jar` -JASONDIR=`dirname $0`/.. -cd $JASONDIR -JASONDIR=`pwd` +java -cp $JASON_JAR:$JACAMO_JAR jason.mas2j.parser.mas2j $1 $2 -cd $CURDIR +# bin/classes:$JASON_HOME/lib/jason.jar:$JASON_HOME/lib/jade.jar:$JASON_HOME/lib/c4jason.jar:$JASON_HOME/lib/cartago.jar:$JASON_HOME/lib/jacamo.jar:$CLASSPATH:. \ +# jason.mas2j.parser.mas2j $1 $2 -java -classpath bin/classes:$JASONDIR/lib/jason.jar:$JASONDIR/lib/jade.jar:$JASONDIR/lib/c4jason.jar:$JASONDIR/lib/cartago.jar:$JASONDIR/lib/jacamo.jar:$CLASSPATH:. \ - jason.mas2j.parser.mas2j $1 $2 - #chmod u+x *.sh Deleted: trunk/lib/c4jason.jar =================================================================== (Binary files differ) Deleted: trunk/lib/cartago.jar =================================================================== (Binary files differ) Deleted: trunk/lib/jacamo.jar =================================================================== (Binary files differ) Deleted: trunk/lib/moise.jar =================================================================== (Binary files differ) Deleted: trunk/lib/npl.jar =================================================================== (Binary files differ) Modified: trunk/release-notes.txt =================================================================== --- trunk/release-notes.txt 2016-05-09 10:19:38 UTC (rev 1912) +++ trunk/release-notes.txt 2016-05-12 13:42:16 UTC (rev 1913) @@ -32,7 +32,9 @@ Changes in the API: - AgArch act method has just one parameter - Java 1.7 is used +- JaCaMo is not an available infrastructure anymore, it has its own support to run MAS (the .jcm files) + New Tutorial on BDI (see doc/index.html) --------------------------- Modified: trunk/src/jason/infra/jade/JadeAgArch.java =================================================================== --- trunk/src/jason/infra/jade/JadeAgArch.java 2016-05-09 10:19:38 UTC (rev 1912) +++ trunk/src/jason/infra/jade/JadeAgArch.java 2016-05-12 13:42:16 UTC (rev 1913) @@ -1,5 +1,13 @@ package jason.infra.jade; +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.io.Serializable; +import java.util.logging.Level; + +import org.w3c.dom.Document; + import jade.core.AID; import jade.core.behaviours.Behaviour; import jade.core.behaviours.CyclicBehaviour; @@ -18,17 +26,7 @@ import jason.mas2j.MAS2JProject; import jason.mas2j.parser.ParseException; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.io.Serializable; -import java.util.logging.Level; -import org.w3c.dom.Document; - -import c4jason.CartagoEnvironment; - - /** * Implementation of the Jade Architecture to run Jason agents * @@ -168,7 +166,7 @@ public static boolean isCartagoJadeCase(MAS2JProject project) { return project.getEnvClass() != null && - project.getEnvClass().getClassName().equals(CartagoEnvironment.class.getName()) && + project.getEnvClass().getClassName().equals("c4jason.CartagoEnvironment") && project.isJade(); } @@ -176,9 +174,10 @@ public static synchronized void startCartagoNode(String[] args) { if (!cartagoStarted) { System.out.print("Starting cartago node...."); - CartagoEnvironment env = new CartagoEnvironment(); - env.init(args); - System.out.println("ok."); + //CartagoEnvironment env = new CartagoEnvironment(); + //env.init(args); + //System.out.println("ok."); + System.out.println("**** not implemented!!!! ****"); } cartagoStarted = true; } Modified: trunk/src/jason/mas2j/MAS2JProject.java =================================================================== --- trunk/src/jason/mas2j/MAS2JProject.java 2016-05-09 10:19:38 UTC (rev 1912) +++ trunk/src/jason/mas2j/MAS2JProject.java 2016-05-12 13:42:16 UTC (rev 1913) @@ -305,7 +305,7 @@ String facClass = Config.get().getInfrastructureFactoryClass(infrastructure.getClassName()); infraFac = (InfrastructureFactory)Class.forName(facClass).newInstance(); } catch (Exception e) { - throw new JasonException("The project's infrastructure ('"+infrastructure.getClassName()+"') is unknown! \n"+e); + throw new JasonException("The project's infrastructure ('"+infrastructure.getClassName()+"') is not well configured! \n"+e); } } return infraFac; Added: trunk/src/jason/runtime/RunJasonProject.java =================================================================== --- trunk/src/jason/runtime/RunJasonProject.java (rev 0) +++ trunk/src/jason/runtime/RunJasonProject.java 2016-05-12 13:42:16 UTC (rev 1913) @@ -0,0 +1,68 @@ +package jason.runtime; + +import java.io.File; + +import jason.infra.MASLauncherInfraTier; +import jason.mas2j.MAS2JProject; +import jason.mas2j.parser.mas2j; +import jason.util.Config; + +/** + * Run a Jason mas2j project + * + * parameters: + * /Jason mas2j Project File/ + * + * @author jomi + * + */ +public class RunJasonProject { + + static MASLauncherInfraTier launcher; + + // Run the parser + public static void main (String args[]) { + + String name; + mas2j parser; + MAS2JProject project = new MAS2JProject(); + + if (args.length == 0) { + System.out.println("usage must be:"); + System.out.println(" java "+RunJasonProject.class.getName()+" <MAS2j Project File>"); + return; + } else { + name = args[0]; + System.err.println("reading from file " + name + " ..." ); + try { + parser = new mas2j(new java.io.FileInputStream(name)); + } catch(java.io.FileNotFoundException e){ + System.err.println("file \"" + name + "\" not found."); + return; + } + } + + // parsing + try { + File file = new File(name); + //File directory = file.getAbsoluteFile().getParentFile(); + project = parser.mas(); + Config.get().fix(); + project.setProjectFile(file); + System.out.println("file "+name+" parsed successfully!\n"); + + launcher = project.getInfrastructureFactory().createMASLauncher(); + launcher.setProject(project); + launcher.writeScripts(false, false); + + new Thread(launcher, "MAS-Launcher").start(); + } catch(Exception e){ + System.err.println("parsing errors found... \n" + e); + } + } + + public MASLauncherInfraTier getLauncher() { + return launcher; + } + +} Modified: trunk/src/jason/util/Config.java =================================================================== --- trunk/src/jason/util/Config.java 2016-05-09 10:19:38 UTC (rev 1912) +++ trunk/src/jason/util/Config.java 2016-05-12 13:42:16 UTC (rev 1913) @@ -59,7 +59,7 @@ /** 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"; + //public static final String JACAMO_JAR = "jacamoJar"; /** runtime jade arguments (the same used in jade.Boot) */ public static final String JADE_ARGS = "jadeArgs"; @@ -82,7 +82,7 @@ public static final String SHOW_ANNOTS = "showAnnots"; - public static final String jacamoHomeProp = "JaCaMoHome"; + //public static final String jacamoHomeProp = "JaCaMoHome"; public static final String SHORT_UNNAMED_VARS = "shortUnnamedVars"; public static final String START_WEB_MI = "startWebMindInspector"; @@ -273,7 +273,7 @@ tryToFixJarFileConf(JASON_JAR, "jason", 700000); tryToFixJarFileConf(JADE_JAR, "jade", 2000000); tryToFixJarFileConf(MOISE_JAR, "moise", 300000); - tryToFixJarFileConf(JACAMO_JAR, "jacamo", 5000); + //tryToFixJarFileConf(JACAMO_JAR, "jacamo", 5000); tryToFixJarFileConf(JASON_JAR, "jason", 700000); // in case jacamo is found // fix java home @@ -391,7 +391,7 @@ // Default infrastructures put("infrastructure.Centralised", CentralisedFactory.class.getName()); put("infrastructure.Jade", JadeFactory.class.getName()); - put("infrastructure.JaCaMo", "jacamo.infra.JaCaMoInfrastructureFactory"); + //put("infrastructure.JaCaMo", "jacamo.infra.JaCaMoInfrastructureFactory"); } @@ -437,7 +437,7 @@ } catch (Exception e) { System.err.println("Error getting user infrastructures."); } - return new String[] {"Centralised","Jade","JaCaMo"}; + return new String[] {"Centralised","Jade" }; //,"JaCaMo"}; } public String getInfrastructureFactoryClass(String infraId) { @@ -521,6 +521,7 @@ } } catch (Exception e) {} + /* try { // try jacamo jar File jacamojardir= new File(getProperty(JACAMO_JAR)).getAbsoluteFile().getCanonicalFile().getParentFile(); @@ -531,7 +532,8 @@ return; } } catch (Exception e) {} - + */ + // try current dir jarFile = findJarInDirectory(new File("."), jarFilePrefix); if (checkJar(jarFile, minSize)) { Modified: trunk/src/test/MAS2JParserTest.java =================================================================== --- trunk/src/test/MAS2JParserTest.java 2016-05-09 10:19:38 UTC (rev 1912) +++ trunk/src/test/MAS2JParserTest.java 2016-05-12 13:42:16 UTC (rev 1913) @@ -8,6 +8,7 @@ import jason.mas2j.MAS2JProject; import jason.mas2j.parser.ParseException; import jason.mas2j.parser.mas2j; +import jason.util.Config; import java.io.StringReader; import java.util.Map; @@ -22,7 +23,7 @@ protected void setUp() throws Exception { super.setUp(); StringBuffer source = new StringBuffer("MAS auctionCent { \n"); - source.append("infrastructure: Centralised \n"); + source.append("infrastructure: JaCaMo \n"); source.append("environment: myEnv at \"x.edu\" \n"); source.append("executionControl: myController "); source.append("agents: ag1 [events=discard,intBels=newFocus,osfile=\"a/x.xml\"]; ag2 /home/agTest.asl agentClass mypkg.MyAgent #2; ag3 at \"x.edu\"; auctionner agentArchClass AuctionnerGUI;"); @@ -61,7 +62,12 @@ assertEquals(project.getDirectiveClasses().size(),2); assertEquals(project.getDirectiveClasses().get("md2").toString(), "mypkg.LogDirective"); + assertEquals("JaCaMo", project.getInfrastructure().getClassName()); + String facClass = Config.get().getInfrastructureFactoryClass(project.getInfrastructure().getClassName()); + assertEquals("jacamo.infra.JaCaMoInfrastructureFactory", facClass); + + //System.out.println(project.getInfrastructureFactory()); } catch (Exception e) { System.err.println("Error:"+e); e.printStackTrace(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-05-09 10:19:40
|
Revision: 1912 http://sourceforge.net/p/jason/svn/1912 Author: jomifred Date: 2016-05-09 10:19:38 +0000 (Mon, 09 May 2016) Log Message: ----------- change default values for number of cycles Modified Paths: -------------- trunk/bin/publish-maven.sh trunk/build.xml trunk/pom.xml trunk/src/jason/infra/centralised/CentralisedAgArch.java trunk/src/jason/infra/centralised/CentralisedMASLauncherAnt.java trunk/src/jason/infra/centralised/RunCentralisedMAS.java trunk/src/jason/util/Config.java Modified: trunk/bin/publish-maven.sh =================================================================== --- trunk/bin/publish-maven.sh 2016-05-02 14:45:20 UTC (rev 1911) +++ trunk/bin/publish-maven.sh 2016-05-09 10:19:38 UTC (rev 1912) @@ -1,6 +1,6 @@ #!/bin/bash -REL=2.0-SNAPSHOT +REL=2.0.beta ant maven-stage Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2016-05-02 14:45:20 UTC (rev 1911) +++ trunk/build.xml 2016-05-09 10:19:38 UTC (rev 1912) @@ -5,7 +5,7 @@ <property environment="env" /> <property name="version" value="2" /> - <property name="release" value="0-SNAPSHOT" /> + <property name="release" value="0.beta" /> <property name="jasonJar" value="${basedir}/lib/jason-${version}.${release}.jar" /> <property name="jadeJar" value="${basedir}/lib/jade.jar" /> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2016-05-02 14:45:20 UTC (rev 1911) +++ trunk/pom.xml 2016-05-09 10:19:38 UTC (rev 1912) @@ -4,7 +4,7 @@ <artifactId>jason</artifactId> <packaging>jar</packaging> <name>Jason</name> - <version>2.0-SNAPSHOT</version> + <version>2.0.beta</version> <description>Jason is a fully-fledged interpreter for an extended version of AgentSpeak, a BDI agent-oriented logic programming language, and is implemented in Java. Using JADE a multi-agent system can be distributed over a network effortlessly.</description> <url>http://jason.sf.net</url> <licenses> Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-05-02 14:45:20 UTC (rev 1911) +++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-05-09 10:19:38 UTC (rev 1912) @@ -232,7 +232,7 @@ } public void run() { - TransitionSystem ts = getTS(); + TransitionSystem ts = getTS(); while (running) { if (ts.getSettings().isSync()) { waitSyncSignal(); @@ -428,11 +428,11 @@ private RConf conf; - private int cycles = 0; + private int cycles = 1; - private int cyclesSense = 0; - private int cyclesDeliberate = 0; - private int cyclesAct = 0; + private int cyclesSense = 1; + private int cyclesDeliberate = 1; + private int cyclesAct = 5; public int getCycles() { return cycles; Modified: trunk/src/jason/infra/centralised/CentralisedMASLauncherAnt.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedMASLauncherAnt.java 2016-05-02 14:45:20 UTC (rev 1911) +++ trunk/src/jason/infra/centralised/CentralisedMASLauncherAnt.java 2016-05-09 10:19:38 UTC (rev 1912) @@ -125,7 +125,7 @@ return new String[] { Config.get().getJavaHome() + "bin" + File.separator + "java", "-classpath", - Config.get().getAntLib() + "ant-launcher.jar", "org.apache.tools.ant.launch.Launcher", + Config.get().getAntLib() + "/" + Config.get().getAntJar(), "org.apache.tools.ant.launch.Launcher", "-e", "-f", build, task}; } Modified: trunk/src/jason/infra/centralised/RunCentralisedMAS.java =================================================================== --- trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-05-02 14:45:20 UTC (rev 1911) +++ trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-05-09 10:19:38 UTC (rev 1912) @@ -724,7 +724,7 @@ int cyclesSense = 1; int cyclesDeliberate = 1; - int cyclesAct = 1; + int cyclesAct = 5; if (project.getInfrastructure().hasParameters()) { if (project.getInfrastructure().getParametersArray().length > 2) { @@ -741,18 +741,10 @@ for (CentralisedAgArch ag : ags.values()) { ag.setControlInfraTier(control); - if (ag.getCyclesSense() == 0) { - ag.setCyclesSense(cyclesSense); - } + ag.setCyclesSense(cyclesSense); + ag.setCyclesDeliberate(cyclesDeliberate); + ag.setCyclesAct(cyclesAct); - if (ag.getCyclesDeliberate() == 0) { - ag.setCyclesDeliberate(cyclesDeliberate); - } - - if (ag.getCyclesAct() == 0) { - ag.setCyclesAct(cyclesAct); - } - // create the agent thread Thread agThread = new Thread(ag); ag.setThread(agThread); @@ -790,7 +782,7 @@ int cycles = 1; int cyclesSense = 1; int cyclesDeliberate = 1; - int cyclesAct = 1; + int cyclesAct = 5; try { if (project.getInfrastructure().hasParameters()) { @@ -867,18 +859,10 @@ // initially, add all agents in the tasks for (CentralisedAgArch ag : ags.values()) { - if (ag.getCycles() == 0) { - ag.setCycles(cycles); - } - if (ag.getCyclesSense() == 0) { - ag.setCyclesSense(cyclesSense); - } - if (ag.getCyclesDeliberate() == 0) { - ag.setCyclesDeliberate(cyclesDeliberate); - } - if (ag.getCyclesAct() == 0) { - ag.setCyclesAct(cyclesAct); - } + ag.setCycles(cycles); + ag.setCyclesSense(cyclesSense); + ag.setCyclesDeliberate(cyclesDeliberate); + ag.setCyclesAct(cyclesAct); if (ag instanceof CentralisedAgArchForPool) ((CentralisedAgArchForPool)ag).setExecutor(executor); executor.execute(ag); @@ -904,18 +888,15 @@ ag2.addListenerToC(new CircumstanceListenerComponents(ag2)); ag2.setExecutorAct(executorAct); - if (ag2.getCyclesAct() == 0) - ag2.setCyclesAct(cyclesAct); + ag2.setCyclesAct(cyclesAct); executorAct.execute(ag2.getActComponent()); ag2.setExecutorDeliberate(executorDeliberate); - if (ag2.getCyclesDeliberate() == 0) - ag2.setCyclesDeliberate(cyclesDeliberate); + ag2.setCyclesDeliberate(cyclesDeliberate); executorDeliberate.execute(ag2.getDeliberateComponent()); ag2.setExecutorSense(executorSense); - if (ag2.getCyclesSense() == 0) - ag2.setCyclesSense(cyclesSense); + ag2.setCyclesSense(cyclesSense); executorSense.execute(ag2.getSenseComponent()); //mon.lst.add(ag2); Modified: trunk/src/jason/util/Config.java =================================================================== --- trunk/src/jason/util/Config.java 2016-05-02 14:45:20 UTC (rev 1911) +++ trunk/src/jason/util/Config.java 2016-05-09 10:19:38 UTC (rev 1912) @@ -220,6 +220,10 @@ return getProperty(ANT_LIB); } + public String getAntJar() { + return new File(findJarInDirectory(new File(getAntLib()), "ant-launcher")).getName(); + } + public void setJavaHome(String jh) { if (jh != null) { jh = new File(jh).getAbsolutePath(); @@ -620,9 +624,11 @@ } String findJarInDirectory(File dir, String prefix) { - for (File f: dir.listFiles()) { - if (f.getName().startsWith(prefix) && f.getName().endsWith(".jar")) { - return f.getAbsolutePath(); + if (dir.isDirectory()) { + for (File f: dir.listFiles()) { + if (f.getName().startsWith(prefix) && f.getName().endsWith(".jar")) { + return f.getAbsolutePath(); + } } } return null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-05-02 14:45:23
|
Revision: 1911 http://sourceforge.net/p/jason/svn/1911 Author: jomifred Date: 2016-05-02 14:45:20 +0000 (Mon, 02 May 2016) Log Message: ----------- improve config Modified Paths: -------------- trunk/src/jason/util/Config.java trunk/src/jason/util/ConfigGUI.java Modified: trunk/src/jason/util/Config.java =================================================================== --- trunk/src/jason/util/Config.java 2016-04-29 11:22:47 UTC (rev 1910) +++ trunk/src/jason/util/Config.java 2016-05-02 14:45:20 UTC (rev 1911) @@ -266,11 +266,11 @@ /** 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 + tryToFixJarFileConf(JASON_JAR, "jason", 700000); + tryToFixJarFileConf(JADE_JAR, "jade", 2000000); + tryToFixJarFileConf(MOISE_JAR, "moise", 300000); + tryToFixJarFileConf(JACAMO_JAR, "jacamo", 5000); + tryToFixJarFileConf(JASON_JAR, "jason", 700000); // in case jacamo is found // fix java home if (get(JAVA_HOME) == null || !checkJavaHomePath(getProperty(JAVA_HOME))) { @@ -455,7 +455,12 @@ try { Properties p = new Properties(); p.load(Config.class.getResource(getDistPropFile()).openStream()); - return p.getProperty("version") + "." + p.getProperty("release"); + String v = p.getProperty("version"); + if (v == null) + v = ""; + else if (! v.isEmpty()) + v = v + "."; + return v + p.getProperty("release"); } catch (Exception ex1) { try { Properties p = new Properties(); @@ -480,13 +485,13 @@ } } - void tryToFixJarFileConf(String jarEntry, String jarName, int minSize) { + void tryToFixJarFileConf(String jarEntry, String jarFilePrefix, int minSize) { String jarFile = getProperty(jarEntry); if (jarFile == null || !checkJar(jarFile, minSize)) { - System.out.println("Wrong configuration for " + jarName + ", current is " + jarFile); + System.out.println("Wrong configuration for " + jarFilePrefix + ", current is " + jarFile); // try eclipse installation - jarFile = getJarFromEclipseInstallation(jarName); + jarFile = getJarFromEclipseInstallation(jarFilePrefix); if (checkJar(jarFile, minSize)) { put(jarEntry, jarFile); System.out.println("found at " + jarFile+" in eclipse installation"); @@ -494,7 +499,7 @@ } // try to get from classpath - jarFile = getJarFromClassPath(jarName); + jarFile = getJarFromClassPath(jarFilePrefix); if (checkJar(jarFile, minSize)) { put(jarEntry, jarFile); System.out.println("found at " + jarFile+" by classpath"); @@ -504,7 +509,7 @@ try { // try jason jar File jasonjardir = new File(getJasonJar()).getAbsoluteFile().getCanonicalFile().getParentFile(); - jarFile = jasonjardir+File.separator+jarName; + jarFile = findJarInDirectory(jasonjardir, jarFilePrefix); if (checkJar(jarFile, minSize)) { put(jarEntry, jarFile); System.out.println("found at " + jarFile+" by jason.jar directory"); @@ -515,7 +520,7 @@ try { // try jacamo jar File jacamojardir= new File(getProperty(JACAMO_JAR)).getAbsoluteFile().getCanonicalFile().getParentFile(); - jarFile = jacamojardir+File.separator+jarName; + jarFile = findJarInDirectory(jacamojardir, jarFilePrefix); if (checkJar(jarFile, minSize)) { put(jarEntry, jarFile); System.out.println("found at " + jarFile+" by jacamo.jar directory"); @@ -524,7 +529,7 @@ } catch (Exception e) {} // try current dir - jarFile = "." + File.separator + jarName; + jarFile = findJarInDirectory(new File("."), jarFilePrefix); if (checkJar(jarFile, minSize)) { try { put(jarEntry, new File(jarFile).getCanonicalFile().getAbsolutePath()); @@ -536,7 +541,7 @@ } // try current dir + lib - jarFile = ".." + File.separator + "lib" + File.separator + jarName; + jarFile = findJarInDirectory(new File(".." + File.separator + "lib"), jarFilePrefix); if (checkJar(jarFile, minSize)) { try { put(jarEntry, new File(jarFile).getCanonicalFile().getAbsolutePath()); @@ -546,7 +551,7 @@ e.printStackTrace(); } } - jarFile = "." + File.separator + "lib" + File.separator + jarName; + jarFile = findJarInDirectory(new File("lib"), jarFilePrefix); if (checkJar(jarFile, minSize)) { try { put(jarEntry, new File(jarFile).getCanonicalFile().getAbsolutePath()); @@ -558,7 +563,7 @@ } // try current dir + bin - jarFile = "." + File.separator + "bin" + File.separator + jarName; + jarFile = findJarInDirectory(new File("bin"), jarFilePrefix); if (checkJar(jarFile, minSize)) { try { put(jarEntry, new File(jarFile).getCanonicalFile().getAbsolutePath()); @@ -580,8 +585,8 @@ } } if (jwsDir != null) { - jarFile = findFile(new File(jwsDir), jarName, minSize); - System.out.print("Searching " + jarName + " in " + jwsDir + " ... "); + jarFile = findFile(new File(jwsDir), jarFilePrefix, minSize); + System.out.print("Searching " + jarFilePrefix + " in " + jwsDir + " ... "); if (jarFile != null && checkJar(jarFile)) { System.out.println("found at " + jarFile); put(jarEntry, jarFile); @@ -590,7 +595,7 @@ put(jarEntry, File.separator); } } - System.out.println(jarName+" not found"); + System.out.println(jarFilePrefix+" not found"); } } @@ -613,6 +618,15 @@ } return null; } + + String findJarInDirectory(File dir, String prefix) { + for (File f: dir.listFiles()) { + if (f.getName().startsWith(prefix) && f.getName().endsWith(".jar")) { + return f.getAbsolutePath(); + } + } + return null; + } public static boolean checkJar(String jar) { try { @@ -682,8 +696,9 @@ StringTokenizer st = new StringTokenizer(System.getProperty("java.class.path"), File.pathSeparator); while (st.hasMoreTokens()) { String token = st.nextToken(); - if (token.endsWith(file)) { - return new File(token).getAbsolutePath(); + File f = new File(token); + if (f.getName().startsWith(file)) { + return f.getAbsolutePath(); } } return null; @@ -700,9 +715,7 @@ File f = (new File(eclipse)).getParentFile().getParentFile(); if (eclipse.contains("Eclipse.app/Contents")) // MacOs case f = f.getParentFile().getParentFile(); - f = new File(f+"/"+getEclipseInstallationDirectory()+"/lib/"+file); - if (f.exists()) - return f.getAbsolutePath(); + return findJarInDirectory(new File(f+"/"+getEclipseInstallationDirectory()+"/lib"), file); } return null; } Modified: trunk/src/jason/util/ConfigGUI.java =================================================================== --- trunk/src/jason/util/ConfigGUI.java 2016-04-29 11:22:47 UTC (rev 1910) +++ trunk/src/jason/util/ConfigGUI.java 2016-05-02 14:45:20 UTC (rev 1911) @@ -328,7 +328,7 @@ try { JFileChooser chooser = new JFileChooser(System.getProperty("user.dir")); chooser.setDialogTitle("Select the "+jarfile+" file"); - chooser.setFileFilter(new JarFileFilter(jarfile, "The "+jarfile+" file")); + chooser.setFileFilter(new JarFileFilter("The "+jarfile+" file")); //chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { String selJar = (new File(chooser.getSelectedFile().getPath())).getCanonicalPath(); @@ -394,13 +394,12 @@ } class JarFileFilter extends FileFilter { - String jar,ds; - public JarFileFilter(String jar, String ds) { - this.jar = jar; + String ds; + public JarFileFilter(String ds) { this.ds = ds; } public boolean accept(File f) { - if (f.getName().endsWith(jar) || f.isDirectory()) { + if (f.getName().endsWith("jar") || f.isDirectory()) { return true; } else { return false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-29 11:22:49
|
Revision: 1910 http://sourceforge.net/p/jason/svn/1910 Author: jomifred Date: 2016-04-29 11:22:47 +0000 (Fri, 29 Apr 2016) Log Message: ----------- add ns in predicate indicator Modified Paths: -------------- trunk/bin/publish-maven.sh trunk/build.xml trunk/pom.xml trunk/src/jason/asSyntax/Literal.java trunk/src/jason/asSyntax/LiteralImpl.java trunk/src/jason/asSyntax/PredicateIndicator.java trunk/src/jason/asSyntax/Trigger.java trunk/src/jason/bb/BeliefBase.java trunk/src/jason/bb/DefaultBeliefBase.java Modified: trunk/bin/publish-maven.sh =================================================================== --- trunk/bin/publish-maven.sh 2016-04-26 19:21:37 UTC (rev 1909) +++ trunk/bin/publish-maven.sh 2016-04-29 11:22:47 UTC (rev 1910) @@ -1,6 +1,6 @@ #!/bin/bash -REL=2.0.beta +REL=2.0-SNAPSHOT ant maven-stage Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2016-04-26 19:21:37 UTC (rev 1909) +++ trunk/build.xml 2016-04-29 11:22:47 UTC (rev 1910) @@ -5,7 +5,7 @@ <property environment="env" /> <property name="version" value="2" /> - <property name="release" value="0.beta" /> + <property name="release" value="0-SNAPSHOT" /> <property name="jasonJar" value="${basedir}/lib/jason-${version}.${release}.jar" /> <property name="jadeJar" value="${basedir}/lib/jade.jar" /> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2016-04-26 19:21:37 UTC (rev 1909) +++ trunk/pom.xml 2016-04-29 11:22:47 UTC (rev 1910) @@ -4,7 +4,7 @@ <artifactId>jason</artifactId> <packaging>jar</packaging> <name>Jason</name> - <version>2.0.beta</version> + <version>2.0-SNAPSHOT</version> <description>Jason is a fully-fledged interpreter for an extended version of AgentSpeak, a BDI agent-oriented logic programming language, and is implemented in Java. Using JADE a multi-agent system can be distributed over a network effortlessly.</description> <url>http://jason.sf.net</url> <licenses> Modified: trunk/src/jason/asSyntax/Literal.java =================================================================== --- trunk/src/jason/asSyntax/Literal.java 2016-04-26 19:21:37 UTC (rev 1909) +++ trunk/src/jason/asSyntax/Literal.java 2016-04-29 11:22:47 UTC (rev 1910) @@ -110,7 +110,7 @@ /** returns name space :: functor symbol / arity */ public PredicateIndicator getPredicateIndicator() { if (predicateIndicatorCache == null) { - predicateIndicatorCache = new PredicateIndicator( getFunctor(), getArity()); + predicateIndicatorCache = new PredicateIndicator( getNS(), getFunctor(), getArity()); } return predicateIndicatorCache; } Modified: trunk/src/jason/asSyntax/LiteralImpl.java =================================================================== --- trunk/src/jason/asSyntax/LiteralImpl.java 2016-04-26 19:21:37 UTC (rev 1909) +++ trunk/src/jason/asSyntax/LiteralImpl.java 2016-04-29 11:22:47 UTC (rev 1910) @@ -163,7 +163,7 @@ @Override public PredicateIndicator getPredicateIndicator() { if (predicateIndicatorCache == null) - predicateIndicatorCache = new PredicateIndicator(((type == LPos) ? getFunctor() : "~"+getFunctor()),getArity()); + predicateIndicatorCache = new PredicateIndicator(getNS(), ((type == LPos) ? getFunctor() : "~"+getFunctor()),getArity()); return predicateIndicatorCache; } Modified: trunk/src/jason/asSyntax/PredicateIndicator.java =================================================================== --- trunk/src/jason/asSyntax/PredicateIndicator.java 2016-04-26 19:21:37 UTC (rev 1909) +++ trunk/src/jason/asSyntax/PredicateIndicator.java 2016-04-29 11:22:47 UTC (rev 1910) @@ -12,19 +12,19 @@ private final String functor; private final int arity; private final int hash; + private final Atom ns; public PredicateIndicator(String functor, int arity) { + this(Literal.DefaultNS, functor, arity); + } + + public PredicateIndicator(Atom ns, String functor, int arity) { this.functor = functor; this.arity = arity; + this.ns = ns; hash = calcHash(); } - public PredicateIndicator(String prefix, PredicateIndicator pi) { - this.functor = prefix + pi.functor; - this.arity = pi.arity; - hash = calcHash(); - } - public String getFunctor() { return functor; } @@ -32,13 +32,17 @@ public int getArity() { return arity; } - + + public Atom getNS() { + return ns; + } + @Override public boolean equals(Object o) { if (o == this) return true; if (o != null && o instanceof PredicateIndicator && o.hashCode() == this.hashCode()) { final PredicateIndicator pi = (PredicateIndicator)o; - return arity == pi.arity && functor.equals(pi.functor); + return arity == pi.arity && functor.equals(pi.functor) && ns.equals(pi.ns); } return false; } @@ -50,21 +54,27 @@ @Override public int compareTo(PredicateIndicator pi) { - int c = this.functor.compareTo(pi.functor); + int c = this.ns.compareTo(pi.ns); if (c != 0) return c; + c = this.functor.compareTo(pi.functor); + if (c != 0) return c; + if (pi.arity > this.arity) return -1; if (this.arity > pi.arity) return 1; return 0; } private int calcHash() { - int t = 31 * arity; + int t = 31 * arity * ns.hashCode(); if (functor != null) t = 31 * t + functor.hashCode(); return t; } public String toString() { - return functor + "/" + arity; + if (ns == Literal.DefaultNS) + return functor + "/" + arity; + else + return ns + "::" + functor + "/" + arity; } } Modified: trunk/src/jason/asSyntax/Trigger.java =================================================================== --- trunk/src/jason/asSyntax/Trigger.java 2016-04-26 19:21:37 UTC (rev 1909) +++ trunk/src/jason/asSyntax/Trigger.java 2016-04-29 11:22:47 UTC (rev 1910) @@ -182,7 +182,7 @@ @Override public PredicateIndicator getPredicateIndicator() { if (predicateIndicatorCache == null) { - predicateIndicatorCache = new PredicateIndicator(operator.toString() + type + literal.getFunctor(), literal.getArity()); + predicateIndicatorCache = new PredicateIndicator(literal.getNS(), operator.toString() + type + literal.getFunctor(), literal.getArity()); } return predicateIndicatorCache; } Modified: trunk/src/jason/bb/BeliefBase.java =================================================================== --- trunk/src/jason/bb/BeliefBase.java 2016-04-26 19:21:37 UTC (rev 1909) +++ trunk/src/jason/bb/BeliefBase.java 2016-04-29 11:22:47 UTC (rev 1910) @@ -88,8 +88,7 @@ * 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) { return getCandidateBeliefs(Literal.DefaultNS, pi); } - public Iterator<Literal> getCandidateBeliefs(Atom namespace, PredicateIndicator pi) { return null; } + public abstract Iterator<Literal> getCandidateBeliefs(PredicateIndicator pi); /** * Returns an iterator for all literals relevant for l's predicate Modified: trunk/src/jason/bb/DefaultBeliefBase.java =================================================================== --- trunk/src/jason/bb/DefaultBeliefBase.java 2016-04-26 19:21:37 UTC (rev 1909) +++ trunk/src/jason/bb/DefaultBeliefBase.java 2016-04-29 11:22:47 UTC (rev 1910) @@ -298,8 +298,8 @@ } @Override - public Iterator<Literal> getCandidateBeliefs(Atom namespace, PredicateIndicator pi) { - BelEntry entry = nameSpaces.get(namespace).get(pi); + public Iterator<Literal> getCandidateBeliefs(PredicateIndicator pi) { + BelEntry entry = nameSpaces.get(pi.getNS()).get(pi); if (entry != null) return entry.list.iterator(); else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-26 19:21:39
|
Revision: 1909 http://sourceforge.net/p/jason/svn/1909 Author: jomifred Date: 2016-04-26 19:21:37 +0000 (Tue, 26 Apr 2016) Log Message: ----------- improve sleep of test ag arch Modified Paths: -------------- trunk/applications/as-unit-test/src/example/TestExampleEnvironment.java trunk/applications/as-unit-test/src/jason/asunit/TestArch.java trunk/build.xml trunk/src/asl/kqmlPlans.asl trunk/src/jason/asSemantics/Agent.java trunk/src/jason/mas2j/parser/MAS2JavaParser.jcc trunk/src/jason/mas2j/parser/mas2jTokenManager.java Modified: trunk/applications/as-unit-test/src/example/TestExampleEnvironment.java =================================================================== --- trunk/applications/as-unit-test/src/example/TestExampleEnvironment.java 2016-04-26 17:39:06 UTC (rev 1908) +++ trunk/applications/as-unit-test/src/example/TestExampleEnvironment.java 2016-04-26 19:21:37 UTC (rev 1909) @@ -33,8 +33,7 @@ public void testPerception1() { ag.addGoal("start"); // add a new goal for the agent ag.assertBel("info",20); - System.out.println(ag.getBB()); - ag.assertBel("info[source(second_source), source(percept)]",20); // the agent should believe in info with two sources + ag.assertBel("info[source(second_source), source(percept)]",10); // the agent should believe in info with two sources } @Test(timeout=2000) public void testPerception2() { Modified: trunk/applications/as-unit-test/src/jason/asunit/TestArch.java =================================================================== --- trunk/applications/as-unit-test/src/jason/asunit/TestArch.java 2016-04-26 17:39:06 UTC (rev 1908) +++ trunk/applications/as-unit-test/src/jason/asunit/TestArch.java 2016-04-26 19:21:37 UTC (rev 1909) @@ -53,6 +53,12 @@ while (condition.test(this)) { cycle++; getTS().reasoningCycle(); + if (getTS().canSleep()) + try { + Thread.sleep(50); + } catch (InterruptedException e) { + e.printStackTrace(); + } } condition.notifyAll(); } @@ -71,7 +77,8 @@ @Override public Collection<Literal> perceive() { - if (getEnvInfraTier() != null) + //System.out.println(super.perceive()+"*"+getEnvInfraTier()); + if (getEnvInfraTier() != null) return super.perceive(); else return null; Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2016-04-26 17:39:06 UTC (rev 1908) +++ trunk/build.xml 2016-04-26 19:21:37 UTC (rev 1909) @@ -172,7 +172,7 @@ <attribute name="Main-Class" value="jason.util.ConfigGUI"/> </manifest> </jar> - <!--copy file="${jasonJar}" todir="${jarRepo}" failonerror="false" quiet="true" /--> + <copy file="${jasonJar}" tofile="lib/jason.jar" /> </target> <target name="jar-core" depends="jar"> Modified: trunk/src/asl/kqmlPlans.asl =================================================================== --- trunk/src/asl/kqmlPlans.asl 2016-04-26 17:39:06 UTC (rev 1908) +++ trunk/src/asl/kqmlPlans.asl 2016-04-26 19:21:37 UTC (rev 1909) @@ -14,7 +14,7 @@ +!kqml_received(Sender, tell, NS::Content, _) : .literal(Content) & .ground(Content) & - not .list(Content) & + not .list(Content) & .add_nested_source(Content, Sender, CA) <- +NS::CA. @kqmlReceivedTellList Modified: trunk/src/jason/asSemantics/Agent.java =================================================================== --- trunk/src/jason/asSemantics/Agent.java 2016-04-26 17:39:06 UTC (rev 1908) +++ trunk/src/jason/asSemantics/Agent.java 2016-04-26 19:21:37 UTC (rev 1909) @@ -722,7 +722,6 @@ * @return the number of changes (add + dels) */ public int buf(Collection<Literal> percepts) { - /* // complexity 3n Modified: trunk/src/jason/mas2j/parser/MAS2JavaParser.jcc =================================================================== --- trunk/src/jason/mas2j/parser/MAS2JavaParser.jcc 2016-04-26 17:39:06 UTC (rev 1908) +++ trunk/src/jason/mas2j/parser/MAS2JavaParser.jcc 2016-04-26 19:21:37 UTC (rev 1909) @@ -102,7 +102,7 @@ | "\t" | "\n" | "\r" -| <"//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")> +| <"//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")? > | <"/*" (~["*"])* "*" ("*" | ~["*","/"] (~["*"])* "*")* "/"> } Modified: trunk/src/jason/mas2j/parser/mas2jTokenManager.java =================================================================== --- trunk/src/jason/mas2j/parser/mas2jTokenManager.java 2016-04-26 17:39:06 UTC (rev 1908) +++ trunk/src/jason/mas2j/parser/mas2jTokenManager.java 2016-04-26 19:21:37 UTC (rev 1909) @@ -1059,12 +1059,18 @@ jjAddStates(5, 6); break; case 64: - if (curChar == 47) - jjCheckNAddStates(14, 16); + if (curChar != 47) + break; + if (kind > 5) + kind = 5; + jjCheckNAddStates(14, 16); break; case 65: - if ((0xffffffffffffdbffL & l) != 0L) - jjCheckNAddStates(14, 16); + if ((0xffffffffffffdbffL & l) == 0L) + break; + if (kind > 5) + kind = 5; + jjCheckNAddStates(14, 16); break; case 66: if ((0x2400L & l) != 0L && kind > 5) @@ -1493,6 +1499,8 @@ jjstateSet[jjnewStateCnt++] = 61; break; case 65: + if (kind > 5) + kind = 5; jjAddStates(14, 16); break; case 70: @@ -1547,8 +1555,11 @@ jjAddStates(7, 9); break; case 65: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - jjAddStates(14, 16); + if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) + break; + if (kind > 5) + kind = 5; + jjAddStates(14, 16); break; case 70: if (jjCanMove_0(hiByte, i1, i2, l1, l2)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-26 17:39:08
|
Revision: 1908 http://sourceforge.net/p/jason/svn/1908 Author: jomifred Date: 2016-04-26 17:39:06 +0000 (Tue, 26 Apr 2016) Log Message: ----------- fix EOF and // comments issue Modified Paths: -------------- trunk/applications/as-unit-test/src/example/BRFTestEnv.java trunk/applications/as-unit-test/src/example/TestExampleEnvironment.java trunk/build.xml trunk/pom.xml trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc trunk/src/jason/asSyntax/parser/as2jTokenManager.java Added Paths: ----------- trunk/bin/publish-maven.sh Modified: trunk/applications/as-unit-test/src/example/BRFTestEnv.java =================================================================== --- trunk/applications/as-unit-test/src/example/BRFTestEnv.java 2016-04-19 06:07:27 UTC (rev 1907) +++ trunk/applications/as-unit-test/src/example/BRFTestEnv.java 2016-04-26 17:39:06 UTC (rev 1908) @@ -9,7 +9,7 @@ public static final Literal iInfo = Literal.parseLiteral("info"); public boolean executeAction(String agName, Structure pAction) { - // System.out.println(agName+" executing action "+pAction); + //System.out.println(agName+" executing action "+pAction); if (pAction.getFunctor().equals("get_info_as_percept")) addPercept( agName, Literal.parseLiteral("info") ); else if (pAction.getFunctor().equals("clear_my_percepts")) Modified: trunk/applications/as-unit-test/src/example/TestExampleEnvironment.java =================================================================== --- trunk/applications/as-unit-test/src/example/TestExampleEnvironment.java 2016-04-19 06:07:27 UTC (rev 1907) +++ trunk/applications/as-unit-test/src/example/TestExampleEnvironment.java 2016-04-26 17:39:06 UTC (rev 1908) @@ -32,7 +32,9 @@ @Test(timeout=2000) public void testPerception1() { ag.addGoal("start"); // add a new goal for the agent - ag.assertBel("info[source(second_source), source(percept)]",10); // the agent should believe in info with two sources + ag.assertBel("info",20); + System.out.println(ag.getBB()); + ag.assertBel("info[source(second_source), source(percept)]",20); // the agent should believe in info with two sources } @Test(timeout=2000) public void testPerception2() { Added: trunk/bin/publish-maven.sh =================================================================== --- trunk/bin/publish-maven.sh (rev 0) +++ trunk/bin/publish-maven.sh 2016-04-26 17:39:06 UTC (rev 1908) @@ -0,0 +1,10 @@ +#!/bin/bash + +REL=2.0.beta + +ant maven-stage + +cd ~/.m2/repository/net/sf/jason/jason +scp -r $REL jomifred,ja...@we...:/home/project-web/jacamo/htdocs/maven2/net/sf/jason/jason +cp maven-metadata-local.xml maven-metadata.xml +scp maven-metadata.x* jomifred,ja...@we...:/home/project-web/jacamo/htdocs/maven2/net/sf/jason/jason Property changes on: trunk/bin/publish-maven.sh ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2016-04-19 06:07:27 UTC (rev 1907) +++ trunk/build.xml 2016-04-26 17:39:06 UTC (rev 1908) @@ -4,17 +4,18 @@ <property environment="env" /> - <property name="jasonJar" value="${basedir}/lib/jason.jar" /> + <property name="version" value="2" /> + <property name="release" value="0.beta" /> + + <property name="jasonJar" value="${basedir}/lib/jason-${version}.${release}.jar" /> <property name="jadeJar" value="${basedir}/lib/jade.jar" /> <property name="jasonSJar" value="${basedir}/lib/s-jason.jar" /> <property name="replJar" value="${basedir}/lib/jason-repl.jar" /> <property name="coreJar" value="${basedir}/lib/jason-core.jar" /> - + <property name="build.dir" value="${basedir}/bin/classes" /> <property name="dist.properties" value="${basedir}/bin/dist.properties" /> - <property name="version" value="2" /> - <property name="release" value="0.beta" /> <property name="distDir" value="${env.HOME}/tmp/x/Jason-${version}.${release}" /> <property name="distFile" value="${env.HOME}/Jason-${version}.${release}" /> @@ -171,7 +172,7 @@ <attribute name="Main-Class" value="jason.util.ConfigGUI"/> </manifest> </jar> - <!-- copy file="${jasonJar}" todir="applications/jason-eclipse-plugin/lib" /--> + <!--copy file="${jasonJar}" todir="${jarRepo}" failonerror="false" quiet="true" /--> </target> <target name="jar-core" depends="jar"> Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2016-04-19 06:07:27 UTC (rev 1907) +++ trunk/pom.xml 2016-04-26 17:39:06 UTC (rev 1908) @@ -4,7 +4,7 @@ <artifactId>jason</artifactId> <packaging>jar</packaging> <name>Jason</name> - <version>1.4.2</version> + <version>2.0.beta</version> <description>Jason is a fully-fledged interpreter for an extended version of AgentSpeak, a BDI agent-oriented logic programming language, and is implemented in Java. Using JADE a multi-agent system can be distributed over a network effortlessly.</description> <url>http://jason.sf.net</url> <licenses> Modified: trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc =================================================================== --- trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc 2016-04-19 06:07:27 UTC (rev 1907) +++ trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc 2016-04-26 17:39:06 UTC (rev 1908) @@ -140,7 +140,7 @@ | "\t" | "\n" | "\r" -| <"//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")> +| <"//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")?> | <"/*" (~["*"])* "*" ("*" | ~["*","/"] (~["*"])* "*")* "/"> } Modified: trunk/src/jason/asSyntax/parser/as2jTokenManager.java =================================================================== --- trunk/src/jason/asSyntax/parser/as2jTokenManager.java 2016-04-19 06:07:27 UTC (rev 1907) +++ trunk/src/jason/asSyntax/parser/as2jTokenManager.java 2016-04-26 17:39:06 UTC (rev 1908) @@ -421,7 +421,11 @@ if (curChar == 42) jjCheckNAddTwoStates(20, 21); else if (curChar == 47) + { + if (kind > 5) + kind = 5; jjCheckNAddStates(0, 2); + } break; case 0: if ((0x3ff000000000000L & l) != 0L) @@ -496,8 +500,11 @@ jjAddStates(8, 9); break; case 15: - if ((0xffffffffffffdbffL & l) != 0L) - jjCheckNAddStates(0, 2); + if ((0xffffffffffffdbffL & l) == 0L) + break; + if (kind > 5) + kind = 5; + jjCheckNAddStates(0, 2); break; case 16: if ((0x2400L & l) != 0L && kind > 5) @@ -703,6 +710,8 @@ kind = 28; break; case 15: + if (kind > 5) + kind = 5; jjAddStates(0, 2); break; case 20: @@ -761,8 +770,11 @@ jjAddStates(10, 12); break; case 15: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) - jjAddStates(0, 2); + if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) + break; + if (kind > 5) + kind = 5; + jjAddStates(0, 2); break; case 20: if (jjCanMove_0(hiByte, i1, i2, l1, l2)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-19 06:07:29
|
Revision: 1907 http://sourceforge.net/p/jason/svn/1907 Author: jomifred Date: 2016-04-19 06:07:27 +0000 (Tue, 19 Apr 2016) Log Message: ----------- fix typo as suggested by igo...@gm... Modified Paths: -------------- trunk/src/jason/infra/centralised/CentralisedAgArch.java Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-18 14:56:15 UTC (rev 1906) +++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-19 06:07:27 UTC (rev 1907) @@ -318,7 +318,7 @@ if (rec == null) { if (isRunning()) - throw new ReceiverNotFoundException("Receiver '" + m.getReceiver() + "' does not exists! Could not send " + m); + throw new ReceiverNotFoundException("Receiver '" + m.getReceiver() + "' does not exist! Could not send " + m); else return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-18 14:56:17
|
Revision: 1906 http://sourceforge.net/p/jason/svn/1906 Author: jomifred Date: 2016-04-18 14:56:15 +0000 (Mon, 18 Apr 2016) Log Message: ----------- add new createLiteral with namesapce Modified Paths: -------------- trunk/src/jason/asSyntax/ASSyntax.java Modified: trunk/src/jason/asSyntax/ASSyntax.java =================================================================== --- trunk/src/jason/asSyntax/ASSyntax.java 2016-04-18 14:41:25 UTC (rev 1905) +++ trunk/src/jason/asSyntax/ASSyntax.java 2016-04-18 14:56:15 UTC (rev 1906) @@ -109,6 +109,9 @@ public static Literal createLiteral(String functor, Term... terms) { return new LiteralImpl(functor).addTerms(terms); } + public static Literal createLiteral(Atom namespace, String functor, Term... terms) { + return new LiteralImpl(namespace, Literal.LPos, functor).addTerms(terms); + } /** * Creates a new literal, the first argument is either Literal.LPos or Literal.LNeg, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-18 14:41:28
|
Revision: 1905 http://sourceforge.net/p/jason/svn/1905 Author: jomifred Date: 2016-04-18 14:41:25 +0000 (Mon, 18 Apr 2016) Log Message: ----------- do at least one sense cycle Modified Paths: -------------- trunk/src/jason/asSemantics/Agent.java trunk/src/jason/asSemantics/TransitionSystem.java trunk/src/jason/infra/centralised/CentralisedAgArch.java trunk/src/jason/infra/centralised/RunCentralisedMAS.java Modified: trunk/src/jason/asSemantics/Agent.java =================================================================== --- trunk/src/jason/asSemantics/Agent.java 2016-04-13 22:22:03 UTC (rev 1904) +++ trunk/src/jason/asSemantics/Agent.java 2016-04-18 14:41:25 UTC (rev 1905) @@ -561,9 +561,7 @@ try { for (Term t: ASSyntax.parseList("["+sBels+"]")) { Literal b = ((Literal)t).forceFullLiteralImpl(); - if (!b.hasSource()) - b.addAnnot(BeliefBase.TSelf); - getBB().add(b); + addBel(b); } } catch (Exception e) { logger.log(Level.WARNING, "Initial beliefs from project '["+sBels+"]' is not a list of literals."); Modified: trunk/src/jason/asSemantics/TransitionSystem.java =================================================================== --- trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-13 22:22:03 UTC (rev 1904) +++ trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-18 14:41:25 UTC (rev 1905) @@ -1499,9 +1499,8 @@ stepAct = State.ProcAct; do { - if (!getUserAgArch().isRunning()) return; applySemanticRuleAct(); - } while (stepAct != State.StartRC); + } while (stepAct != State.StartRC && getUserAgArch().isRunning()); ActionExec action = C.getAction(); Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-13 22:22:03 UTC (rev 1904) +++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-18 14:41:25 UTC (rev 1905) @@ -193,20 +193,23 @@ TransitionSystem ts = getTS(); int i = 0; - while (running && i++ < cyclesSense && !ts.canSleepSense()) { - ts.sense(); - } + do { + ts.sense(); // must run at least once, so that perceive() is called + } while (running && ++i < cyclesSense && !ts.canSleepSense()); } + //int sumDel = 0; int nbDel = 0; protected void deliberate() { TransitionSystem ts = getTS(); - int i = 0; while (running && i++ < cyclesDeliberate && !ts.canSleepDeliberate()) { ts.deliberate(); } + //sumDel += i; nbDel++; + //System.out.println("running del "+(sumDel/nbDel)+"/"+cyclesDeliberate); } + //int sumAct = 0; int nbAct = 0; protected void act() { TransitionSystem ts = getTS(); @@ -218,6 +221,8 @@ while (running && i++ < ca && !ts.canSleepAct()) { ts.act(); } + //sumAct += i; nbAct++; + //System.out.println("running act "+(sumAct/nbAct)+"/"+ca); } protected void reasoningCycle() { @@ -297,6 +302,7 @@ // Default perception assumes Complete and Accurate sensing. @Override public Collection<Literal> perceive() { + super.perceive(); if (infraEnv == null) return null; Collection<Literal> percepts = infraEnv.getUserEnvironment().getPercepts(getAgName()); if (logger.isLoggable(Level.FINE) && percepts != null) logger.fine("percepts: " + percepts); @@ -356,7 +362,8 @@ /** called by the TS to ask the execution of an action in the environment */ @Override public void act(ActionExec action) { - if (logger.isLoggable(Level.FINE)) logger.info("doing: " + action.getActionTerm()); + //if (logger.isLoggable(Level.FINE)) logger.fine("doing: " + action.getActionTerm()); + super.act(action); if (isRunning() && infraEnv != null) infraEnv.act(getAgName(), action); } Modified: trunk/src/jason/infra/centralised/RunCentralisedMAS.java =================================================================== --- trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-13 22:22:03 UTC (rev 1904) +++ trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-18 14:41:25 UTC (rev 1905) @@ -841,8 +841,7 @@ if (project.getInfrastructure().getParametersArray().length > 4) { cycles = Integer.parseInt(project.getInfrastructure().getParameter(5)); } else { - cycles = 5; - + cycles = 5; } } else if (project.getInfrastructure().getParametersArray().length > 2) { cycles = Integer.parseInt(project.getInfrastructure().getParameter(2)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-13 22:22:05
|
Revision: 1904 http://sourceforge.net/p/jason/svn/1904 Author: jomifred Date: 2016-04-13 22:22:03 +0000 (Wed, 13 Apr 2016) Log Message: ----------- call sleep in archs (instead of in TS) Modified Paths: -------------- trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java trunk/src/jason/architecture/AgArch.java trunk/src/jason/architecture/AgArchInfraTier.java trunk/src/jason/infra/centralised/RunCentralisedMAS.java trunk/src/jason/infra/jade/JadeAgArch.java trunk/src/jason/infra/jade/JasonBridgeArch.java Modified: trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java =================================================================== --- trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java 2016-04-13 21:12:58 UTC (rev 1903) +++ trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java 2016-04-13 22:22:03 UTC (rev 1904) @@ -44,6 +44,8 @@ // calls the Jason engine to perform one reasoning cycle logger.fine("Reasoning...."); getTS().reasoningCycle(); + if (getTS().canSleep()) + sleep(); } } catch (Exception e) { logger.log(Level.SEVERE, "Run error", e); @@ -82,10 +84,9 @@ } // a very simple implementation of sleep - @Override public void sleep() { try { - Thread.sleep(1000); + Thread.sleep(1000); } catch (InterruptedException e) {} } Modified: trunk/src/jason/architecture/AgArch.java =================================================================== --- trunk/src/jason/architecture/AgArch.java 2016-04-13 21:12:58 UTC (rev 1903) +++ trunk/src/jason/architecture/AgArch.java 2016-04-13 22:22:03 UTC (rev 1904) @@ -207,10 +207,10 @@ } /** Puts the agent in sleep. */ - public void sleep() { + /*public void sleep() { if (successor != null) successor.sleep(); - } + }*/ public void wake() { if (successor != null) Modified: trunk/src/jason/architecture/AgArchInfraTier.java =================================================================== --- trunk/src/jason/architecture/AgArchInfraTier.java 2016-04-13 21:12:58 UTC (rev 1903) +++ trunk/src/jason/architecture/AgArchInfraTier.java 2016-04-13 22:22:03 UTC (rev 1904) @@ -67,7 +67,7 @@ //public void stopAg(); /** Put the agent in "sleep" mode */ - public void sleep(); + //public void sleep(); /** Removes the agent from the "sleep" mode */ public void wake(); Modified: trunk/src/jason/infra/centralised/RunCentralisedMAS.java =================================================================== --- trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-13 21:12:58 UTC (rev 1903) +++ trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-13 22:22:03 UTC (rev 1904) @@ -837,7 +837,13 @@ if (project.getInfrastructure().getParametersArray().length > 3) { cyclesSense = Integer.parseInt(project.getInfrastructure().getParameter(2)); cyclesDeliberate = Integer.parseInt(project.getInfrastructure().getParameter(3)); - cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); + cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); + if (project.getInfrastructure().getParametersArray().length > 4) { + cycles = Integer.parseInt(project.getInfrastructure().getParameter(5)); + } else { + cycles = 5; + + } } else if (project.getInfrastructure().getParametersArray().length > 2) { cycles = Integer.parseInt(project.getInfrastructure().getParameter(2)); } else { Modified: trunk/src/jason/infra/jade/JadeAgArch.java =================================================================== --- trunk/src/jason/infra/jade/JadeAgArch.java 2016-04-13 21:12:58 UTC (rev 1903) +++ trunk/src/jason/infra/jade/JadeAgArch.java 2016-04-13 22:22:03 UTC (rev 1904) @@ -43,7 +43,7 @@ protected JasonBridgeArch jasonBridgeAgArch; - private boolean enterInSleepMode = false; + //private boolean enterInSleepMode = false; AID controllerAID = new AID(RunJadeMAS.controllerName, AID.ISLOCALNAME); @@ -89,9 +89,10 @@ } */ - void enterInSleepMode() { + /*void enterInSleepMode() { enterInSleepMode = true; - } + }*/ + void wakeUp() { tsBehaviour.restart(); } @@ -223,9 +224,9 @@ block(1000); } } else { - if (enterInSleepMode) { + if (ts.canSleep()) { block(1000); - enterInSleepMode = false; + //enterInSleepMode = false; } else { ts.reasoningCycle(); } Modified: trunk/src/jason/infra/jade/JasonBridgeArch.java =================================================================== --- trunk/src/jason/infra/jade/JasonBridgeArch.java 2016-04-13 21:12:58 UTC (rev 1903) +++ trunk/src/jason/infra/jade/JasonBridgeArch.java 2016-04-13 22:22:03 UTC (rev 1904) @@ -47,11 +47,11 @@ logger.setLevel(getTS().getSettings().logLevel()); } - @Override + /*@Override public void sleep() { jadeAg.enterInSleepMode(); //tsBehaviour.block(1000); - } + }*/ @Override public void wake() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-13 21:13:00
|
Revision: 1903 http://sourceforge.net/p/jason/svn/1903 Author: jomifred Date: 2016-04-13 21:12:58 +0000 (Wed, 13 Apr 2016) Log Message: ----------- fix wakeup of cent ag arch for pool Modified Paths: -------------- trunk/src/jason/infra/centralised/CentralisedAgArchForPool.java trunk/src/jason/infra/centralised/RunCentralisedMAS.java Modified: trunk/src/jason/infra/centralised/CentralisedAgArchForPool.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArchForPool.java 2016-04-13 20:47:26 UTC (rev 1902) +++ trunk/src/jason/infra/centralised/CentralisedAgArchForPool.java 2016-04-13 21:12:58 UTC (rev 1903) @@ -4,7 +4,6 @@ /** an agent architecture for the infra based on thread pool */ public final class CentralisedAgArchForPool extends CentralisedAgArch { - private volatile boolean runWakeAfterTS = false; private volatile boolean isSleeping = false; private ExecutorService executor; @@ -12,78 +11,43 @@ executor = e; } - /* @Override public void sleep() { - //if (sleepingAgs.contains(this)) - // System.out.println("*** ops already slepping "+this); - sleepingAgs.add(this); - }*/ - - @Override - public void sleep() { - //if (sleepingAgs.contains(this)) - // System.out.println("*** oops already sleeping "+this); -// sleepingAgs.add(this); isSleeping = true; - // wake up the agent in 1 second anyway - /*Agent.getScheduler().schedule(new Runnable() { public void run() { wake(); } }, MAX_SLEEP, TimeUnit.MILLISECONDS);*/ - //}, MAX_SLEEP, TimeUnit.MILLISECONDS); } @Override - public synchronized void wake() { - if (isSleeping) { //sleepingAgs.remove(this)) { - isSleeping = false; - /*try { - ThreadPoolExecutor tp = (ThreadPoolExecutor)executor; - if (tp.getQueue().contains(this)) { - System.out.println("ops... ading ag that is already in the pool "+this); - } - } catch (Exception e) { }*/ - executor.execute(this); - } else { - runWakeAfterTS = true; + public void wake() { + synchronized (this) { + if (isSleeping) { + isSleeping = false; + executor.execute(this); + } } } - /*@Override - public void receiveMsg(final Message m) { - executor.execute(new Runnable() { - public void run() { - CentralisedAgArchForPool.super.receiveMsg(m); - } - }); - }*/ - - @Override public void run() { int number_cycles = getCycles(); int i = 0; while (isRunning() && i++ < number_cycles) { - runWakeAfterTS = false; - //if (!getTS().reasoningCycle() && !runWakeAfterTS) { // the agent run a cycle (did not enter in sleep) - //if (!reasoningCycle()) { // the agent run a cycle (did not enter in sleep) reasoningCycle(); - if (getTS().canSleep()) { - sleep(); - if (runWakeAfterTS) { - wake(); + synchronized (this) { + if (getTS().canSleep()) { + sleep(); + return; + } else if (i == number_cycles) { + executor.execute(this); + return; } - return; } } - - if (isRunning()) { - executor.execute(this); - } } } Modified: trunk/src/jason/infra/centralised/RunCentralisedMAS.java =================================================================== --- trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-13 20:47:26 UTC (rev 1902) +++ trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-13 21:12:58 UTC (rev 1903) @@ -840,6 +840,8 @@ cyclesAct = Integer.parseInt(project.getInfrastructure().getParameter(4)); } else if (project.getInfrastructure().getParametersArray().length > 2) { cycles = Integer.parseInt(project.getInfrastructure().getParameter(2)); + } else { + cycles = 5; } logger.info("Creating a thread pool with "+maxthreads+" thread(s)." + "Cycles: " + cyclesSense + ", " + cyclesDeliberate + ", " + cyclesAct + " Reasoning Cycles: " + cycles); @@ -943,12 +945,11 @@ while (isRunning() && i < number_cycles) { runWakeAfterTS = false; - if (!getTS().sense()) { // the agent run a cycle (did not enter in sleep) - if (runWakeAfterTS) { - wake(); - } - return; - } else if (getTS().canSleepSense()) { + getTS().sense(); + if (getTS().canSleepSense()) { + if (runWakeAfterTS) { + wake(); + } break; } i++; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-13 20:47:28
|
Revision: 1902 http://sourceforge.net/p/jason/svn/1902 Author: jomifred Date: 2016-04-13 20:47:26 +0000 (Wed, 13 Apr 2016) Log Message: ----------- remove sleep control from TS, it is handled now in ag archs Modified Paths: -------------- trunk/src/jason/asSemantics/TransitionSystem.java trunk/src/jason/infra/centralised/CentralisedAgArch.java trunk/src/jason/infra/centralised/RunCentralisedMAS.java Added Paths: ----------- trunk/src/jason/infra/centralised/CentralisedAgArchForPool.java Modified: trunk/src/jason/asSemantics/TransitionSystem.java =================================================================== --- trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-12 12:37:14 UTC (rev 1901) +++ trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-13 20:47:26 UTC (rev 1902) @@ -65,7 +65,6 @@ import jason.asSyntax.VarTerm; import jason.asSyntax.parser.ParseException; import jason.bb.BeliefBase; -import jason.infra.centralised.CentralisedAgArchAsynchronous; import jason.runtime.Settings; import jason.stdlib.add_nested_source; import jason.stdlib.desire; @@ -1409,18 +1408,13 @@ /* the actual transition system of the AS interpreter */ /**********************************************************************/ - public boolean reasoningCycle() { - if (!sense()) - return false; - if (!deliberate()) - return false; - if (!act()) - return false; - - return true; + public void reasoningCycle() { + sense(); + deliberate(); + act(); } - public boolean sense() { + public void sense() { try { if (logger.isLoggable(Level.FINE)) logger.fine("Start new reasoning cycle"); getUserAgArch().reasoningCycleStarting(); @@ -1436,53 +1430,48 @@ } nrcslbr++; // counting number of cycles since last belief revision - // TODO: move all sleep related code to archs classes - if (!(getUserAgArch() instanceof CentralisedAgArchAsynchronous)) { - if (canSleep()) { - if (!sleepingEvt) { - sleepingEvt = true; - if (ag.pl.getCandidatePlans(PlanLibrary.TE_JAG_SLEEPING) != null) - C.addExternalEv(PlanLibrary.TE_JAG_SLEEPING); - } else { - getUserAgArch().sleep(); - return false; - } - } else if (sleepingEvt) { // code to turn idleEvt false again - if (C.hasMsg()) { // the agent has messages - sleepingEvt = false; - } else if (C.hasEvent()) { - // check if there is an event in C.E not produced by idle intention - for (Event e: C.getEvents()) { - Intention i = e.getIntention(); - if ( !e.getTrigger().equals(PlanLibrary.TE_JAG_SLEEPING) - || - (i != null && i.hasTrigger(PlanLibrary.TE_JAG_SLEEPING, new Unifier())) - ) { - sleepingEvt = false; - break; - } - } - } - if (!sleepingEvt && ag.pl.getCandidatePlans(PlanLibrary.TE_JAG_AWAKING) != null) { - C.addExternalEv(PlanLibrary.TE_JAG_AWAKING); - } + // produce sleep events + if (canSleep()) { + if (!sleepingEvt) { + sleepingEvt = true; + if (ag.pl.getCandidatePlans(PlanLibrary.TE_JAG_SLEEPING) != null) + C.addExternalEv(PlanLibrary.TE_JAG_SLEEPING); + } else { + //getUserAgArch().sleep(); // removes from here. sleep is in the archs } + } else if (sleepingEvt) { // code to turn idleEvt false again + if (C.hasMsg()) { // the agent has messages + sleepingEvt = false; + } else if (C.hasEvent()) { + // check if there is an event in C.E not produced by idle intention + for (Event e: C.getEvents()) { + Intention i = e.getIntention(); + if ( !e.getTrigger().equals(PlanLibrary.TE_JAG_SLEEPING) + || + (i != null && i.hasTrigger(PlanLibrary.TE_JAG_SLEEPING, new Unifier())) + ) { + sleepingEvt = false; + break; + } + } + } + if (!sleepingEvt && ag.pl.getCandidatePlans(PlanLibrary.TE_JAG_AWAKING) != null) { + C.addExternalEv(PlanLibrary.TE_JAG_AWAKING); + } } stepSense = State.StartRC; do { - if (!getUserAgArch().isRunning()) return false; applySemanticRuleSense(); - } while (stepSense != State.SelEv); + } while (stepSense != State.SelEv && getUserAgArch().isRunning()); } catch (Exception e) { logger.log(Level.SEVERE, "*** ERROR in the transition system (sense). "+conf.C+"\nCreating a new C!", e); conf.C.create(); } - return true; } - public boolean deliberate() { + public void deliberate() { try { C.resetDeliberate(); @@ -1495,24 +1484,22 @@ stepDeliberate = State.SelEv; do { - if (!getUserAgArch().isRunning()) return false; applySemanticRuleDeliberate(); - } while (stepDeliberate != State.ProcAct); + } while (stepDeliberate != State.ProcAct && getUserAgArch().isRunning()); } catch (Exception e) { logger.log(Level.SEVERE, "*** ERROR in the transition system (deliberate). "+conf.C+"\nCreating a new C!", e); conf.C.create(); } - return true; } - public boolean act() { + public void act() { try { C.resetAct(); stepAct = State.ProcAct; do { - if (!getUserAgArch().isRunning()) return false; + if (!getUserAgArch().isRunning()) return; applySemanticRuleAct(); } while (stepAct != State.StartRC); @@ -1527,7 +1514,6 @@ logger.log(Level.SEVERE, "*** ERROR in the transition system (act). "+conf.C+"\nCreating a new C!", e); conf.C.create(); } - return true; } /* Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-12 12:37:14 UTC (rev 1901) +++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-13 20:47:26 UTC (rev 1902) @@ -189,39 +189,25 @@ return running; } - protected boolean sense() { + protected void sense() { TransitionSystem ts = getTS(); int i = 0; - while (running && i < cyclesSense) { - if (!ts.sense()) { - return false; - } else if (ts.canSleepSense()) { - break; - } - i++; + while (running && i++ < cyclesSense && !ts.canSleepSense()) { + ts.sense(); } - - return true; } - protected boolean deliberate() { + protected void deliberate() { TransitionSystem ts = getTS(); int i = 0; - while (running && i < cyclesDeliberate) { - if (!ts.deliberate()) { - return false; - } else if (ts.canSleepDeliberate()) { - break; - } - i++; + while (running && i++ < cyclesDeliberate && !ts.canSleepDeliberate()) { + ts.deliberate(); } - - return true; } - protected boolean act() { + protected void act() { TransitionSystem ts = getTS(); int i = 0; @@ -229,23 +215,15 @@ if (cyclesAct == 9999) ca = ts.getC().getIntentions().size(); - while (running && i < ca) { - if (!ts.act()) { - return false; - } else if (ts.canSleepAct()) { - break; - } - i++; + while (running && i++ < ca && !ts.canSleepAct()) { + ts.act(); } - - return true; } - protected boolean reasoningCycle() { - if (!sense()) return false; - if (!deliberate()) return false; - if (!act()) return false; - return true; + protected void reasoningCycle() { + sense(); + deliberate(); + act(); } public void run() { @@ -265,6 +243,8 @@ } else { incCycleNumber(); reasoningCycle(); + if (ts.canSleep()) + sleep(); } } logger.fine("I finished!"); Added: trunk/src/jason/infra/centralised/CentralisedAgArchForPool.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArchForPool.java (rev 0) +++ trunk/src/jason/infra/centralised/CentralisedAgArchForPool.java 2016-04-13 20:47:26 UTC (rev 1902) @@ -0,0 +1,89 @@ +package jason.infra.centralised; + +import java.util.concurrent.ExecutorService; + +/** an agent architecture for the infra based on thread pool */ +public final class CentralisedAgArchForPool extends CentralisedAgArch { + private volatile boolean runWakeAfterTS = false; + private volatile boolean isSleeping = false; + private ExecutorService executor; + + public void setExecutor(ExecutorService e) { + executor = e; + } + + /* + @Override + public void sleep() { + //if (sleepingAgs.contains(this)) + // System.out.println("*** ops already slepping "+this); + sleepingAgs.add(this); + }*/ + + @Override + public void sleep() { + //if (sleepingAgs.contains(this)) + // System.out.println("*** oops already sleeping "+this); +// sleepingAgs.add(this); + isSleeping = true; + // wake up the agent in 1 second anyway + + /*Agent.getScheduler().schedule(new Runnable() { + public void run() { + wake(); + } + }, MAX_SLEEP, TimeUnit.MILLISECONDS);*/ + //}, MAX_SLEEP, TimeUnit.MILLISECONDS); + } + + @Override + public synchronized void wake() { + if (isSleeping) { //sleepingAgs.remove(this)) { + isSleeping = false; + /*try { + ThreadPoolExecutor tp = (ThreadPoolExecutor)executor; + if (tp.getQueue().contains(this)) { + System.out.println("ops... ading ag that is already in the pool "+this); + } + } catch (Exception e) { }*/ + executor.execute(this); + } else { + runWakeAfterTS = true; + } + } + + /*@Override + public void receiveMsg(final Message m) { + executor.execute(new Runnable() { + public void run() { + CentralisedAgArchForPool.super.receiveMsg(m); + } + }); + }*/ + + + @Override + public void run() { + int number_cycles = getCycles(); + int i = 0; + + while (isRunning() && i++ < number_cycles) { + runWakeAfterTS = false; + //if (!getTS().reasoningCycle() && !runWakeAfterTS) { // the agent run a cycle (did not enter in sleep) + //if (!reasoningCycle()) { // the agent run a cycle (did not enter in sleep) + reasoningCycle(); + if (getTS().canSleep()) { + sleep(); + if (runWakeAfterTS) { + wake(); + } + return; + } + } + + if (isRunning()) { + executor.execute(this); + } + } +} + Modified: trunk/src/jason/infra/centralised/RunCentralisedMAS.java =================================================================== --- trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-12 12:37:14 UTC (rev 1901) +++ trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-13 20:47:26 UTC (rev 1902) @@ -850,7 +850,7 @@ } if (configuration == 0) { - int poolSize = ags.size(); + int poolSize = Math.min(8, ags.size()); if (poolSize > maxthreads) { poolSize = maxthreads; } @@ -872,6 +872,8 @@ if (ag.getCyclesAct() == 0) { ag.setCyclesAct(cyclesAct); } + if (ag instanceof CentralisedAgArchForPool) + ((CentralisedAgArchForPool)ag).setExecutor(executor); executor.execute(ag); } @@ -917,84 +919,6 @@ } /** an agent architecture for the infra based on thread pool */ - protected final class CentralisedAgArchForPool extends CentralisedAgArch { - private volatile boolean runWakeAfterTS = false; - - /* - @Override - public void sleep() { - //if (sleepingAgs.contains(this)) - // System.out.println("*** ops already slepping "+this); - sleepingAgs.add(this); - }*/ - - @Override - public void sleep() { - //if (sleepingAgs.contains(this)) - // System.out.println("*** oops already sleeping "+this); - sleepingAgs.add(this); - - // wake up the agent in 1 second anyway - - /*Agent.getScheduler().schedule(new Runnable() { - public void run() { - wake(); - } - }, MAX_SLEEP, TimeUnit.MILLISECONDS);*/ - //}, MAX_SLEEP, TimeUnit.MILLISECONDS); - } - - @Override - public void wake() { - if (sleepingAgs.remove(this)) { - /*try { - ThreadPoolExecutor tp = (ThreadPoolExecutor)executor; - if (tp.getQueue().contains(this)) { - System.out.println("ops... ading ag that is already in the pool "+this); - } - } catch (Exception e) { }*/ - executor.execute(this); - } else { - runWakeAfterTS = true; - } - } - - /*@Override - public void receiveMsg(final Message m) { - executor.execute(new Runnable() { - public void run() { - CentralisedAgArchForPool.super.receiveMsg(m); - } - }); - }*/ - - - @Override - public void run() { - int number_cycles = getCycles(); - int i = 0; - - //System.out.println(getAgName() + " " + number_cycles); - - while (isRunning() && i < number_cycles) { - runWakeAfterTS = false; - //if (!getTS().reasoningCycle() && !runWakeAfterTS) { // the agent run a cycle (did not enter in sleep) - if (!reasoningCycle()) { // the agent run a cycle (did not enter in sleep) - if (runWakeAfterTS) { - wake(); - } - return; - } - i++; - } - - if (isRunning()) { - executor.execute(this); - } - } - } - - /** an agent architecture for the infra based on thread pool */ protected final class CentralisedAgArchSynchronousScheduled extends CentralisedAgArch { private volatile boolean runWakeAfterTS = false; private int currentStep = 0; @@ -1013,7 +937,7 @@ } } - public boolean sense() { + public void sense() { int number_cycles = getCyclesSense(); int i = 0; @@ -1023,7 +947,7 @@ if (runWakeAfterTS) { wake(); } - return false; + return; } else if (getTS().canSleepSense()) { break; } @@ -1033,28 +957,22 @@ if (isRunning()) { executor.execute(this); } - - return true; } - public boolean deliberate() { - boolean result = super.deliberate(); + public void deliberate() { + super.deliberate(); if (isRunning()) { executor.execute(this); } - - return result; } - public boolean act() { - boolean result = super.act(); + public void act() { + super.act(); if (isRunning()) { executor.execute(this); } - - return result; } @Override This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-12 12:37:16
|
Revision: 1901 http://sourceforge.net/p/jason/svn/1901 Author: jomifred Date: 2016-04-12 12:37:14 +0000 (Tue, 12 Apr 2016) Log Message: ----------- fix minor issue in ag arch Modified Paths: -------------- trunk/src/jason/architecture/AgArch.java Modified: trunk/src/jason/architecture/AgArch.java =================================================================== --- trunk/src/jason/architecture/AgArch.java 2016-04-12 12:30:50 UTC (rev 1900) +++ trunk/src/jason/architecture/AgArch.java 2016-04-12 12:37:14 UTC (rev 1901) @@ -219,17 +219,17 @@ public void wakeUpSense() { if (successor != null) - wakeUpSense(); + successor.wakeUpSense(); } public void wakeUpDeliberate() { if (successor != null) - wakeUpDeliberate(); + successor.wakeUpDeliberate(); } public void wakeUpAct() { if (successor != null) - wakeUpAct(); + successor.wakeUpAct(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <xsp...@us...> - 2016-04-12 12:30:53
|
Revision: 1900 http://sourceforge.net/p/jason/svn/1900 Author: xsplyter Date: 2016-04-12 12:30:50 +0000 (Tue, 12 Apr 2016) Log Message: ----------- Refactoring of the sleep/wakeup methods Modified Paths: -------------- trunk/src/jason/architecture/AgArch.java trunk/src/jason/asSemantics/ConcurrentInternalAction.java trunk/src/jason/asSemantics/GoalListenerForMetaEvents.java trunk/src/jason/asSemantics/TransitionSystem.java trunk/src/jason/infra/centralised/CentralisedAgArch.java trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java trunk/src/jason/infra/centralised/CentralisedEnvironment.java trunk/src/jason/infra/components/ActComponent.java trunk/src/jason/infra/components/AgentComponent.java trunk/src/jason/infra/components/CircumstanceListenerComponents.java trunk/src/jason/infra/components/DeliberateComponent.java trunk/src/jason/infra/components/SenseComponent.java trunk/src/jason/stdlib/send.java trunk/src/jason/stdlib/wait.java Modified: trunk/src/jason/architecture/AgArch.java =================================================================== --- trunk/src/jason/architecture/AgArch.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/architecture/AgArch.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -198,7 +198,7 @@ /** called to inform that the action execution is finished */ public void actionExecuted(ActionExec act) { getTS().getC().addFeedbackAction(act); - wakeUpAct(false); + wakeUpAct(); } /** Returns true if the agent can enter in sleep mode. */ @@ -217,19 +217,19 @@ successor.wake(); } - public void wakeUpSense(boolean ts) { + public void wakeUpSense() { if (successor != null) - wakeUpSense(ts); + wakeUpSense(); } - public void wakeUpDeliberate(boolean ts) { + public void wakeUpDeliberate() { if (successor != null) - wakeUpDeliberate(ts); + wakeUpDeliberate(); } - public void wakeUpAct(boolean ts) { + public void wakeUpAct() { if (successor != null) - wakeUpAct(ts); + wakeUpAct(); } Modified: trunk/src/jason/asSemantics/ConcurrentInternalAction.java =================================================================== --- trunk/src/jason/asSemantics/ConcurrentInternalAction.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/asSemantics/ConcurrentInternalAction.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -147,7 +147,7 @@ } } }); - ts.getUserAgArch().wakeUpDeliberate(false); + ts.getUserAgArch().wakeUpDeliberate(); } public void destroy() throws Exception { Modified: trunk/src/jason/asSemantics/GoalListenerForMetaEvents.java =================================================================== --- trunk/src/jason/asSemantics/GoalListenerForMetaEvents.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/asSemantics/GoalListenerForMetaEvents.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -50,6 +50,6 @@ } }); - ts.getUserAgArch().wakeUpDeliberate(false); + ts.getUserAgArch().wakeUpDeliberate(); } } Modified: trunk/src/jason/asSemantics/TransitionSystem.java =================================================================== --- trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -1317,7 +1317,7 @@ } } }); - getUserAgArch().wakeUpSense(false); + getUserAgArch().wakeUpSense(); } }, deadline, TimeUnit.MILLISECONDS); } Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -300,17 +300,17 @@ } @Override - public void wakeUpSense(boolean ts) { + public void wakeUpSense() { wake(); } @Override - public void wakeUpDeliberate(boolean ts) { + public void wakeUpDeliberate() { wake(); } @Override - public void wakeUpAct(boolean ts) { + public void wakeUpAct() { wake(); } @@ -346,7 +346,7 @@ public void receiveMsg(Message m) { mbox.offer(m); - wakeUpSense(false); + wakeUpSense(); } public void broadcast(jason.asSemantics.Message m) throws Exception { Modified: trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -18,10 +18,6 @@ private ExecutorService executorDeliberate; private ExecutorService executorAct; - private boolean sleepingSense = false; - private boolean sleepingDeliberate = false; - private boolean sleepingAct = false; - public Object objSense = new Object(); public Object objDeliberate = new Object(); public Object objAct = new Object(); @@ -34,70 +30,18 @@ actComponent = new ActComponent(this); } - - public void wakeUpSense(boolean ts) { - synchronized (objSense) { - if (ts || sleepingSense) { - sleepingSense = false; - senseComponent.enqueueExecutor(ts); - } - } + public void wakeUpSense() { + senseComponent.wakeUp(); } - public void wakeUpDeliberate(boolean ts) { - synchronized (objDeliberate) { - if (ts || sleepingDeliberate) { - sleepingDeliberate = false; - deliberateComponent.enqueueExecutor(ts); - } - } + public void wakeUpDeliberate() { + deliberateComponent.wakeUp(); } - public void wakeUpAct(boolean ts) { - synchronized (objAct) { - if (ts || sleepingAct) { - sleepingAct = false; - actComponent.enqueueExecutor(ts); - } - } + public void wakeUpAct() { + actComponent.wakeUp(); } - - public void sleepSense() { - sleepingSense = true; - } - public boolean isSleepingSense() { - return sleepingSense; - } - - public void sleepDeliberate() { - sleepingDeliberate = true; - } - - public boolean isSleepingDeliberate() { - return sleepingDeliberate; - } - - public void sleepAct() { - sleepingAct = true; - } - - public boolean isSleepingAct() { - return sleepingAct; - } - - public boolean canSleepSense() { - return getTS().canSleepSense(); - } - - public boolean canSleepDeliberate() { - return getTS().canSleepDeliberate(); - } - - public boolean canSleepAct() { - return getTS().canSleepAct(); - } - public SenseComponent getSenseComponent() { return senseComponent; } Modified: trunk/src/jason/infra/centralised/CentralisedEnvironment.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedEnvironment.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/infra/centralised/CentralisedEnvironment.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -99,16 +99,16 @@ public void informAgsEnvironmentChanged(String... agents) { if (agents.length == 0) { for (CentralisedAgArch ag: masRunner.getAgs().values()) { - ag.getTS().getUserAgArch().wakeUpSense(false); + ag.getTS().getUserAgArch().wakeUpSense(); } } else { for (String agName: agents) { CentralisedAgArch ag = masRunner.getAg(agName); if (ag != null) { if (ag instanceof CentralisedAgArchAsynchronous) { - ((CentralisedAgArchAsynchronous) ag.getTS().getUserAgArch()).wakeUpSense(false); + ((CentralisedAgArchAsynchronous) ag.getTS().getUserAgArch()).wakeUpSense(); } else { - ag.wakeUpSense(false); + ag.wakeUpSense(); } } else { logger.log(Level.SEVERE, "Error sending message notification: agent " + agName + " does not exist!"); @@ -125,7 +125,7 @@ for (String agName: agentsToNotify) { CentralisedAgArch ag = masRunner.getAg(agName); if (ag != null) { - ag.getTS().getUserAgArch().wakeUpSense(false); + ag.getTS().getUserAgArch().wakeUpSense(); } else { logger.log(Level.SEVERE, "Error sending message notification: agent " + agName + " does not exist!"); } Modified: trunk/src/jason/infra/components/ActComponent.java =================================================================== --- trunk/src/jason/infra/components/ActComponent.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/infra/components/ActComponent.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -3,12 +3,20 @@ import jason.infra.centralised.CentralisedAgArchAsynchronous; public class ActComponent extends AgentComponent { - private boolean inQueue = true; public ActComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) { super(centralisedAgArchAsynchronous); } + public void wakeUp() { + synchronized (ag.objAct) { + if (sleeping) { + sleeping = false; + enqueueExecutor(false); + } + } + } + public void enqueueExecutor(boolean ts) { if (!inQueue || ts) { inQueue = true; @@ -16,6 +24,10 @@ } } + public boolean canSleep() { + return ag.getTS().canSleepAct(); + } + public void run() { int cycles = ag.getCyclesAct(); //int number_cycles = 1; @@ -26,12 +38,12 @@ synchronized (ag.objAct) { - if (ag.canSleepAct()) { + if (canSleep()) { inQueue = false; - ag.sleepAct(); + sleep(); return; } else if (i == cycles) { - ag.wakeUpAct(true); + enqueueExecutor(true); return; } } Modified: trunk/src/jason/infra/components/AgentComponent.java =================================================================== --- trunk/src/jason/infra/components/AgentComponent.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/infra/components/AgentComponent.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -4,10 +4,22 @@ public abstract class AgentComponent implements Runnable { protected CentralisedAgArchAsynchronous ag; + protected boolean inQueue = true; + protected boolean sleeping = false; public AgentComponent(CentralisedAgArchAsynchronous ag) { this.ag = ag; } + public void sleep() { + sleeping = true; + } + + public boolean isSleeping() { + return sleeping; + } + + public abstract void wakeUp(); public abstract void enqueueExecutor(boolean ts); + public abstract boolean canSleep(); } Modified: trunk/src/jason/infra/components/CircumstanceListenerComponents.java =================================================================== --- trunk/src/jason/infra/components/CircumstanceListenerComponents.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/infra/components/CircumstanceListenerComponents.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -13,11 +13,11 @@ } public void notifyDeliberate() { - ag.wakeUpDeliberate(false); + ag.wakeUpDeliberate(); } public void notifyAct() { - ag.wakeUpAct(false); + ag.wakeUpAct(); } public void eventAdded(Event e) { Modified: trunk/src/jason/infra/components/DeliberateComponent.java =================================================================== --- trunk/src/jason/infra/components/DeliberateComponent.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/infra/components/DeliberateComponent.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -3,13 +3,24 @@ import jason.infra.centralised.CentralisedAgArchAsynchronous; public class DeliberateComponent extends AgentComponent { - private boolean inQueue = true; - + public DeliberateComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) { super(centralisedAgArchAsynchronous); } + public boolean canSleep() { + return ag.getTS().canSleepDeliberate(); + } + public void wakeUp() { + synchronized (ag.objDeliberate) { + if (sleeping) { + sleeping = false; + enqueueExecutor(false); + } + } + } + public void enqueueExecutor(boolean ts) { if (!inQueue || ts) { inQueue = true; @@ -31,12 +42,12 @@ synchronized (ag.objDeliberate) { - if (ag.canSleepDeliberate()) { + if (canSleep()) { inQueue = false; - ag.sleepDeliberate(); + sleep(); return; } else if (i == cycles) { - ag.wakeUpDeliberate(true); + enqueueExecutor(true); return; } } Modified: trunk/src/jason/infra/components/SenseComponent.java =================================================================== --- trunk/src/jason/infra/components/SenseComponent.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/infra/components/SenseComponent.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -3,12 +3,34 @@ import jason.infra.centralised.CentralisedAgArchAsynchronous; public class SenseComponent extends AgentComponent { - private boolean inQueue = true; public SenseComponent(CentralisedAgArchAsynchronous centralisedAgArchAsynchronous) { super(centralisedAgArchAsynchronous); } + public boolean canSleep() { + return ag.getTS().canSleepSense(); + } + + public void wakeUp() { + synchronized (ag.objSense) { + if (sleeping) { + sleeping = false; + enqueueExecutor(false); + } + } + } + + /* + public void wakeUp(boolean ts) { + synchronized (ag.objSense) { + if (ts || sleeping) { + sleeping = false; + enqueueExecutor(ts); + } + } + }*/ + public void enqueueExecutor(boolean ts) { if (!inQueue || ts) { inQueue = true; @@ -26,12 +48,12 @@ ag.getTS().sense(); synchronized (ag.objSense) { - if (ag.canSleepSense()) { + if (canSleep()) { inQueue = false; - ag.sleepSense(); + sleep(); return; } else if (i == cycles) { - ag.wakeUpSense(true); + enqueueExecutor(true); return; } } Modified: trunk/src/jason/stdlib/send.java =================================================================== --- trunk/src/jason/stdlib/send.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/stdlib/send.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -204,7 +204,7 @@ intention.peek().getUnif().unifies(send.getTerm(3), timeoutAns); // add the intention back in C.I ts.getC().resumeIntention(intention); - ts.getUserAgArch().wakeUpAct(false); + ts.getUserAgArch().wakeUpAct(); } } }, (long)((NumberTerm)tto).solve(), TimeUnit.MILLISECONDS); Modified: trunk/src/jason/stdlib/wait.java =================================================================== --- trunk/src/jason/stdlib/wait.java 2016-04-12 09:01:45 UTC (rev 1899) +++ trunk/src/jason/stdlib/wait.java 2016-04-12 12:30:50 UTC (rev 1900) @@ -208,7 +208,7 @@ } } }); - ts.getUserAgArch().wakeUpDeliberate(false); + ts.getUserAgArch().wakeUpDeliberate(); } public void eventAdded(Event e) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <xsp...@us...> - 2016-04-12 09:01:47
|
Revision: 1899 http://sourceforge.net/p/jason/svn/1899 Author: xsplyter Date: 2016-04-12 09:01:45 +0000 (Tue, 12 Apr 2016) Log Message: ----------- Waking up act stage instead of sense stage when getting feedback from some action execution Modified Paths: -------------- trunk/src/jason/architecture/AgArch.java trunk/src/jason/asSemantics/TransitionSystem.java Modified: trunk/src/jason/architecture/AgArch.java =================================================================== --- trunk/src/jason/architecture/AgArch.java 2016-04-11 18:35:36 UTC (rev 1898) +++ trunk/src/jason/architecture/AgArch.java 2016-04-12 09:01:45 UTC (rev 1899) @@ -198,7 +198,7 @@ /** called to inform that the action execution is finished */ public void actionExecuted(ActionExec act) { getTS().getC().addFeedbackAction(act); - wakeUpAct(true); + wakeUpAct(false); } /** Returns true if the agent can enter in sleep mode. */ Modified: trunk/src/jason/asSemantics/TransitionSystem.java =================================================================== --- trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-11 18:35:36 UTC (rev 1898) +++ trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-12 09:01:45 UTC (rev 1899) @@ -1389,7 +1389,8 @@ } public boolean canSleepAct() { - return !C.hasIntention() && !C.hasFeedbackAction() && !C.hasPendingAction() && C.getSelectedIntention() == null && getUserAgArch().canSleep(); + //&& !C.hasPendingAction() + return !C.hasIntention() && !C.hasFeedbackAction() && C.getSelectedIntention() == null && getUserAgArch().canSleep(); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-11 18:35:39
|
Revision: 1898 http://sourceforge.net/p/jason/svn/1898 Author: jomifred Date: 2016-04-11 18:35:36 +0000 (Mon, 11 Apr 2016) Log Message: ----------- change env template to illustrate informAgsEnvironmentChanged Modified Paths: -------------- trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java trunk/src/templates/environment Modified: trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-11 18:09:37 UTC (rev 1897) +++ trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-11 18:35:36 UTC (rev 1898) @@ -1,12 +1,10 @@ package jason.infra.centralised; -import java.util.Collection; import java.util.concurrent.ExecutorService; import jason.asSemantics.ActionExec; import jason.asSemantics.CircumstanceListener; import jason.asSemantics.Message; -import jason.asSyntax.Literal; import jason.infra.components.ActComponent; import jason.infra.components.DeliberateComponent; import jason.infra.components.SenseComponent; Modified: trunk/src/templates/environment =================================================================== --- trunk/src/templates/environment 2016-04-11 18:09:37 UTC (rev 1897) +++ trunk/src/templates/environment 2016-04-11 18:35:36 UTC (rev 1898) @@ -12,13 +12,16 @@ @Override public void init(String[] args) { super.init(args); - addPercept(Literal.parseLiteral("percept(demo)")); + addPercept(ASSyntax.parseLiteral("percept(demo)")); } @Override public boolean executeAction(String agName, Structure action) { logger.info("executing: "+action+", but not implemented!"); - return true; + if (true) { // you may improve this condition + informAgsEnvironmentChanged(); + } + return true; // the action was executed with success } /** Called before the end of MAS execution */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-11 18:09:40
|
Revision: 1897 http://sourceforge.net/p/jason/svn/1897 Author: jomifred Date: 2016-04-11 18:09:37 +0000 (Mon, 11 Apr 2016) Log Message: ----------- avoid unnecessary use of Conf.C.SI in TS class -- and thus the concurrent access to it. Modified Paths: -------------- trunk/examples/food-simulation/src/java/FoodEnvironment.java trunk/examples/gold-miners-II/arch/LocalMinerArch.java trunk/src/jason/asSemantics/TransitionSystem.java trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java Added Paths: ----------- trunk/lib/npl.jar Modified: trunk/examples/food-simulation/src/java/FoodEnvironment.java =================================================================== --- trunk/examples/food-simulation/src/java/FoodEnvironment.java 2016-04-11 13:21:09 UTC (rev 1896) +++ trunk/examples/food-simulation/src/java/FoodEnvironment.java 2016-04-11 18:09:37 UTC (rev 1897) @@ -9,6 +9,7 @@ import jason.environment.grid.Location; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -41,7 +42,7 @@ } @Override - public List<Literal> getPercepts(String agName) { + public Collection<Literal> getPercepts(String agName) { // if the agent is not in the map, add it and update its perception if (ag2id.get(agName) == null) { updateAgPercept(addAg2IdMap(agName)); Modified: trunk/examples/gold-miners-II/arch/LocalMinerArch.java =================================================================== --- trunk/examples/gold-miners-II/arch/LocalMinerArch.java 2016-04-11 13:21:09 UTC (rev 1896) +++ trunk/examples/gold-miners-II/arch/LocalMinerArch.java 2016-04-11 18:09:37 UTC (rev 1897) @@ -1,12 +1,12 @@ package arch; +import java.util.Collection; +import java.util.Iterator; +import java.util.logging.Level; + import jason.asSyntax.Literal; import jason.asSyntax.NumberTerm; -import java.util.Iterator; -import java.util.List; -import java.util.logging.Level; - /** architecture for local simulator */ public class LocalMinerArch extends MinerArch { @@ -16,8 +16,8 @@ are leaved in the list of perception for the agent. */ @Override - public List<Literal> perceive() { - List<Literal> per = super.perceive(); + public Collection<Literal> perceive() { + Collection<Literal> per = super.perceive(); try { if (per != null) { Iterator<Literal> ip = per.iterator(); Added: trunk/lib/npl.jar =================================================================== (Binary files differ) Index: trunk/lib/npl.jar =================================================================== --- trunk/lib/npl.jar 2016-04-11 13:21:09 UTC (rev 1896) +++ trunk/lib/npl.jar 2016-04-11 18:09:37 UTC (rev 1897) Property changes on: trunk/lib/npl.jar ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/java-archive \ No newline at end of property Modified: trunk/src/jason/asSemantics/TransitionSystem.java =================================================================== --- trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-11 13:21:09 UTC (rev 1896) +++ trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-11 18:09:37 UTC (rev 1897) @@ -602,20 +602,20 @@ a = conf.ag.selectAction(conf.C.getFeedbackActions()); } if (a != null) { - confP.C.SI = a.getIntention(); + final Intention curInt = a.getIntention(); // remove the intention from PA (PA has all pending action, including those in FA; // but, if the intention is not in PA, it means that the intention was dropped // and should not return to I) - if (C.removePendingAction(confP.C.SI.getId()) != null) { + if (C.removePendingAction(curInt.getId()) != null) { if (a.getResult()) { // add the intention back in I - updateIntention(conf.C.SI); - applyClrInt(confP.C.SI); + updateIntention(curInt); + applyClrInt(curInt); if (hasGoalListener()) for (GoalListener gl: getGoalListeners()) - for (IntendedMeans im: confP.C.SI) //.getIMs()) + for (IntendedMeans im: curInt) //.getIMs()) gl.goalResumed(im.getTrigger()); } else { String reason = a.getFailureMsg(); @@ -623,7 +623,7 @@ ListTerm annots = JasonException.createBasicErrorAnnots("action_failed", reason); if (a.getFailureReason() != null) annots.append(a.getFailureReason()); - generateGoalDeletion(conf.C.SI, annots); + generateGoalDeletion(curInt, annots); C.removeAtomicIntention(); // if (potential) atomic intention is not removed, it will be selected in selInt or selEv and runs again } } else { @@ -659,18 +659,22 @@ private void applyExecInt() throws JasonException { confP.stepAct = State.ClrInt; // default next step - if (conf.C.SI.isFinished()) { + final Intention curInt = conf.C.SI; + if (curInt == null) return; + + if (curInt.isFinished()) { + return; } // get next formula in the body of the intended means // on the top of the selected intention - IntendedMeans im = conf.C.SI.peek(); + IntendedMeans im = curInt.peek(); if (im.isFinished()) { // for empty plans! may need unif, etc - updateIntention(conf.C.SI); + updateIntention(curInt); return; } Unifier u = im.unif; @@ -682,14 +686,14 @@ bTerm = bTerm.capply(u); if (bTerm.isVar()) { // the case of !A with A not ground String msg = h.getSrcInfo()+": "+ "Variable '"+bTerm+"' must be ground."; - if (!generateGoalDeletion(conf.C.SI, JasonException.createBasicErrorAnnots("body_var_without_value", msg))) + if (!generateGoalDeletion(curInt, JasonException.createBasicErrorAnnots("body_var_without_value", msg))) logger.log(Level.SEVERE, msg); return; } if (bTerm.isPlanBody()) { if (h.getBodyType() != BodyType.action) { // the case of ...; A = { !g }; +g; .... String msg = h.getSrcInfo()+": "+ "The operator '"+h.getBodyType()+"' is lost with the variable '"+bTerm+"' unified with a plan body. "; - if (!generateGoalDeletion(conf.C.SI, JasonException.createBasicErrorAnnots("body_var_with_op", msg))) + if (!generateGoalDeletion(curInt, JasonException.createBasicErrorAnnots("body_var_with_op", msg))) logger.log(Level.SEVERE, msg); return; } @@ -717,7 +721,7 @@ // Rule Action case action: body = (Literal)body.capply(u); - confP.C.A = new ActionExec(body, conf.C.SI); + confP.C.A = new ActionExec(body, curInt); break; case internalAction: @@ -743,10 +747,10 @@ } if (ok && !ia.suspendIntention()) - updateIntention(conf.C.SI); + updateIntention(curInt); } catch (JasonException e) { errorAnnots = e.getErrorTerms(); - if (!generateGoalDeletion(conf.C.SI, errorAnnots)) + if (!generateGoalDeletion(curInt, errorAnnots)) logger.log(Level.SEVERE, body.getErrorMsg()+": "+ e.getMessage()); ok = true; // just to not generate the event again } catch (Exception e) { @@ -756,7 +760,7 @@ logger.log(Level.SEVERE, body.getErrorMsg()+": "+ e.getMessage(), e); } if (!ok) - generateGoalDeletion(conf.C.SI, errorAnnots); + generateGoalDeletion(curInt, errorAnnots); break; @@ -764,18 +768,18 @@ Iterator<Unifier> iu = ((LogicalFormula)bTerm).logicalConsequence(ag, u); if (iu.hasNext()) { im.unif = iu.next(); - updateIntention(conf.C.SI); + updateIntention(curInt); } else { String msg = "Constraint "+h+" was not satisfied ("+h.getSrcInfo()+") un="+u; - generateGoalDeletion(conf.C.SI, JasonException.createBasicErrorAnnots(new Atom("constraint_failed"), msg)); + generateGoalDeletion(curInt, JasonException.createBasicErrorAnnots(new Atom("constraint_failed"), msg)); logger.fine(msg); } break; // Rule Achieve case achieve: - body = prepareBodyForEvent(body, u, conf.C.SI.peek()); - Event evt = conf.C.addAchvGoal(body, conf.C.SI); + body = prepareBodyForEvent(body, u, curInt.peek()); + Event evt = conf.C.addAchvGoal(body, curInt); confP.stepAct = State.StartRC; checkHardDeadline(evt); break; @@ -785,22 +789,22 @@ body = prepareBodyForEvent(body, u, null); evt = conf.C.addAchvGoal(body, Intention.EmptyInt); checkHardDeadline(evt); - updateIntention(conf.C.SI); + updateIntention(curInt); break; // Rule Test case test: LogicalFormula f = (LogicalFormula)bTerm; if (conf.ag.believes(f, u)) { - updateIntention(conf.C.SI); + updateIntention(curInt); } else { boolean fail = true; // generate event when using literal in the test (no events for log. expr. like ?(a & b)) if (f.isLiteral() && !(f instanceof BinaryStructure)) { - body = prepareBodyForEvent(body, u, conf.C.SI.peek()); + body = prepareBodyForEvent(body, u, curInt.peek()); if (body.isLiteral()) { // in case body is a var with content that is not a literal (note the VarTerm pass in the instanceof Literal) Trigger te = new Trigger(TEOperator.add, TEType.test, body); - evt = new Event(te, conf.C.SI); + evt = new Event(te, curInt); if (ag.getPL().hasCandidatePlan(te)) { if (logger.isLoggable(Level.FINE)) logger.fine("Test Goal '" + h + "' failed as simple query. Generating internal event for it: "+te); conf.C.addEvent(evt); @@ -811,7 +815,7 @@ } if (fail) { if (logger.isLoggable(Level.FINE)) logger.fine("Test '"+h+"' failed ("+h.getSrcInfo()+")."); - generateGoalDeletion(conf.C.SI, JasonException.createBasicErrorAnnots("test_goal_failed", "Failed to test '"+h+"'")); + generateGoalDeletion(curInt, JasonException.createBasicErrorAnnots("test_goal_failed", "Failed to test '"+h+"'")); } } break; @@ -820,20 +824,20 @@ case delAddBel: // -+a(1,X) ===> remove a(_,_), add a(1,X) // change all vars to anon vars to remove it - Literal b2 = prepareBodyForEvent(body, u, conf.C.SI.peek()); + Literal b2 = prepareBodyForEvent(body, u, curInt.peek()); b2.makeTermsAnnon(); // do not change body (but b2), to not interfere in addBel // to delete, create events as external to avoid that // remove/add create two events for the same intention // (in future releases, creates a two branches for this operator) try { - List<Literal>[] result = ag.brf(null, b2, conf.C.SI); // the intention is not the new focus + List<Literal>[] result = ag.brf(null, b2, curInt); // the intention is not the new focus if (result != null) { // really delete something // generate events updateEvents(result,Intention.EmptyInt); } } catch (RevisionFailedException re) { - generateGoalDeletion(conf.C.SI, JasonException.createBasicErrorAnnots("belief_revision_failed", "BRF failed for '"+body+"'")); + generateGoalDeletion(curInt, JasonException.createBasicErrorAnnots("belief_revision_failed", "BRF failed for '"+body+"'")); break; } @@ -848,7 +852,7 @@ Intention newfocus = Intention.EmptyInt; boolean isSameFocus = setts.sameFocus() && h.getBodyType() != BodyType.addBelNewFocus; if (isSameFocus) { - newfocus = conf.C.SI; + newfocus = curInt; body = prepareBodyForEvent(body, u, newfocus.peek()); } else { body = prepareBodyForEvent(body, u, null); @@ -858,20 +862,20 @@ try { List<Literal>[] result; if (h.getBodyType() == BodyType.addBelEnd) - result = ag.brf(body,null,conf.C.SI, true); + result = ag.brf(body,null,curInt, true); else - result = ag.brf(body,null,conf.C.SI); // use default (well documented and used) method in case someone has overridden it + result = ag.brf(body,null,curInt); // use default (well documented and used) method in case someone has overridden it if (result != null) { // really added something // generate events updateEvents(result,newfocus); if (!isSameFocus) { - updateIntention(conf.C.SI); + updateIntention(curInt); } } else { - updateIntention(conf.C.SI); + updateIntention(curInt); } } catch (RevisionFailedException re) { - generateGoalDeletion(conf.C.SI, null); + generateGoalDeletion(curInt, null); } break; @@ -879,25 +883,25 @@ newfocus = Intention.EmptyInt; if (setts.sameFocus()) { - newfocus = conf.C.SI; + newfocus = curInt; body = prepareBodyForEvent(body, u, newfocus.peek()); } else { body = prepareBodyForEvent(body, u, null); } // call BRF try { - List<Literal>[] result = ag.brf(null, body, conf.C.SI); // the intention is not the new focus + List<Literal>[] result = ag.brf(null, body, curInt); // the intention is not the new focus if (result != null) { // really change something // generate events updateEvents(result,newfocus); if (!setts.sameFocus()) { - updateIntention(conf.C.SI); + updateIntention(curInt); } } else { - updateIntention(conf.C.SI); + updateIntention(curInt); } } catch (RevisionFailedException re) { - generateGoalDeletion(conf.C.SI, null); + generateGoalDeletion(curInt, null); } break; } Modified: trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-11 13:21:09 UTC (rev 1896) +++ trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-11 18:09:37 UTC (rev 1897) @@ -1,10 +1,12 @@ package jason.infra.centralised; +import java.util.Collection; import java.util.concurrent.ExecutorService; import jason.asSemantics.ActionExec; import jason.asSemantics.CircumstanceListener; import jason.asSemantics.Message; +import jason.asSyntax.Literal; import jason.infra.components.ActComponent; import jason.infra.components.DeliberateComponent; import jason.infra.components.SenseComponent; @@ -143,7 +145,7 @@ getTS().getC().addEventListener(listener); } - public void receiveMsg(Message m) { + public void receiveMsg(Message m) { synchronized (objSense) { super.receiveMsg(m); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <xsp...@us...> - 2016-04-11 13:21:11
|
Revision: 1896 http://sourceforge.net/p/jason/svn/1896 Author: xsplyter Date: 2016-04-11 13:21:09 +0000 (Mon, 11 Apr 2016) Log Message: ----------- Reuse code Synchronous Modified Paths: -------------- trunk/src/jason/infra/centralised/CentralisedAgArch.java trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java trunk/src/jason/infra/centralised/RunCentralisedMAS.java Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-11 11:37:05 UTC (rev 1895) +++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-11 13:21:09 UTC (rev 1896) @@ -188,8 +188,8 @@ public boolean isRunning() { return running; } - - protected boolean reasoningCycle() { + + protected boolean sense() { TransitionSystem ts = getTS(); int i = 0; @@ -202,7 +202,13 @@ i++; } - i = 0; + return true; + } + + protected boolean deliberate() { + TransitionSystem ts = getTS(); + + int i = 0; while (running && i < cyclesDeliberate) { if (!ts.deliberate()) { return false; @@ -212,7 +218,13 @@ i++; } - i = 0; + return true; + } + + protected boolean act() { + TransitionSystem ts = getTS(); + + int i = 0; int ca = cyclesAct; if (cyclesAct == 9999) ca = ts.getC().getIntentions().size(); @@ -229,6 +241,12 @@ return true; } + protected boolean reasoningCycle() { + if (!sense()) return false; + if (!deliberate()) return false; + if (!act()) return false; + return true; + } public void run() { TransitionSystem ts = getTS(); Modified: trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-11 11:37:05 UTC (rev 1895) +++ trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-11 13:21:09 UTC (rev 1896) @@ -151,7 +151,7 @@ /** called the the environment when the action was executed */ public void actionExecuted(ActionExec action) { - synchronized (objSense) { + synchronized (objAct) { super.actionExecuted(action); } } Modified: trunk/src/jason/infra/centralised/RunCentralisedMAS.java =================================================================== --- trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-11 11:37:05 UTC (rev 1895) +++ trunk/src/jason/infra/centralised/RunCentralisedMAS.java 2016-04-11 13:21:09 UTC (rev 1896) @@ -1013,7 +1013,7 @@ } } - public void sense() { + public boolean sense() { int number_cycles = getCyclesSense(); int i = 0; @@ -1023,7 +1023,7 @@ if (runWakeAfterTS) { wake(); } - return; + return false; } else if (getTS().canSleepSense()) { break; } @@ -1033,176 +1033,28 @@ if (isRunning()) { executor.execute(this); } - } - - public void deliberate() { - int number_cycles = getCyclesDeliberate(); - int i = 0; - - while (isRunning() && i < number_cycles) { - getTS().deliberate(); - - if (getTS().canSleepDeliberate()) { - break; - } - - i++; - } - if (isRunning()) { - executor.execute(this); - } + return true; } - public void act() { - int number_cycles = getCyclesAct(); - int i = 0; - - if (number_cycles == 9999) { //TODO adjust parameter for executing one deed from each intention - //System.out.println("# Executing one deed from each intention " + getTS().getC().getIntentions().size()); - - while (isRunning() && i < getTS().getC().getIntentions().size()) { - - //System.out.println("# Executing one deed from each intention #" + i + " -> " + getTS().getC().getIntentions().size()); - - getTS().act(); - - if (getTS().canSleepAct()) { - break; - } - - i++; - } - } else { - while (isRunning() && i < number_cycles) { - getTS().act(); - - if (getTS().canSleepAct()) { - break; - } - - i++; - } - } + public boolean deliberate() { + boolean result = super.deliberate(); if (isRunning()) { executor.execute(this); } - } - - @Override - public void run() { - switch (currentStep) { - case 0: - sense(); - currentStep = 1; - break; - case 1: - deliberate(); - currentStep = 2; - break; - case 2: - act(); - currentStep = 0; - break; - } - } - } - - /** an agent architecture for the infra based on thread pool */ - protected final class CentralisedAgArchSynchronousScheduled_2 extends CentralisedAgArch { - private volatile boolean runWakeAfterTS = false; - private int currentStep = 0; - - @Override - public void sleep() { - sleepingAgs.add(this); - } - - @Override - public void wake() { - if (sleepingAgs.remove(this)) { - executor.execute(this); - } else { - runWakeAfterTS = true; - } - } - - public void sense() { - int number_cycles = getCyclesSense(); - int i = 0; - - while (isRunning() && i < number_cycles) { - runWakeAfterTS = false; - if (!getTS().sense()) { // the agent run a cycle (did not enter in sleep) - if (runWakeAfterTS) { - wake(); - } - return; - } else if (getTS().canSleepSense()) { - break; - } - i++; - } - if (isRunning()) { - executor.execute(this); - } + return result; } - public void deliberate() { - int number_cycles = getCyclesDeliberate(); - int i = 0; - - while (isRunning() && i < number_cycles) { - getTS().deliberate(); - - if (getTS().canSleepDeliberate()) { - break; - } - - i++; - } + public boolean act() { + boolean result = super.act(); if (isRunning()) { executor.execute(this); } - } - - public void act() { - int number_cycles = getCyclesAct(); - int i = 0; - - if (number_cycles == 9999) { //TODO adjust parameter for executing one deed from each intention - //System.out.println("# Executing one deed from each intention " + getTS().getC().getIntentions().size()); - - while (isRunning() && i < getTS().getC().getIntentions().size()) { - - //System.out.println("# Executing one deed from each intention #" + i + " -> " + getTS().getC().getIntentions().size()); - - getTS().act(); - - if (getTS().canSleepAct()) { - break; - } - - i++; - } - } else { - while (isRunning() && i < number_cycles) { - getTS().act(); - - if (getTS().canSleepAct()) { - break; - } - - i++; - } - } - if (isRunning()) { - executor.execute(this); - } + return result; } @Override This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-11 11:37:07
|
Revision: 1895 http://sourceforge.net/p/jason/svn/1895 Author: jomifred Date: 2016-04-11 11:37:05 +0000 (Mon, 11 Apr 2016) Log Message: ----------- use collection instead of list for perception (is it more general and allows further improvements) Modified Paths: -------------- trunk/applications/as-unit-test/src/jason/asunit/TestArch.java trunk/src/jason/architecture/AgArch.java trunk/src/jason/architecture/AgArchInfraTier.java trunk/src/jason/asSemantics/Agent.java trunk/src/jason/asSemantics/TransitionSystem.java trunk/src/jason/environment/Environment.java trunk/src/jason/environment/TimeSteppedEnvironment.java trunk/src/jason/infra/centralised/CentralisedAgArch.java trunk/src/jason/infra/centralised/CentralisedRuntimeServices.java trunk/src/jason/infra/jade/JadeEnvironment.java Modified: trunk/applications/as-unit-test/src/jason/asunit/TestArch.java =================================================================== --- trunk/applications/as-unit-test/src/jason/asunit/TestArch.java 2016-04-10 14:25:42 UTC (rev 1894) +++ trunk/applications/as-unit-test/src/jason/asunit/TestArch.java 2016-04-11 11:37:05 UTC (rev 1895) @@ -1,6 +1,7 @@ package jason.asunit; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import jason.JasonException; @@ -69,7 +70,7 @@ } @Override - public List<Literal> perceive() { + public Collection<Literal> perceive() { if (getEnvInfraTier() != null) return super.perceive(); else Modified: trunk/src/jason/architecture/AgArch.java =================================================================== --- trunk/src/jason/architecture/AgArch.java 2016-04-10 14:25:42 UTC (rev 1894) +++ trunk/src/jason/architecture/AgArch.java 2016-04-11 11:37:05 UTC (rev 1895) @@ -23,6 +23,7 @@ package jason.architecture; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import java.util.logging.Level; @@ -171,7 +172,7 @@ /** Gets the agent's perception as a list of Literals. * The returned list will be modified by Jason. */ - public List<Literal> perceive() { + public Collection<Literal> perceive() { if (successor == null) return null; else @@ -217,15 +218,18 @@ } public void wakeUpSense(boolean ts) { - wake(); + if (successor != null) + wakeUpSense(ts); } public void wakeUpDeliberate(boolean ts) { - wake(); + if (successor != null) + wakeUpDeliberate(ts); } public void wakeUpAct(boolean ts) { - wake(); + if (successor != null) + wakeUpAct(ts); } Modified: trunk/src/jason/architecture/AgArchInfraTier.java =================================================================== --- trunk/src/jason/architecture/AgArchInfraTier.java 2016-04-10 14:25:42 UTC (rev 1894) +++ trunk/src/jason/architecture/AgArchInfraTier.java 2016-04-11 11:37:05 UTC (rev 1895) @@ -24,23 +24,23 @@ package jason.architecture; +import java.util.Collection; + import jason.asSemantics.ActionExec; import jason.asSemantics.Message; import jason.asSyntax.Literal; import jason.runtime.RuntimeServicesInfraTier; -import java.util.List; - /** * This interface is implemented by the infrastructure tier (Saci/Jade/Centralised/...) * to provide concrete perception, action, and communication to the agent architecture. **/ public interface AgArchInfraTier { - /** Gets the agent's perception as a list of Literals */ - public List<Literal> perceive(); + /** Gets the agent's perception as a set of Literals */ + public Collection<Literal> perceive(); /** Reads the agent's mailbox and adds messages into the agent's circumstance */ public void checkMail(); Modified: trunk/src/jason/asSemantics/Agent.java =================================================================== --- trunk/src/jason/asSemantics/Agent.java 2016-04-10 14:25:42 UTC (rev 1894) +++ trunk/src/jason/asSemantics/Agent.java 2016-04-11 11:37:05 UTC (rev 1895) @@ -723,7 +723,7 @@ * * @return the number of changes (add + dels) */ - public int buf(List<Literal> percepts) { + public int buf(Collection<Literal> percepts) { /* // complexity 3n Modified: trunk/src/jason/asSemantics/TransitionSystem.java =================================================================== --- trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-10 14:25:42 UTC (rev 1894) +++ trunk/src/jason/asSemantics/TransitionSystem.java 2016-04-11 11:37:05 UTC (rev 1895) @@ -1368,10 +1368,10 @@ } public boolean canSleep() { - return (C.isAtomicIntentionSuspended() && !C.hasFeedbackAction() && !conf.C.hasMsg()) - || (!conf.C.hasEvent() && !conf.C.hasIntention() && - !conf.C.hasFeedbackAction() && - !conf.C.hasMsg() && + return (C.isAtomicIntentionSuspended() && !C.hasFeedbackAction() && !conf.C.hasMsg()) // atomic case + || (!conf.C.hasEvent() && // other cases (deliberate) + !conf.C.hasIntention() && !conf.C.hasFeedbackAction() && // (action) + !conf.C.hasMsg() && // (sense) taskForBeginOfCycle.isEmpty() && getUserAgArch().canSleep()); } @@ -1431,6 +1431,7 @@ } nrcslbr++; // counting number of cycles since last belief revision + // TODO: move all sleep related code to archs classes if (!(getUserAgArch() instanceof CentralisedAgArchAsynchronous)) { if (canSleep()) { if (!sleepingEvt) { Modified: trunk/src/jason/environment/Environment.java =================================================================== --- trunk/src/jason/environment/Environment.java 2016-04-10 14:25:42 UTC (rev 1894) +++ trunk/src/jason/environment/Environment.java 2016-04-11 11:37:05 UTC (rev 1895) @@ -24,10 +24,6 @@ package jason.environment; -import jason.asSemantics.Unifier; -import jason.asSyntax.Literal; -import jason.asSyntax.Structure; - import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -42,6 +38,10 @@ import java.util.logging.Level; import java.util.logging.Logger; +import jason.asSemantics.Unifier; +import jason.asSyntax.Literal; +import jason.asSyntax.Structure; + /** * It is a base class for Environment, it is overridden by the user * application to define the environment "behaviour". @@ -147,7 +147,7 @@ * This method is to be called by TS and should not be called * by other objects. */ - public List<Literal> getPercepts(String agName) { // TODO in a future release, call this method doPerception, and get simply returns the list + public Collection<Literal> getPercepts(String agName) { // check whether this agent needs the current version of perception if (uptodateAgs.contains(agName)) { @@ -161,7 +161,7 @@ if (agl != null) { size += agl.size(); } - List<Literal> p = new ArrayList<Literal>(size); + Collection<Literal> p = new ArrayList<Literal>(size); if (! percepts.isEmpty()) { // has global perception? synchronized (percepts) { Modified: trunk/src/jason/environment/TimeSteppedEnvironment.java =================================================================== --- trunk/src/jason/environment/TimeSteppedEnvironment.java 2016-04-10 14:25:42 UTC (rev 1894) +++ trunk/src/jason/environment/TimeSteppedEnvironment.java 2016-04-11 11:37:05 UTC (rev 1895) @@ -1,12 +1,9 @@ package jason.environment; -import jason.asSyntax.Literal; -import jason.asSyntax.Structure; - +import java.util.Collection; 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.Set; @@ -17,7 +14,10 @@ import java.util.logging.Level; import java.util.logging.Logger; +import jason.asSyntax.Literal; +import jason.asSyntax.Structure; + /** * General environment class that "synchronise" all agents actions. * It waits one action for each agent and, when all actions is received, @@ -289,7 +289,7 @@ /** stops perception while executing the step's actions */ @Override - public List<Literal> getPercepts(String agName) { + public Collection<Literal> getPercepts(String agName) { synchronized (requests) { return super.getPercepts(agName); } Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-10 14:25:42 UTC (rev 1894) +++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-11 11:37:05 UTC (rev 1895) @@ -50,6 +50,8 @@ * This class provides an agent architecture when using Centralised * infrastructure to run the MAS inside Jason. * + * Each agent has its own thread. + * * <p> * Execution sequence: * <ul> @@ -130,12 +132,10 @@ wake(); // so that it leaves the run loop if (myThread != null) myThread.interrupt(); - synchronized (syncStopRun) { // wait the run loop to finish - masRunner.delAg(agName); - } getTS().getAg().stopAg(); getUserAgArch().stop(); // stops all archs } + public void setLogger() { logger = Logger.getLogger(CentralisedAgArch.class.getName() + "." + getAgName()); @@ -175,8 +175,6 @@ return infraControl; } - private Object syncStopRun = new Object(); - private Thread myThread = null; public void setThread(Thread t) { myThread = t; @@ -233,24 +231,22 @@ public void run() { - synchronized (syncStopRun) { - TransitionSystem ts = getTS(); - while (running) { - if (ts.getSettings().isSync()) { - waitSyncSignal(); - reasoningCycle(); - boolean isBreakPoint = false; - try { - isBreakPoint = ts.getC().getSelectedOption().getPlan().hasBreakpoint(); - if (logger.isLoggable(Level.FINE)) logger.fine("Informing controller that I finished a reasoning cycle "+getCycleNumber()+". Breakpoint is " + isBreakPoint); - } catch (NullPointerException e) { - // no problem, there is no sel opt, no plan .... - } - informCycleFinished(isBreakPoint, getCycleNumber()); - } else { - incCycleNumber(); - reasoningCycle(); + TransitionSystem ts = getTS(); + while (running) { + if (ts.getSettings().isSync()) { + waitSyncSignal(); + reasoningCycle(); + boolean isBreakPoint = false; + try { + isBreakPoint = ts.getC().getSelectedOption().getPlan().hasBreakpoint(); + if (logger.isLoggable(Level.FINE)) logger.fine("Informing controller that I finished a reasoning cycle "+getCycleNumber()+". Breakpoint is " + isBreakPoint); + } catch (NullPointerException e) { + // no problem, there is no sel opt, no plan .... } + informCycleFinished(isBreakPoint, getCycleNumber()); + } else { + incCycleNumber(); + reasoningCycle(); } } logger.fine("I finished!"); @@ -264,7 +260,7 @@ public void sleep() { try { if (!getTS().getSettings().isSync()) { - logger.fine("Entering in sleep mode...."); + //logger.fine("Entering in sleep mode...."); synchronized (sleepSync) { sleepSync.wait(sleepTime); // wait for messages if (sleepTime < MAX_SLEEP) @@ -277,17 +273,34 @@ } } + @Override public void wake() { synchronized (sleepSync) { sleepTime = 50; sleepSync.notifyAll(); // notify sleep method } } + + @Override + public void wakeUpSense(boolean ts) { + wake(); + } + + @Override + public void wakeUpDeliberate(boolean ts) { + wake(); + } + + @Override + public void wakeUpAct(boolean ts) { + wake(); + } // Default perception assumes Complete and Accurate sensing. - public List<Literal> perceive() { + @Override + public Collection<Literal> perceive() { if (infraEnv == null) return null; - List<Literal> percepts = infraEnv.getUserEnvironment().getPercepts(getAgName()); + Collection<Literal> percepts = infraEnv.getUserEnvironment().getPercepts(getAgName()); if (logger.isLoggable(Level.FINE) && percepts != null) logger.fine("percepts: " + percepts); return percepts; } Modified: trunk/src/jason/infra/centralised/CentralisedRuntimeServices.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedRuntimeServices.java 2016-04-10 14:25:42 UTC (rev 1894) +++ trunk/src/jason/infra/centralised/CentralisedRuntimeServices.java 2016-04-11 11:37:05 UTC (rev 1895) @@ -1,5 +1,10 @@ package jason.infra.centralised; +import java.util.List; +import java.util.Set; +import java.util.logging.Level; +import java.util.logging.Logger; + import jason.JasonException; import jason.architecture.AgArch; import jason.asSemantics.Agent; @@ -8,11 +13,6 @@ import jason.runtime.RuntimeServicesInfraTier; import jason.runtime.Settings; -import java.util.List; -import java.util.Set; -import java.util.logging.Level; -import java.util.logging.Logger; - /** This class implements the centralised version of the runtime services. */ public class CentralisedRuntimeServices implements RuntimeServicesInfraTier { @@ -94,6 +94,7 @@ CentralisedAgArch ag = masRunner.getAg(agName); if (ag != null && ag.getTS().getAg().killAcc(byAg)) { ag.stopAg(); + masRunner.delAg(agName); return true; } return false; Modified: trunk/src/jason/infra/jade/JadeEnvironment.java =================================================================== --- trunk/src/jason/infra/jade/JadeEnvironment.java 2016-04-10 14:25:42 UTC (rev 1894) +++ trunk/src/jason/infra/jade/JadeEnvironment.java 2016-04-11 11:37:05 UTC (rev 1895) @@ -139,7 +139,7 @@ ACLMessage r = m.createReply(); r.setPerformative(ACLMessage.INFORM); try { - List<Literal> percepts = userEnv.getPercepts(m.getSender().getLocalName()); + Collection<Literal> percepts = userEnv.getPercepts(m.getSender().getLocalName()); if (percepts == null) { r.setContent("nothing_new"); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-10 14:25:45
|
Revision: 1894 http://sourceforge.net/p/jason/svn/1894 Author: jomifred Date: 2016-04-10 14:25:42 +0000 (Sun, 10 Apr 2016) Log Message: ----------- use specific wake (sense or act) instead of the general wake Modified Paths: -------------- trunk/src/jason/infra/centralised/CentralisedEnvironment.java trunk/src/jason/stdlib/at.java trunk/src/jason/stdlib/send.java Modified: trunk/src/jason/infra/centralised/CentralisedEnvironment.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedEnvironment.java 2016-04-10 14:20:44 UTC (rev 1893) +++ trunk/src/jason/infra/centralised/CentralisedEnvironment.java 2016-04-10 14:25:42 UTC (rev 1894) @@ -108,7 +108,7 @@ if (ag instanceof CentralisedAgArchAsynchronous) { ((CentralisedAgArchAsynchronous) ag.getTS().getUserAgArch()).wakeUpSense(false); } else { - ag.wake(); + ag.wakeUpSense(false); } } else { logger.log(Level.SEVERE, "Error sending message notification: agent " + agName + " does not exist!"); Modified: trunk/src/jason/stdlib/at.java =================================================================== --- trunk/src/jason/stdlib/at.java 2016-04-10 14:20:44 UTC (rev 1893) +++ trunk/src/jason/stdlib/at.java 2016-04-10 14:25:42 UTC (rev 1894) @@ -24,7 +24,13 @@ package jason.stdlib; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + import jason.JasonException; +import jason.asSemantics.Agent; import jason.asSemantics.DefaultInternalAction; import jason.asSemantics.Event; import jason.asSemantics.Intention; @@ -34,11 +40,6 @@ import jason.asSyntax.Term; import jason.asSyntax.Trigger; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; - /** <p>Internal action: <b><code>.at</code></b>. @@ -125,7 +126,7 @@ Trigger te = Trigger.tryToGetTrigger(args[1]); - ts.getAg().getScheduler().schedule(new CheckDeadline(te, ts), deadline, TimeUnit.MILLISECONDS); + Agent.getScheduler().schedule(new CheckDeadline(te, ts), deadline, TimeUnit.MILLISECONDS); return true; } Modified: trunk/src/jason/stdlib/send.java =================================================================== --- trunk/src/jason/stdlib/send.java 2016-04-10 14:20:44 UTC (rev 1893) +++ trunk/src/jason/stdlib/send.java 2016-04-10 14:25:42 UTC (rev 1894) @@ -25,6 +25,7 @@ package jason.stdlib; import jason.JasonException; +import jason.asSemantics.Agent; import jason.asSemantics.DefaultInternalAction; import jason.asSemantics.Intention; import jason.asSemantics.Message; @@ -183,7 +184,7 @@ // get the timeout deadline Term tto = args[4]; if (tto.isNumeric()) { - ts.getAg().getScheduler().schedule( new Runnable() { + Agent.getScheduler().schedule( new Runnable() { public void run() { // if the intention is still in PI, brings it back to C.I with the timeout Intention intention = ts.getC().removePendingIntention(m.getMsgId()); @@ -203,7 +204,7 @@ intention.peek().getUnif().unifies(send.getTerm(3), timeoutAns); // add the intention back in C.I ts.getC().resumeIntention(intention); - ts.getUserAgArch().wake(); + ts.getUserAgArch().wakeUpAct(false); } } }, (long)((NumberTerm)tto).solve(), TimeUnit.MILLISECONDS); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-10 14:20:46
|
Revision: 1893 http://sourceforge.net/p/jason/svn/1893 Author: jomifred Date: 2016-04-10 14:20:44 +0000 (Sun, 10 Apr 2016) Log Message: ----------- minor change in the cent ag arch async Modified Paths: -------------- trunk/applications/as-unit-test/src/jason/asunit/TestArch.java trunk/applications/jason-moise/example/auction/auction-os.xml trunk/applications/jason-moise/example/auction-ora4mas/auction-os.xml trunk/demos/persistent-belief-base/VoidBB.java trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java trunk/examples/auction/AuctioneerGUI.java trunk/release-notes.txt trunk/src/jason/architecture/AgArch.java trunk/src/jason/infra/centralised/CentralisedAgArch.java trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java trunk/src/jason/infra/jade/JasonBridgeArch.java Modified: trunk/applications/as-unit-test/src/jason/asunit/TestArch.java =================================================================== --- trunk/applications/as-unit-test/src/jason/asunit/TestArch.java 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/applications/as-unit-test/src/jason/asunit/TestArch.java 2016-04-10 14:20:44 UTC (rev 1893) @@ -83,7 +83,7 @@ super.act(action); //, feedback); //env.scheduleAction(getAgName(), action.getActionTerm(), action); } else { action.setResult(true); - actDone(action); //feedback.add(action); + actionExecuted(action); //feedback.add(action); } } Modified: trunk/applications/jason-moise/example/auction/auction-os.xml =================================================================== --- trunk/applications/jason-moise/example/auction/auction-os.xml 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/applications/jason-moise/example/auction/auction-os.xml 2016-04-10 14:20:44 UTC (rev 1893) @@ -23,9 +23,9 @@ <links> <link from="auctioneer" to="participant" type="communication" scope="intra-group" - extends-sub-groups="false" bi-dir="true"/> + extends-subgroups="false" bi-dir="true"/> <link from="participant" to="participant" type="communication" scope="intra-group" - extends-sub-groups="false" bi-dir="false"/> + extends-subgroups="false" bi-dir="false"/> </links> </group-specification> Modified: trunk/applications/jason-moise/example/auction-ora4mas/auction-os.xml =================================================================== --- trunk/applications/jason-moise/example/auction-ora4mas/auction-os.xml 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/applications/jason-moise/example/auction-ora4mas/auction-os.xml 2016-04-10 14:20:44 UTC (rev 1893) @@ -23,9 +23,9 @@ <links> <link from="auctioneer" to="participant" type="communication" scope="intra-group" - extends-sub-groups="false" bi-dir="true"/> + extends-subgroups="false" bi-dir="true"/> <link from="participant" to="participant" type="communication" scope="intra-group" - extends-sub-groups="false" bi-dir="false"/> + extends-subgroups="false" bi-dir="false"/> </links> </group-specification> Modified: trunk/demos/persistent-belief-base/VoidBB.java =================================================================== --- trunk/demos/persistent-belief-base/VoidBB.java 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/demos/persistent-belief-base/VoidBB.java 2016-04-10 14:20:44 UTC (rev 1893) @@ -1,34 +1,20 @@ -import jason.asSemantics.Agent; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + import jason.asSemantics.Unifier; import jason.asSyntax.Atom; import jason.asSyntax.Literal; import jason.asSyntax.PredicateIndicator; import jason.bb.BeliefBase; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - /** * Void Belief Base: store nothing! */ -public class VoidBB implements jason.bb.BeliefBase { +public class VoidBB extends jason.bb.BeliefBase { - public void init(Agent ag, String[] args) { - } - public void stop() { - } - public void clear() { - } - public int size() { - return 0; - } - public Iterator<Literal> getPercepts() { return new ArrayList<Literal>().iterator(); } @@ -54,11 +40,6 @@ return new ArrayList<Literal>().iterator(); } - @Deprecated - public Iterator<Literal> getAll() { - return iterator(); - } - public boolean remove(Literal l) { return true; } @@ -74,20 +55,7 @@ public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u) { return new ArrayList<Literal>().iterator(); } - - @Deprecated - public Iterator<Literal> getRelevant(Literal l) { - return new ArrayList<Literal>().iterator(); - } - public Iterator<Unifier> logCons(final Literal l, final Unifier un) { - return new ArrayList<Unifier>().iterator(); - } - - public Element getAsDOM(Document document) { - return null; - } - public BeliefBase clone() { return new VoidBB(); } Modified: trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java =================================================================== --- trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/demos/using-only-jason-BDI-engine/SimpleJasonAgent.java 2016-04-10 14:20:44 UTC (rev 1893) @@ -68,7 +68,7 @@ getTS().getLogger().info("Agent " + getAgName() + " is doing: " + action.getActionTerm()); // set that the execution was ok action.setResult(true); - actDone(action); + actionExecuted(action); } @Override Modified: trunk/examples/auction/AuctioneerGUI.java =================================================================== --- trunk/examples/auction/AuctioneerGUI.java 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/examples/auction/AuctioneerGUI.java 2016-04-10 14:20:44 UTC (rev 1893) @@ -45,7 +45,7 @@ jt.append("Winner of auction " + action.getActionTerm().getTerm(0)); jt.append(" is " + action.getActionTerm().getTerm(1) + "\n"); action.setResult(true); - actDone(action); + actionExecuted(action); auction.setEnabled(true); // enable GUI button } else { Modified: trunk/release-notes.txt =================================================================== --- trunk/release-notes.txt 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/release-notes.txt 2016-04-10 14:20:44 UTC (rev 1893) @@ -31,7 +31,7 @@ Changes in the API: - AgArch act method has just one parameter -- Java 8 is used +- Java 1.7 is used New Tutorial on BDI (see doc/index.html) Modified: trunk/src/jason/architecture/AgArch.java =================================================================== --- trunk/src/jason/architecture/AgArch.java 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/src/jason/architecture/AgArch.java 2016-04-10 14:20:44 UTC (rev 1893) @@ -195,8 +195,9 @@ } /** called to inform that the action execution is finished */ - public void actDone(ActionExec act) { + public void actionExecuted(ActionExec act) { getTS().getC().addFeedbackAction(act); + wakeUpAct(true); } /** Returns true if the agent can enter in sleep mode. */ Modified: trunk/src/jason/infra/centralised/CentralisedAgArch.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/src/jason/infra/centralised/CentralisedAgArch.java 2016-04-10 14:20:44 UTC (rev 1893) @@ -315,7 +315,7 @@ public void receiveMsg(Message m) { mbox.offer(m); - wake(); + wakeUpSense(false); } public void broadcast(jason.asSemantics.Message m) throws Exception { @@ -350,12 +350,6 @@ infraEnv.act(getAgName(), action); } - /** called the the environment when the action was executed */ - public void actionExecuted(ActionExec action) { - getTS().getC().addFeedbackAction(action); - wake(); - } - public boolean canSleep() { return mbox.isEmpty() && isRunning(); } Modified: trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java =================================================================== --- trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/src/jason/infra/centralised/CentralisedAgArchAsynchronous.java 2016-04-10 14:20:44 UTC (rev 1893) @@ -1,5 +1,7 @@ package jason.infra.centralised; +import java.util.concurrent.ExecutorService; + import jason.asSemantics.ActionExec; import jason.asSemantics.CircumstanceListener; import jason.asSemantics.Message; @@ -7,9 +9,6 @@ import jason.infra.components.DeliberateComponent; import jason.infra.components.SenseComponent; -import java.util.Queue; -import java.util.concurrent.ExecutorService; - public class CentralisedAgArchAsynchronous extends CentralisedAgArch implements Runnable { private SenseComponent senseComponent; private DeliberateComponent deliberateComponent; @@ -70,7 +69,6 @@ public boolean isSleepingSense() { return sleepingSense; } - public void sleepDeliberate() { sleepingDeliberate = true; @@ -147,16 +145,14 @@ public void receiveMsg(Message m) { synchronized (objSense) { - ((Queue<Message>) getMBox()).offer(m); - wakeUpSense(false); + super.receiveMsg(m); } } /** called the the environment when the action was executed */ public void actionExecuted(ActionExec action) { synchronized (objSense) { - getTS().getC().addFeedbackAction(action); - wakeUpSense(false); + super.actionExecuted(action); } } } Modified: trunk/src/jason/infra/jade/JasonBridgeArch.java =================================================================== --- trunk/src/jason/infra/jade/JasonBridgeArch.java 2016-04-09 21:04:35 UTC (rev 1892) +++ trunk/src/jason/infra/jade/JasonBridgeArch.java 2016-04-10 14:20:44 UTC (rev 1893) @@ -244,7 +244,7 @@ } else { a.setResult(false); } - actDone(a); + actionExecuted(a); } else { logger.log(Level.SEVERE, "Error: received feedback for an Action that is not pending. The message is "+m); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-09 21:04:38
|
Revision: 1892 http://sourceforge.net/p/jason/svn/1892 Author: jomifred Date: 2016-04-09 21:04:35 +0000 (Sat, 09 Apr 2016) Log Message: ----------- use java 1.7 Modified Paths: -------------- trunk/build.xml trunk/release-notes.txt trunk/src/jason/bb/BeliefBase.java trunk/src/jason/bb/ChainBBAdapter.java trunk/src/jason/bb/DefaultBeliefBase.java Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2016-04-09 12:22:00 UTC (rev 1891) +++ trunk/build.xml 2016-04-09 21:04:35 UTC (rev 1892) @@ -137,7 +137,9 @@ <target name="compile" depends="init,parsers"> - <javac srcdir="src" destdir="${build.dir}" debug="true" deprecation="true" optimize="true" nowarn="true" source="1.6" target="1.6" includeantruntime="false"> + <javac srcdir="src" destdir="${build.dir}" + debug="true" deprecation="true" optimize="true" nowarn="true" + source="1.7" target="1.7" includeantruntime="false"> <classpath refid="project.classpath" /> </javac> </target> Modified: trunk/release-notes.txt =================================================================== --- trunk/release-notes.txt 2016-04-09 12:22:00 UTC (rev 1891) +++ trunk/release-notes.txt 2016-04-09 21:04:35 UTC (rev 1892) @@ -1,10 +1,15 @@ --------------------------- -version 1.4.3 +version 2.0.0 revision xxxx on SVN --------------------------- New features: + +- modules and namespaces, see doc/modules.pdf + +- concurrent plans and advanced concurrent agent architectures, see doc/concurrency.pdf + - the operator "+" works with plans and rules enclosed by { and }. For instance: ... + { p :- q & r }; @@ -15,6 +20,7 @@ with the plans that implement the KQML semantics) and kqmlReceivedFunctor (the functor used to produce new message events). +- improved BUF function with linear time (previous BUF was exponential) New internal actions: - .asserta: inserts a belief (or rule) in the begin of the belief base (can be used in prolog like rules) @@ -23,6 +29,10 @@ - .lower_case and upper_case for strings - .include: to load an asl source code at run time +Changes in the API: +- AgArch act method has just one parameter +- Java 8 is used + New Tutorial on BDI (see doc/index.html) --------------------------- Modified: trunk/src/jason/bb/BeliefBase.java =================================================================== --- trunk/src/jason/bb/BeliefBase.java 2016-04-09 12:22:00 UTC (rev 1891) +++ trunk/src/jason/bb/BeliefBase.java 2016-04-09 21:04:35 UTC (rev 1892) @@ -42,7 +42,7 @@ * Common interface for all kinds of Jason Belief bases, even those * customised by the user. */ -public interface BeliefBase extends Iterable<Literal>, Cloneable { +public abstract class BeliefBase implements Iterable<Literal>, Cloneable { public static final Term ASelf = new Atom("self"); public static final Term APercept = new Atom("percept"); @@ -60,39 +60,36 @@ * <code>agent BeliefBaseClass(1,bla);</code><br> * the init args will be ["1", "bla"]. */ - public void init(Agent ag, String[] args); + public void init(Agent ag, String[] args) {} - public Set<Atom> getNameSpaces(); - /** Called just before the end of MAS execution */ - public void stop(); + public void stop() {} /** removes all beliefs from BB */ - public void clear(); - + public void clear() {} + + public Set<Atom> getNameSpaces() { return null; } + /** Adds a belief in the end of the BB, returns true if succeed. * The annots of l may be changed to reflect what was changed in the BB, * for example, if l is p[a,b] in a BB with p[a], l will be changed to * p[b] to produce the event +p[b], since only the annotation b is changed * in the BB. */ - public boolean add(Literal l); + public boolean add(Literal l) { return false; } /** Adds a belief in the BB at <i>index</i> position, returns true if succeed */ - public boolean add(int index, Literal l); + public boolean add(int index, Literal l) { return false; } /** Returns an iterator for all beliefs. */ - public Iterator<Literal> iterator(); + public abstract Iterator<Literal> iterator(); - /** @deprecated use iterator() instead of getAll */ - public Iterator<Literal> getAll(); - /** * 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; } + public Iterator<Literal> getCandidateBeliefs(PredicateIndicator pi) { return getCandidateBeliefs(Literal.DefaultNS, pi); } + public Iterator<Literal> getCandidateBeliefs(Atom namespace, PredicateIndicator pi) { return null; } /** * Returns an iterator for all literals relevant for l's predicate @@ -106,41 +103,38 @@ * {{a(10),a(20)}. The <code>getCandidateBeliefs(a(X), {X -> 5})</code> * should also return {{a(10),a(20)}.<br> */ - public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u); + public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u) { return null; } - /** @deprecated use getCandidateBeliefs(l,null) instead */ - public Iterator<Literal> getRelevant(Literal l); - /** * Returns the literal l as it is in BB, this method does not * consider annotations in the search. <br> Example, if * BB={a(10)[a,b]}, <code>contains(a(10)[d])</code> returns * a(10)[a,b]. */ - public Literal contains(Literal l); + public Literal contains(Literal l) { return null; } /** Returns the number of beliefs in BB */ - public int size(); + public int size() { return 0; } /** Returns all beliefs that have "percept" as source */ - public Iterator<Literal> getPercepts(); + public Iterator<Literal> getPercepts() { return null; } /** Removes a literal from BB, returns true if succeed */ - public boolean remove(Literal l); + public boolean remove(Literal l) { return false; } /** 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; } + public boolean abolish(PredicateIndicator pi) { return abolish(Literal.DefaultNS, pi); } + public boolean abolish(Atom namespace, PredicateIndicator pi) { return false; } /** Gets the BB as XML */ - public Element getAsDOM(Document document); + public Element getAsDOM(Document document) { return null; } - public BeliefBase clone(); + public abstract BeliefBase clone(); Object lock = new Object(); /** Gets a lock for the BB */ - public default Object getLock() { + public Object getLock() { return lock; } } Modified: trunk/src/jason/bb/ChainBBAdapter.java =================================================================== --- trunk/src/jason/bb/ChainBBAdapter.java 2016-04-09 12:22:00 UTC (rev 1891) +++ trunk/src/jason/bb/ChainBBAdapter.java 2016-04-09 21:04:35 UTC (rev 1892) @@ -1,19 +1,17 @@ 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; import jason.asSyntax.Literal; import jason.asSyntax.PredicateIndicator; -import jason.bb.BeliefBase; -import jason.bb.DefaultBeliefBase; -import java.util.Iterator; -import java.util.Set; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; - /** This class is to be extended by customised belief bases that may be @@ -53,8 +51,7 @@ @author Jomi */ -@SuppressWarnings("deprecation") -public abstract class ChainBBAdapter implements BeliefBase { +public abstract class ChainBBAdapter extends BeliefBase { protected BeliefBase nextBB = null; // the next BB in the chain @@ -84,13 +81,16 @@ // Methods of BB interface + @Override public void init(Agent ag, String[] args) { nextBB.init(ag, args); } + @Override public void stop() { nextBB.stop(); } + @Override public void clear() { nextBB.clear(); } @@ -100,54 +100,57 @@ return nextBB.getNameSpaces(); } + @Override public boolean add(Literal l) { return nextBB.add(l); } + @Override public boolean add(int index, Literal l) { return nextBB.add(index, l); } + @Override public Literal contains(Literal l) { return nextBB.contains(l); } - public Iterator<Literal> getAll() { - return nextBB.getAll(); - } - + @Override public Iterator<Literal> iterator() { return nextBB.iterator(); } + @Override public Iterator<Literal> getCandidateBeliefs(PredicateIndicator pi) { return nextBB.getCandidateBeliefs(pi); } + @Override public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u) { return nextBB.getCandidateBeliefs(l, u); } + @Override public Iterator<Literal> getPercepts() { return nextBB.getPercepts(); } - public Iterator<Literal> getRelevant(Literal l) { - return nextBB.getRelevant(l); - } - + @Override public boolean abolish(PredicateIndicator pi) { return nextBB.abolish(pi); } + @Override public boolean remove(Literal l) { return nextBB.remove(l); } + @Override public int size() { return nextBB.size(); } + @Override public Element getAsDOM(Document document) { return nextBB.getAsDOM(document); } Modified: trunk/src/jason/bb/DefaultBeliefBase.java =================================================================== --- trunk/src/jason/bb/DefaultBeliefBase.java 2016-04-09 12:22:00 UTC (rev 1891) +++ trunk/src/jason/bb/DefaultBeliefBase.java 2016-04-09 21:04:35 UTC (rev 1892) @@ -45,7 +45,7 @@ /** * Default implementation of Jason BB. */ -public class DefaultBeliefBase implements BeliefBase { +public class DefaultBeliefBase extends BeliefBase { private static Logger logger = Logger.getLogger(DefaultBeliefBase.class.getSimpleName()); @@ -66,23 +66,24 @@ nameSpaces.put(Literal.DefaultNS, belsMapDefaultNS); } + @Override public void init(Agent ag, String[] args) { if (ag != null) { logger = Logger.getLogger(ag.getTS().getUserAgArch().getAgName() + "-"+DefaultBeliefBase.class.getSimpleName()); } } + @Override public Set<Atom> getNameSpaces() { return nameSpaces.keySet(); } - public void stop() { - } - + @Override public int size() { return size; } + @Override public void clear() { size = 0; percepts.clear(); @@ -91,6 +92,7 @@ nameSpaces.put(Literal.DefaultNS, belsMapDefaultNS); } + @Override public Iterator<Literal> getPercepts() { final Iterator<Literal> i = percepts.iterator(); return new Iterator<Literal>() { @@ -123,10 +125,12 @@ return percepts; } + @Override public boolean add(Literal l) { return add(l, false); } + @Override public boolean add(int index, Literal l) { return add(l, index != 0); } @@ -183,6 +187,7 @@ return entry; } + @Override public boolean remove(Literal l) { Literal bl = contains(l); if (bl != null) { @@ -214,6 +219,7 @@ } } + @Override public Iterator<Literal> iterator() { final Iterator<Map<PredicateIndicator, BelEntry>> ins = nameSpaces.values().iterator(); return new Iterator<Literal>() { @@ -256,15 +262,8 @@ } }; } - - /** @deprecated use iterator() instead of getAll */ - public Iterator<Literal> getAll() { - return iterator(); - } - public boolean abolish(PredicateIndicator pi) { - return abolish(Literal.DefaultNS, pi); - } + @Override public boolean abolish(Atom namespace, PredicateIndicator pi) { BelEntry entry = nameSpaces.get(namespace).remove(pi); if (entry != null) { @@ -284,6 +283,7 @@ //return belsMap.remove(pi) != null; } + @Override public Literal contains(Literal l) { Map<PredicateIndicator, BelEntry> belsMap = l.getNS() == Literal.DefaultNS ? belsMapDefaultNS : nameSpaces.get(l.getNS()); if (belsMap == null) @@ -297,9 +297,7 @@ } } - public Iterator<Literal> getCandidateBeliefs(PredicateIndicator pi) { - return getCandidateBeliefs(Literal.DefaultNS, pi); - } + @Override public Iterator<Literal> getCandidateBeliefs(Atom namespace, PredicateIndicator pi) { BelEntry entry = nameSpaces.get(namespace).get(pi); if (entry != null) @@ -308,6 +306,7 @@ return null; } + @Override public Iterator<Literal> getCandidateBeliefs(Literal l, Unifier u) { if (l.isVar()) { // all bels are relevant @@ -334,16 +333,12 @@ } } } - - /** @deprecated use getCandidateBeliefs(l,null) instead */ - public Iterator<Literal> getRelevant(Literal l) { - return getCandidateBeliefs(l, null); - } public String toString() { return nameSpaces.toString(); } + @Override public BeliefBase clone() { DefaultBeliefBase bb = new DefaultBeliefBase(); for (Literal b: this) { @@ -352,6 +347,7 @@ return bb; } + @Override public Element getAsDOM(Document document) { int tries = 0; Element ebels = null; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jom...@us...> - 2016-04-09 12:22:02
|
Revision: 1891 http://sourceforge.net/p/jason/svn/1891 Author: jomifred Date: 2016-04-09 12:22:00 +0000 (Sat, 09 Apr 2016) Log Message: ----------- add ant task to produce jason-core.jar Modified Paths: -------------- trunk/build.xml trunk/src/jason/mas2j/parser/mas2jTokenManager.java Modified: trunk/build.xml =================================================================== --- trunk/build.xml 2016-04-09 11:44:30 UTC (rev 1890) +++ trunk/build.xml 2016-04-09 12:22:00 UTC (rev 1891) @@ -8,6 +8,7 @@ <property name="jadeJar" value="${basedir}/lib/jade.jar" /> <property name="jasonSJar" value="${basedir}/lib/s-jason.jar" /> <property name="replJar" value="${basedir}/lib/jason-repl.jar" /> + <property name="coreJar" value="${basedir}/lib/jason-core.jar" /> <property name="build.dir" value="${basedir}/bin/classes" /> @@ -171,6 +172,27 @@ <!-- copy file="${jasonJar}" todir="applications/jason-eclipse-plugin/lib" /--> </target> + <target name="jar-core" depends="jar"> + <jar jarfile="${coreJar}" > + <zipfileset src="${jasonJar}"> + <exclude name="**/MindInspectorAgArch*"/> + <exclude name="**/MindInspectorWebImpl*"/> + <exclude name="jason/environment/grid/**/*"/> + <exclude name="jason/jeditplugin/**/*"/> + <exclude name="jason/runtime/MASConsole*"/> + <exclude name="jason/runtime/OutputStreamAdapter*"/> + <exclude name="jason/util/ConfigGUI*"/> + <exclude name="jason/util/CheckVersion*"/> + <exclude name="jason/control/ExecutionControlGUI*"/> + <exclude name="jason/infra/centralised/*GUI*"/> + <exclude name="jason/infra/centralised/RunCentralised*"/> + <exclude name="jason/infra/jade/**/*"/> + <exclude name="jason/infra/repl/**/*"/> + <exclude name="jason/infra/components/**/*"/> + </zipfileset> + </jar> + </target> + <target name="repl" depends="jar" > <delete file="${replJar}" /> <copy file="${jasonJar}" tofile="${replJar}" /> Modified: trunk/src/jason/mas2j/parser/mas2jTokenManager.java =================================================================== --- trunk/src/jason/mas2j/parser/mas2jTokenManager.java 2016-04-09 11:44:30 UTC (rev 1890) +++ trunk/src/jason/mas2j/parser/mas2jTokenManager.java 2016-04-09 12:22:00 UTC (rev 1891) @@ -6,6 +6,7 @@ import jason.asSyntax.*; import jason.asSemantics.*; import jason.util.*; +import jason.infra.*; public class mas2jTokenManager implements mas2jConstants { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |