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 37491200CF6 for ; Mon, 18 Sep 2017 20:13:22 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 35B511609DB; Mon, 18 Sep 2017 18:13: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 78FEB1609D4 for ; Mon, 18 Sep 2017 20:13:21 +0200 (CEST) Received: (qmail 95258 invoked by uid 500); 18 Sep 2017 18:13:20 -0000 Mailing-List: contact dev-help@accumulo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@accumulo.apache.org Delivered-To: mailing list dev@accumulo.apache.org Received: (qmail 95247 invoked by uid 99); 18 Sep 2017 18:13:20 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 18 Sep 2017 18:13:20 +0000 Received: from mail-io0-f182.google.com (mail-io0-f182.google.com [209.85.223.182]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id AF05C1A0029 for ; Mon, 18 Sep 2017 18:13:19 +0000 (UTC) Received: by mail-io0-f182.google.com with SMTP id q11so4211917ioe.10 for ; Mon, 18 Sep 2017 11:13:19 -0700 (PDT) X-Gm-Message-State: AHPjjUiFCUwmf1Zqan6P8cC5JwyjPpLsv/fuGFKmuk8TEoXOoLxqC8el NyLnYANHp0YMIjuUGNjfRv73zfu44Bv9pI3Hgb0= X-Google-Smtp-Source: AOwi7QDPWo63mN7DG3ILW4BK/0QNGdZgb7q5QsI4Ex0OE7k1aACoISQ5+ORa2ya6WSGmxb+Ub/YV9pF7cbrczSAs6zE= X-Received: by 10.202.79.13 with SMTP id d13mr35078046oib.141.1505758398555; Mon, 18 Sep 2017 11:13:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.168.71.194 with HTTP; Mon, 18 Sep 2017 11:12:58 -0700 (PDT) From: Mike Miller Date: Mon, 18 Sep 2017 14:12:58 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: [DISCUSS] Guava Dependencies To: "dev@accumulo.apache.org" Content-Type: multipart/alternative; boundary="001a113d809876d28f05597ab259" archived-at: Mon, 18 Sep 2017 18:13:22 -0000 --001a113d809876d28f05597ab259 Content-Type: text/plain; charset="UTF-8" Recently tickets have been opened dealing with Guava in Accumulo (see ACCUMULO-4701 through 4704), in particular the use of Beta classes and methods. Use of Guava comes with a few warnings... From the Guava README: *1. APIs marked with the @Beta annotation at the class or method level are subject to change. They can be modified in any way, or even removed, at any time. If your code is a library itself (i.e. it is used on the CLASSPATH of users outside your own control), you should not use beta APIs, unless you repackage them (e.g. using ProGuard).2.Deprecated non-beta APIs will be removed two years after the release in which they are first deprecated. You must fix your references before this time. If you don't, any manner of breakage could result (you are not guaranteed a compilation error).* I think it is worth a discussion on how to handle Guava dependencies going forward across the different versions of Accumulo. The goal would be to allow use of a newer version version of Guava in client applications with the current supported versions of Accumulo. Ideally, we could just eliminate any use of Beta Guava code. But there are Beta classes that are very useful and some which we already have integrated into released Accumulo versions. There seem to be 3 ways to handle Guava dependencies: 1 - jar shading 2 - copy Guava code into Accumulo 3 - replace Guava code with standard Java We may have to handle it differently with each version of Accumulo. For example, 1.8 has more widespread use of Beta annotated code than 1.7. --001a113d809876d28f05597ab259--