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

Introduce custom formatter for json property names

Open pk-work opened this issue 4 years ago • 0 comments

Describe the feature

Introduce custom formatter for json property names

Use cases

I have a POJO which is annotated with @DataObject (vertx-codegen) to convert it into JSON and back. This POJO has an attribute called "endpointConfigs", but in the JSON I want to call it "endpoints". I saw that @DataObject has a property called "jsonPropertyNameFormatter", which I think is exactly what I need.

Contribution

I would try to implement this feature. @vietj gave me already some entry points in discord, which I will add to this description then we have everything on one page.

Place to choose the formatter [1].

Discord messages
  • ideally we should be able to support loading this class from a classloader
  • I think the most difficult issue is using the correct classloader for this
  • Introducing a new classloader and configure the classpath in codegen config is the wrong direction, because it adds more complexcity.
  • if you look at loadJsonMappers we do use getClass().getClassLoader() so perhaps it should simply work with this
  • you need two projects one jar with the Case one project that use it from compilation classpath (I hope I can solve it more elegant with just in time compilation)

[1] https://github.com/vert-x3/vertx-codegen/blob/730d4f707ef4eb8d6dca489614b9a5e9e0e3c182/src/main/java/io/vertx/codegen/generators/dataobjecthelper/DataObjectHelperGen.java#L349

pk-work avatar May 07 '21 07:05 pk-work