[
https://issues.apache.org/jira/browse/AVRO-1605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15725006#comment-15725006
]
Gabor Szadovszky commented on AVRO-1605:
----------------------------------------
Thanks for the reply, [~rdblue].
I completely agree that we should not commit half-ready changes or changes that
we already know will be removed later.
What I was trying to explain is that I can see the following approaches to get
rid of jackson classes from the public API:
* Rewrite the code base to not to use the jackson json object structure neither
public nor internally. In this case we shall use jackson for only mapping the
json structure to our own object structure. Currently, we have some classes
that use the jackson json object structure quite intensively (e.g. the
generated class {{Idl}}). I don't know how much effort would it require to do
this change neither if it would worth it.
* Keep using the jackson json object structure but only inside the packages.
Between the packages the public API is used with converting the internal
jackson json object representation to the public object types and vice-versa.
Another idea would be to restructure the related classes to have them in the
same package so package private visibility would be used easily. I don't think
it is feasible for the current Avro code base and I am not sure it would be the
best idea as packages used for not only controlling visibility but for adding
some semantic structuring.
* Keep the jackson json object structure used internally and use whatever
techniques to hide them from the public API. One way is the friend packages
suggested by [~tomwhite]. I think it is a completely acceptable approach for
kind of extending the original java visibility possibilities.
I would vote on the latter one.
> Remove Jackson classes from public API
> --------------------------------------
>
> Key: AVRO-1605
> URL: https://issues.apache.org/jira/browse/AVRO-1605
> Project: Avro
> Issue Type: Sub-task
> Components: java
> Affects Versions: 1.7.8
> Reporter: Tom White
> Assignee: Gabor Szadovszky
> Fix For: 1.9.0
>
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)