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