-
Notifications
You must be signed in to change notification settings - Fork 321
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
Move msgpack value classes to another project msgpack-value #571
base: main
Are you sure you want to change the base?
Move msgpack value classes to another project msgpack-value #571
Conversation
…sageTypeException and MessageTypeCastException to msgpack-value
@dmikurube My preference order is: If we release a next msgpack-java version and the performance difference is negligible, I'd like to simplify all of the interfaces. by changing the value classes to always use immutable values, and discard existing immutable value interfaces, which is just adding complexity to the entire code base. Then, it would be possible to make the value interfaces more stable. For example, creating msgpack-spi module and introducing org.msgpack.spi package. Value classes will be org.msgpack.spi.Value. If we will introduce such breaking changes, I'm not sure how valuable it is to split the msgpack-value as a separate module at this moment as embulk SPI will be broken again by such a change. I don't think we can create org.msgpack.spi soon, so a reasonable release plan would be like this:
|
@xerial Thanks. Got it. I understand your concerns and plan. Then, I think we'll make a choice of removing
The removal in Embulk API will be much much later to wait for plugins to catch up with the latest manner. But, I believe that making a clear declaration during v0.10 would be reasonable and making things smoother. P.S. You may be interested in this: https://gist.github.com/dmikurube/c48ac6432cb4c2151ff9c75cd253bcd5 |
Yes, unless there are no critical bugs |
Some
org.msgpack.value
classes (typicallyorg.msgpack.value.Value
) are used in method signatures of other software's API/SPI, unfortunately.https://dev.embulk.org/embulk-api/0.10.31/javadoc/org/embulk/spi/PageBuilder.html#setJson-org.embulk.spi.Column-org.msgpack.value.Value-
Against such cases, I was wondering if those value classes are separated in a different Maven artifact so that API/SPI includes only stable
msgpack-value
, and implementation is released from dependency hell...Can I hear your thoughts?
I don't stick with the implementation shown in this PR, such as naming, class structures, and else. This PR is just as a basis for discussion. But such a separation is really helpful.