vertx-codegen icon indicating copy to clipboard operation
vertx-codegen copied to clipboard

After modifying the source file, the corresponding automatically generated class is not updated

Open changchengqin opened this issue 5 years ago • 4 comments

Questions

After modifying the source file, the corresponding automatically generated class is not updated.

Version

4.0.0-milestone4

Context

while I used vertx to automatically generate classes such as VertxProxyHandler and VertxEBProxy, I encountered a problem, that is: when I modify a certain service source code file, the IDE will automatically recompile it, but the corresponding VertxProxyHandler and VertxEBProxy classes have not been recompile.

After debugging, I found that it was caused by this line of code in the process method of the CodeGenProcessor class in the vertx-codgen class library.

image

As long as classes such as VertxProxyHandler are automatically generated once, unless the entire project is recompiled as a whole or the generated class is deleted, it will not be automatically generated in the future.

Do you have a reproducer?

https://github.com/changchengqin/codegen

Steps to reproduce

  1. clone above repo.
  2. build
  3. modify source file src/main/java/com/example/codegen/service/UserService.java
  4. recompile source file src/main/java/com/example/codegen/service/UserService.java

The normal expected result is that UserServiceVertxProxyHandler and UserServiceEBProxy should be updated accordingly, but the fact is not.

Extra

  • OS: Windows 10 Enterprise
  • JDK: 11 or later
  • IDE: Intellij IDEA Community 2019.3.1 or 2019.3.3 or 2019.3.4 or 2020.2

changchengqin avatar Aug 09 '20 04:08 changchengqin

have you tried modifying this project to make it work ?

vietj avatar Oct 21 '20 12:10 vietj

Yes, I tried many times, including using the latest Vertx 4.0.0.beta3 version, the phenomenon still exists.

changchengqin avatar Oct 24 '20 12:10 changchengqin

no I mean, have you tried patching vertx-codegen to make it work

vietj avatar Oct 26 '20 07:10 vietj

Hmm, yes, when I commented these three lines of code in the process method of the CodeGenProcessor class, everything returned to normal. image

changchengqin avatar Oct 29 '20 07:10 changchengqin