Skip to content

Agentville/agentville-jade-archetype

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 

Repository files navigation

agentville-jade-archetype

Dieses Projekt erstellt einen Maven-Archetype, mit dem ein Maven-Projekt für einen JADE-Agenten angelegt werden kann.

Der Archetyp kann erzeugt und lokal im Maven-Repo (.m2) installiert werden, und zwar auf der Kommandozeile mit


>mvn clean install archetype:update-local-catalog

Anschließend kann ein neues Maven-Projekt angelegt werden, und zwar mit einem Befehl wie folgendem:


>mvn archetype:generate 
     -DarchetypeGroupId=agentville.jade.maven.archetype 
     -DarchetypeArtifactId=jade-agent-archetype 
     -DarchetypeVersion=1.0-SNAPSHOT 
     -DgroupId=<groupId> 
     -DartifactId=<artifactId>

(Wobei sich die Versions-Nr natürlich auch mal geändert haben kann. Und die <groupId> und die <artifactId> entsprechend ersetzt werden müssen.)

Das mit diesem Archetype erstellte Projekt kann in Eclipse (o.ä.) importiert und auch direkt kompiliert werden. Es erzeugt dann zwei JARs: Ein ausführbares Standard-Maven-Artefakt mit der Bezeichnung <artifactId>-<version>.jar sowie einen JADE-Agenten mit der Bezeichnung voll_qualifizierter_Klassenname_des_Agenten.jar. Inhaltlich sind beide Agenten identisch.

Der Agent selbst ist natürlich simpel und dient lediglich als leichter Einstieg.

Notwendige Anpassungen

  • Wenn die Klasse "MyAgent" umbenannt wird, dann muss diese Bezeichnung auch in der POM geändert werden.
  • Wenn die Klasse "MyAgent" umbenannt wird, dann muss außerdem die Referenz in der Klasse "AgentStarter" geändert werden - außer die Umbenennung der Klasse erfolgte mit der Rename-Funktion der IDE. Die macht das automatisch.
  • Wenn die Klasse "AgentStarter" umbenannt wird, dann muss ebenfalls eine Referenz in der POM geändert werden.
  • Wenn die Klasse "AgentStarter" gelöscht wird, beispielsweise weil der Agent keine Main-Methode benötigt, wird durch die POM ein ungültiger Eintrag in der Manifest-Datei der erstellten Binaries erzeugt. Der Eintrag kann dann auch einfach entfallen, also folgende Zeile löschen:
    <mainClass>${project.groupId}.AgentStarter</mainClass>
  • Die Properties "name" und "url" in der POM sollten natürlich auch sinnvoll geändert werden.

TODOs

  • Die Main-Methode und vllt. auch den Agenten noch etwas ausbauen.
  • Logging ergänzen (Java logging, JADE logging)
  • Testfälle ergänzen (JADE TestSuite, junit?)
  • API-Docs und Reports (javadoc, site)
  • Archetype veröffentlichen (oder wenigstens als Binary zur Verfügung stellen.) (Vor dem veröffentlichen für eine vernünftige Domain/eine vernünftige GroupID sorgen.)

Nice to haves

Uns allen ist klar, dass ich folgendes vermutlich nie machen werde - auch wenn ich es gern würde:

  • vernünftiges Logging mit log4j o.ä. Da gibts auch was für, heißt log4jade, funzt aber net unter bspswse Android afaik.
  • Aufteilung auf verschiedene Archetypen:
rare medium well done
Grundstruktur X X X
Java-Docs (API) X X X
Logging X X
Testing X
Reports X

About

Maven-Archetype für einen JADE-Agenten

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages