eclipse-vertx / vertx-codegen

Vert.x code generator for asynchronous polyglot APIs
Apache License 2.0
105 stars 92 forks source link

Improve project modularisation #358

Closed vietj closed 1 year ago

vietj commented 1 year ago

The project structure is a single jar file that contains everything all classes.

With the addition of protobuf generation we have added a new module to the project which create potential split package issues that we should avoid.

We should think about making it more modular by breaking it in more modules (annotations, processor, json generator).

The vertx-codegen module would become like an uber jar of that for backward compatibility. Code would be repackaged accordingly and the vertx-codegen module would contain a io.vertx.codegen.CodegenProcessor class inheriting from the repackaged processor class for backward compatibility.

vietj commented 1 year ago

see https://github.com/eclipse-vertx/vertx-codegen/pull/362

cvgaviao commented 1 year ago

@vietj , what do you think about splitting the processor project into two? One for @DataObject and the other for @VertxGen. Also, create one module just for the annotations.

This way would be easier to have a new processor project using JDK 16 for the #340, which would reuse the annotations and data_objects project.