Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JaCaMo Eclipse Plugin Difficulties #2

Open
addy90 opened this issue Sep 28, 2016 · 5 comments
Open

JaCaMo Eclipse Plugin Difficulties #2

addy90 opened this issue Sep 28, 2016 · 5 comments

Comments

@addy90
Copy link

addy90 commented Sep 28, 2016

I am trying to use JaCaMo for a while now and there are some problems with the Eclipse plugin that are quite bothering... maybe you can do something about that in a following version?

  1. There is no JavaDoc / sourcecode linked with the libraries, even better would be linked source code.
    It would be better to link source code against the libraries, especially within Artifacts, as with linked source code, javadoc would be linked, too and you can look up the functionality if you need to when something does not behave like it should. At the moment, one has to navigate in your subversion tree which is quite annoying... maybe it also would be good to move CArtAgO to GitHub as well like Jason, MOISE and JaCaMo.
  2. Moreover, in AgentSpeak you are totally blind when writing anything as there is no code completion and no documentation at all. You have to look up everything manually, which consumes a lot of time when beginning or trying to understand already written code (without any doc highlight).
  3. There is no Maven (or Gradle) used in JaCaMo projects. Though you HAVE a Maven repository http://jacamo.sourceforge.net/maven2, one cannot use it for JaCaMo projects. I think the source code and javadoc are also missing from the maven repository, which does not allow to create Maven projects in Eclipse that can be used with the JaCaMo plugin. It would be perfect if one could create a Maven JaCaMo repository, because often you want to auto-update to the newest libraries, want to add other libraries for usage in Artifacts or in combination with JADE and you may want to add Maven Submodules, too. So a Project Creation Wizard that would create a POM.xml that manages the JaCaMo project so that you also can run your code when it is packaged with maven and where you can download source code and javadoc with maven would be perfect.

I hope you will work on these topics as for the moment, these difficulties make the usage of JaCaMo very difficult in projects.

@jomifred
Copy link
Collaborator

Hello Addy, thanks for your feedback.

we have a lot to be done in the JaCaMo project, specially in user friendly tools... as you well remarked.

I plan to better answer some points latter, however some initial and brief answer follows.

  1. a lot of doc is available in the projects JaCaMo is based on (e.g. http://jason.sourceforge.net/wp/documents/) -- but not well integrated in the eclipse plugin, as you commented. cartago, jason, and moise are already in github.
  2. Code completion for Jason is not so easy.... a future work.
  3. When using JaCaMo command line scripts, as new-jacamo-project (see https://github.com/jacamo-lang/jacamo/blob/master/doc/tutorials/hello-world/shell-based.adoc), a gradle script is generated for your project. We decided for gradle instead of maven... But I guess that someone can easily create a POM file from what is defined in the gradle file....

Jomi

@addy90
Copy link
Author

addy90 commented Sep 29, 2016

Hi Jomi!

Thanks for your reply! I know that a lot has been done!

I have not found the GitHub repository for CArtAgO that you mentioned though... can you perhaps provide a link? :) Thanks!

So just for being complete: I found JaCaMo here: https://github.com/jacamo-lang/jacamo
Then Jason is found here: https://github.com/jason-lang/jason
And MOISE is here: https://github.com/moise-lang/moise
I also saw that the links to these repositories exist on the websites!
But CArtAgO only seems to be here: https://svn.code.sf.net/p/cartago/code/ which is not searchable like GitHub for code... but at least it's there, too!
But it's not that easy to include within eclipse projects as source code for libraries in all cases. Especially because the version you download and the libraries that are packaged with JaCaMo differ in some version numbers sometimes.

So nevertheless, it would be great if javadoc and sourcecode could be packaged on maven and in the library zip files you download for development, too. You still can omit it in a runtime package or provide some export mechanism for creating a runnable jar file, no?

The new-jacamo-project script does not create a gradle file when you follow the tutorial you linked above, because you are directed towards sourceforge to download the current 0.6-SNAPSHOT and with that release, the new-jacamo-project script does not create a gradle script as it seems. I have to try again with the GitHub master again... :) Maybe that solves a lot when I can write a POM-file from there as I am currently encouraged to use maven and not gradle... you know, not every decision is made by yourself ;)

EDIT: Okay with the current script version, it works and it creates a gradle script! But problem is: This project is not recognized as JaCaMo project in Eclipse. And in Eclipse, you also cannot convert it towards a JaCaMo project it seems.

Thanks so far!

@jomifred
Copy link
Collaborator

Hi,

  • I changed the readme of JaCaMo to include the links to GitHub projects
  • For some projects, the sources and doc were included in the maven repository and I hope they all are updated now.

@jomifred jomifred reopened this Sep 29, 2016
@rbordini
Copy link
Collaborator

Hi Adrian,

Many thanks for your excellent comments, we'll be able to improve a few
things in the short term, and we'll keep notes of the other ones to do
when we are able (open source projects typically rely on people
volunteering their time).

If you don't mind, could you please let us know what you are developing
with JaCaMo and where are you from? We are curious because we have many
users but very very few people actually bother about JaCaMo's source
code! Of course if it's something commercial and you'd prefer not to
tell us that's absolutely fine, the license we used certainly allow for
commercial applications as well.

All best wishes,

Rafael

On 29/09/2016 04:21, Adrian wrote:

Hi Jomi!

