Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id A5407200BE4 for ; Tue, 6 Dec 2016 12:12:22 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id A3D89160B32; Tue, 6 Dec 2016 11:12:22 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 0271B160B0C for ; Tue, 6 Dec 2016 12:12:21 +0100 (CET) Received: (qmail 42919 invoked by uid 500); 6 Dec 2016 11:11:32 -0000 Mailing-List: contact dev-help@avro.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@avro.apache.org Delivered-To: mailing list dev@avro.apache.org Received: (qmail 39485 invoked by uid 99); 6 Dec 2016 11:11:30 -0000 Received: from arcas.apache.org (HELO arcas) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 06 Dec 2016 11:11:30 +0000 Received: from arcas.apache.org (localhost [127.0.0.1]) by arcas (Postfix) with ESMTP id 29E3E2C03EA for ; Tue, 6 Dec 2016 11:11:30 +0000 (UTC) Date: Tue, 6 Dec 2016 11:11:30 +0000 (UTC) From: "Gabor Szadovszky (JIRA)" To: dev@avro.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Commented] (AVRO-1605) Remove Jackson classes from public API MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 archived-at: Tue, 06 Dec 2016 11:12:22 -0000 [ 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)