-
Notifications
You must be signed in to change notification settings - Fork 332
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
Java API for JPlag #89
Conversation
Remove files not required anymore
…ary reporting functionality
… TODO comments and names.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the comprehensive contribution! I reviewed the changes and they look great. When @sebinside had a chance to look at them as well we will merge them.
@krusche @philippbauch is the version of the PR the version of JPlag you are currently using for Artemis ? |
yes, except some smaller changes done by @philippbauch in the meantime and some smaller changes done by @tsaglam and @sebinside As soon as this PR is merged, it would be awesome if the JPlag library can be published to Maven Central (we have done this before and can help with it), then we could integrate the dependency more easily into Artemis. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are several bugs remaining in the CLI, but these can be fixed afterward.
Concerning issue #116. This adds the clustering that was removed in #89 again, not including any user interfaces. The clustering is implemented in the de.jplag.clustering package. It includes two clustering algorithms (spectral and agglomerative), preprocessing, decoupling logic, clustering options and a factory class which can be used to run the clustering in just two statements.
In this pull request, @philippbauch has implemented a Java API for JPlag that allow other tools (e.g. Artemis) to invoke JPlag in a more object oriented way instead of using command line options.
We also added new objects (shown in the README file in a UML class diagram) to improve the result reporting so that other tools can interpret the results more easily.
Example
Class Diagram
This PR also updates the JPlag version to 3.0.0, but tries to stay compatible with 2.x versions and previous workflows.
We are happy to discuss any changes or improvements.
Please note: Some folders have been deleted to simplify the project structure, but we can also add them again in case they are still needed