Thanks for your reply! I know that a lot has been done, but many things
are not properly linked and need to be found via Google, like the GitHub
Repository for MOISE which is not linked on the Website, or the one for
Jason that also is not linked on the Website. I have not found the one
for CArtAgO that you mentioned though... can you perhaps provide a link?
:) Thanks!

So just for being complete: I found JaCaMo here:
https://github.com/jacamo-lang/jacamo
Then Jason is found here: https://github.com/jason-lang/jason
And MOISE is here: https://github.com/moise-lang/moise
But CArtAgO only seems to be here:
https://svn.code.sf.net/p/cartago/code/ which is not searchable like
GitHub for code...
So nevertheless, it would be great if javadoc and sourcecode could be
packaged on maven and in the library zip files you download for
development, too. You still can omit it in a runtime package or provide
some export mechanism for creating a runnable jar file, no?

The new-jacamo-project script does not create a gradle file when you
follow the tutorial you linked above, because you are directed towards
sourceforge to download the current 0.6-SNAPSHOT and with that release,
the new-jacamo-project script does not create a gradle script as it
seems. I have to try again with the GitHub master again... :) Maybe that
solves a lot when I can write a POM-file from there as I am currently
encouraged to use maven and not gradle... you know, not every decision
is made by yourself ;)

Thanks so far!


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#2 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJlP0H-cDJmzv01orTlafsCGH1ot3BLQks5qu2bkgaJpZM4KIsCS.

@addy90
Copy link
Author

addy90 commented Sep 29, 2016

@jomifred Thank you a lot, finally found CArtAgO on GitHub!
And it's also possible to get source code and javadoc via Maven for Jason 2.0, Moise 0.10 and JaCaMo 0.6, too.
Sourcecode and JavaDoc are still missing for npl-0.2, jaca-2.2, intmas-1.0.0 and cartago-2.2 though. Especially CArtAgO would be nice, too as you often want to go to the Artifact BaseClass for looking up things like defineObsProp.

@rbordini Thanks for your feedback, too - that was what I had in mind, to give some feedback for improving things a little bit!
I am doing research in Multi-Agent Systems for Smart Energy Systems currently and I am from a German science institute, working as a research assistant.
So what I worked quite a lot with JADE already but though it is quite major and robust already, surely reliable in professional environment, it lacks simplifications for agent communication and organisation, like there is no BDI in pure JADE and every communicative act has to be done by hand. But JADE is fully integrated with Maven (currently JADE is on 4.4, JaCaMo usese 4.3) and you can built portable jar-files that run the complete MAS from a main-Class inside. This is not possible with JaCaMo, yet, it's difficult to build a project based on Maven via simple declaration of dependency and thus it is difficult to combine JaCaMo with 3rd-party libraries so that you can work with other software, databases, machine learning algorithms and real hardware. All of that is possible with JADE though.

JaCaMo can run on JADE basically, but there seems to be another problem: https://github.com/aricci303/cartago/issues/1
So I tried to combine the great and simple principle of JaCaMo with JADE and with 3rd party libraries in a standardized way in Maven for building portable jar files. But as you see, I faced different problems when developing sample applications and at the moment, it looks like JaCaMo is a great research tool but only when it stays within it's own bounds. I don't know if it would work better when JaCaMo could be used like a 3rd party library like it is possible with JADE (and it should be possible with the JaCaMo Launcher code, too) - but at the moment, there are quite a lot of difficulties.
For example, I was not able to boot a JaCaMo application via RunJaCaMoProject class from packaged jar file like this:
URL url= ClassLoader.getSystemClassLoader().getResource("mas.jcm"); RunJaCaMoProject.main(new String[]{url.getFile()}); It works on the local file system but not when packaged inside a single jar. It may of course work when having a file hierarchy with the dependencies on classpath. But I tried it like many other things :)

So to conclude: Though offering an Eclipse Plugin is a great thing for making the development easier, the way the project is created is only useful for local development. There should be a possibility for relying entirely on Maven or Gradle, so not only choose whether to use Centralized or Decentralized but also if local, Maven or Gradle. For Gradle there already exists a possibility via the new-project script, which needed to use the current version from GitHub what was not clear before, but the JaCaMo dependencies still are installed system wide and not per project via Maven which makes deployment and continous integration nearly impossible in real life scenarios, especially when you want to update to a new version because some bug was closed by you. Moreover, combining JaCaMo with JADE agents does not seem to work as it should (see above) - of course I know that this is a difficult thing, but it looks like that is just because of bugs (don't get me wrong, software without bugs are not possible :D) and not because the concept wouldn't allow it. Debugging and Developing were or still are really difficult or impossible because of the way the projects are launched and because the source code was and is not available within projects created via the Eclipse Plugin and via Maven (though some codes are here now thanks to Jomi!). Especially difficult is to call operations from Jason / AgentSpeak as there is no help within the editor like code completion and overlay documentation - I know this is difficult but it makes development extremely slow, too. Maybe that ant-build system is not the best way to launch the application, maybe the launching should rely on java code entirely. I don't know if this is possible, but in the end, JaCaMo should be able to integrate in other software as easy as other libraries. Long way to go, I know - but JaCaMo is a great concept, just not mature enough for production unfortunately... :/ By the way: Congrats on winning in Multi Agent Contest during all of the last years ;) Shows great potential! It's the reason I looked deeper into JaCaMo :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants