[ 
https://issues.apache.org/jira/browse/AVRO-1605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15529260#comment-15529260
 ] 

Tom White commented on AVRO-1605:
---------------------------------

I see your point. The motivation behind this change is to upgrade to Jackson 2 
(AVRO-1126), so another way to approach this would be to see how the deprecated 
methods could be removed in making that change.

I think the main problem here is that there are public methods that should 
really only be used by the internals, like JsonProperties#addProp(). In the 
absence of any Java-level mechanism for dealing with that, our options are i) 
relying on documentation (or an annotation) to say that a method is internal 
only, or ii) using a friend package schema and excluding the friend package 
from javadoc (see 
http://wiki.apidesign.org/wiki/APIDesignPatterns:FriendPackages).

Ideally, we'd also make Schema immutable at the same time, but that doesn't 
make this problem any easier.

> 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)

Reply via email to