Skip to content

moosetechnology/VerveineJ

Repository files navigation

VerveineJ

Use Java 17 CI Moose version Coverage Status

Please note that this version of VerveineJ is compatible with Moose-10 (and possibly later). It is based on a meta-model that does not match the one of previous versions of Moose, hence, they are not able to load the models generated by this VerveineJ.

A Java to JSON/MSE importer.

Based on JDT, it parses java code to export it in the MSE or JSON formats used by the Moose data analysis platform.

Running it

There is a docker version.

It will create an output.json (JSON format also available) file with the model extracted from the <java-source-directory> There is a docker version at: https://github.com/Evref-BL/VerveineJ-Docker) (thanks to Benoît Verhaeghe for this). If you already have docker the summary is:

docker run -v <full/path/toSource>:/src [-v <full/path/toDependency>:/dependency] ghcr.io/evref-bl/verveinej:latest <verveineJOption>

The resulting model file (.json or .mse) is in <full/path/toSource>.

Otherwise, on the command line, download the jar of the latest release and the command is

java -jar VerveineJ-v1.0.0.jar -format json -autocp <dependency/folder> <src/folder> 

It will create an output.json file with the model extracted from the <java-source-directory>

To see what other options are available:

java -jar VerveineJ-v1.0.0.jar -h

Developers

We do use gradle to compile and load dependencies.

Since we load project from github repository. Please create a file named gradle.properties in the root of this project as follow

gpr.user=<USERNAME>
gpr.token=<TOKEN>

we expect here your <username> and <token> from GitHub platform. Please never commit them

It is possible to run the tests and generate a jacoco test report with

./gradlew app:jacocoTestReport

Build a fat jar excecutable

You can build the project and produce a fat jar with

./gradlew app:shadowJar

Debug advanced mode

Sometimes, because of the JVM optimization, stacktraces are not fully displayed. To force JVM keep the full stacktrace, you can use the following vm options:

-XX:-OmitStackTraceInFastThrow -Xint

This will make the execution super slow, so keep this option for debug purpose only.