fischerfel / APDG

This tool generates an attributed program dependency graph from incomplete Java source code. It stores the graph as a vector that can be used to train neural networks.
3 stars 0 forks source link

APDG Setup or standalone tool without Eclipse #1

Open jbirtel opened 7 months ago

jbirtel commented 7 months ago

Hi,

I was trying to set APDG up in the latest version of Eclipse (2024-03) as part of my master's thesis, but I couldn't get it running. When trying to install PPA as a plugin, it could not find the JUnit4 4.3.1 dependency (which is about 15 years old, I think) and thus, the installation of that tool failed.

For APDG, I did not know what source URL to give Eclipse to get the plugin from, so the equivalent to this link, and thus could not get that running, even if PPA, which is given as a dependency for APDG would not have clashes with the JUnit version.

Therefore, my questions would be:

I very much appreciate any help on this!

Cheers

fischerfel commented 7 months ago

If you are running your experiments on complete and sound Java source code, you do not need PPA. However, you would have to perform some minor modifications to the source code of APDG to replace calls to PPA and remove imports.

If you need to perform PPA, you unfortunately have to install a very old Eclipse version to make it run (Helios 3.6 I think). This should solve the JUnit issue.

To download and install the PPA dependency in Eclipse try this URL

You can run APDG in headless mode which allows you to run it from command line without Eclipse UI. However, it still requires Eclipse...

It is possible to to input a Java file as input via file path. You can use the 'snippets' argument to pass a directory to your Java files.

Could you elaborate a bit for which purpose you want to use APDG? May be there are newer tools you can use...

jbirtel commented 7 months ago

Thank you for your response!

Is there something like a tutorial how to set up APDG in headless mode? Or is this included in the tutorial from PPA, that was linked here with APDG? By saying it still requires Eclipse, you mean that I can use any command line, but need to have installed the old Eclipse version or I must run it in the Eclipse, but can use the command line of Eclipse?

To elaborate a bit on what I want to do: As part of my Master thesis, I also want to find Java code snippets from StackOverflow in Android Apps. For this use case, of course, I cannot rely on the snippets to be complete and sound, so I need some tool that is robust against it.

jbirtel commented 6 months ago

If you know any other tools that can be helpful, I would be happy to receive any recommendations or hints. If that works out better, I can also leave you my mail here for a conversation.