-
Notifications
You must be signed in to change notification settings - Fork 8
Split Stream off into a separate avaje-json module #293
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't see anything wrong with the PR from a technical perspective
When I look at code that we write [manually without jsonb generator] like - https://github.com/avaje/avaje-jsonb/pull/293/files#diff-1e05e375a32827a80ed685aa0e6417a8c5de55ef81aff992486bab633fe064cb ... this makes me ponder if a JsonAdapter like interface should exist in avaje-core? ... with implementations for the basic types such as string, long, double, boolean, map? and list? ... with the view that it should be easier to constructor your own JsonAdapter manually using those basic building blocks? That is, should JsonAdapter be in avaje-core? [minus the ViewBuilderAware and Factory] ... and some of the basic implementations like stringAdapter etc? |
… ViewAwareBuilder This will allow moving JsonAdapter to the core module and leave the ViewAwareBuilder "trait" in jsonb. It's less "tight" doing things this way but it does allow the JsonAdapter to live in a separate module from ViewAwareBuilder.
We can put these back replacing the unwrap, now that the ViewBuilderAware interface is in core etc. I don't think the unwrap() style is obviously better than this so putting this back.
Ok, good to go with this now. Overall pretty happy with the result, I think it makes decent sense. |
This is a Breaking change - e.g. the Exception types + JsonReader/JsonWriter move into
io.avaje.json
Not 100% sure if this is a good idea yet, the thinking here is:
Splitting them means that avaje-core becomes ~95kb and avaje-jsonb ~135kb
Breaking changes / Renames:
io.avaje.jsonb.JsonReader -> io.avaje.json.JsonReader
io.avaje.jsonb.JsonWriter -> io.avaje.json.JsonWriter
io.avaje.jsonb.spi.PropertyNames -> io.avaje.json.PropertyNames
io.avaje.jsonb.stream.JsonStreamAdapter -> io.avaje.json.stream.JsonStream
Constructors to Builder