> Am 27.03.2016 um 19:16 schrieb Romain Manni-Bucau <[email protected]>: > > Le 27 mars 2016 17:48, "Mark Struberg" <[email protected]> a écrit : >> >> We currently have no ‚API‘ for Mapper etc. That means that we pretty much > expose all internals to the public. That is fine as long as no one comes > whining why we change some signatures. >> > > This is not true and not having an interface allows end users to extend it > in a smooth manner for advanced things.
Which we will most certainly break with any minor refactoring… >> Imo we should start to make it clear what is considered an end-user > contract and what is purely internal and subject to get changed. > > Once again contract != interface. Your MappingConfig is a very good and due > refactoring which would solve most of current issues. Still needs review. First draft is committed to my github branch. Still a few miles to go :( What I aim for is that the MapperBuilder builds a config. All mutable. But if you create a Mapper then we do a clone() on the *current* MapperConfiguration and pass this to the Mapper where there is no way to change it later. > Side note: -1000 to any spi for the impl. I would love to see an own SPI package at least. Currently the people using Mapper can not be sure what will remain stable in the future and which signatures might change… Probably it becomes less important if the JSON-B spec adopts a capable API. One of my goals is to have something the JSON-B EG can look at and probably adopt the approach. Not sure if their time and manpower allows it, but currently the jsonb Adapters are really way too limited. LieGrue, strub
