But useIncrementalCompilation=true (the default), does stale checks (https://github.com/apache/maven-compiler-plugin/blob/31d868bbd0316d34b10efb58b1e0a661ebf9e671/src/main/java/org/apache/maven/plugin/compiler/AbstractCompilerMojo.java#L824); so honestly I doubt it's the cause of spurious GWT recompilations here.
For me mvn -X outputs: [DEBUG] useIncrementalCompilation disabled
[DEBUG] (f) useIncrementalCompilation = false
[DEBUG] (f) verbose = false
[DEBUG] -- end configuration --
[DEBUG] Using compiler 'javac'.
[DEBUG] Adding /home/klemen/git/Dis/Dis-client/target/generated-test-sources/test-annotations to test-compile source roots:
/home/klemen/git/Dis/Dis-client/src/test/java
[DEBUG] New test-compile source roots:
/home/klemen/git/Dis/Dis-client/src/test/java
/home/klemen/git/Dis/Dis-client/target/generated-test-sources/test-annotations
[DEBUG] CompilerReuseStrategy: reuseCreated
[DEBUG] useIncrementalCompilation disabled
@mdavis95 Thanks for the info! I like everything which is lightweight 👍
A question: is there any reason why the client and server use different APIs / contracts? Actually I would expect to have the same APIs on client and server? In Domino REST I could do this. The same APIs are used on client and server... see example: https://github.com/gwtboot/domino-rest-enum-date
@mdavis95 What I meant is why do we have to use different APIs for client and server?
Client:
@PUT
@Path("/add")
void addToDo(ToDoDTO toDo, SingleCallback<ToDoDTO> callback);
Server:
@Put("/add")
public HttpResponse<ToDo> add(@Body ToDo todo) {
todoService.addTodo(todo);
return HttpResponse.created(todo);
}
Why do we need SingleCallback<ToDoDTO> callback as a param instead of just return HttpResponse<ToDo>?
Not a good example is e.g. RestyGWT, it added a second possibility to use the same APIs client and server later on with DirectRestService... But very very late and you need to extend from DirectRestService, see: https://resty-gwt.github.io/documentation/restygwt-user-guide.html
...
or if using REST.withCallback(..).call(..), you can reuse the same interface on the server side as well:
...
IMHO Domino REST has a very good API design (with the help of APT)... 👍
@FrankHossfeld I found this nice example integration of Electron, Vue.js and Spring Boot: https://github.com/wuruoyun/electron-vue-spring
It can be directly updated to GWT I think... Just the integration of logger, app from JS (in this case Vue.js) to Electron has to be migrated to GWT...