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

[Question] hasJsonConstructor in vertx/codegen/DataObjectModel.java

Open bebsworthy opened this issue 5 years ago • 2 comments

Hello,

More of a question,

I'm trying to customize the vertx-proxygen templates to not use a constructor that requires a JsonObject but I get stopped by this bit here.

With this bit removed and by using custom templates for proxy gen that uses static factory method I don't seem to have any issues.

vertx/codegen/DataObjectModel.java


    boolean hasJsonConstructor = (constructors & 2) == 2;

    if (concrete && !hasJsonConstructor) {
      throw new GenException(modelElt, "Data object " + modelElt + " class does not have a constructor " + modelElt.getSimpleName() + "(" + JsonObject.class.getSimpleName() + ")");
    }

Alternatively does anyone have a working example of using kotlin data class with proxy-gen? The only way I could get it to work was to hack out this bit above and change the template to use jackson deserialization instead of new T(JsonObject).

on v3.7.0

bebsworthy avatar May 22 '19 11:05 bebsworthy

Not Vertx-specific but Spring recently added support for data classes (29.5). It might be worth looking into how they accomplished that.

rgmz avatar Jun 05 '19 00:06 rgmz

Hi, in Vert.x 4 you will be able to extend the service proxy generation using new JsonCodec feature. Let me know if you need something else

slinkydeveloper avatar Jun 17 '19 07:06 slinkydeveloper