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 52D8A200B8D for ; Fri, 9 Sep 2016 06:01:29 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 5159C160AD0; Fri, 9 Sep 2016 04:01:29 +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 96CFA160AAD for ; Fri, 9 Sep 2016 06:01:28 +0200 (CEST) Received: (qmail 39015 invoked by uid 500); 9 Sep 2016 04:01:27 -0000 Mailing-List: contact dev-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list dev@hbase.apache.org Received: (qmail 38997 invoked by uid 99); 9 Sep 2016 04:01:27 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 09 Sep 2016 04:01:27 +0000 Received: from mail-wm0-f49.google.com (mail-wm0-f49.google.com [74.125.82.49]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id DBBDB1A0327 for ; Fri, 9 Sep 2016 04:01:26 +0000 (UTC) Received: by mail-wm0-f49.google.com with SMTP id 1so10374226wmz.1 for ; Thu, 08 Sep 2016 21:01:26 -0700 (PDT) X-Gm-Message-State: AE9vXwNnqfA4DUlF6aMZG4m8p3tt2Djd3rGH1NBWKiG9ZDCbjC6K47jxWND9Nlrcg020lAkasJWlTOpraKD9GQ== X-Received: by 10.194.173.168 with SMTP id bl8mr883329wjc.136.1473393685439; Thu, 08 Sep 2016 21:01:25 -0700 (PDT) MIME-Version: 1.0 Received: by 10.194.82.10 with HTTP; Thu, 8 Sep 2016 21:01:24 -0700 (PDT) In-Reply-To: References: From: Dima Spivak Date: Thu, 8 Sep 2016 21:01:24 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [DISCUSS] Drop the support of jdk7 at a future 1.x release To: "dev@hbase.apache.org" Cc: "user@hbase.apache.org" Content-Type: multipart/alternative; boundary=089e0122ebe43c3c2f053c0b331a archived-at: Fri, 09 Sep 2016 04:01:29 -0000 --089e0122ebe43c3c2f053c0b331a Content-Type: text/plain; charset=UTF-8 I'd worry about doing this from both the client-server compatibility side as well as for when it comes to upgrades. Having to go between Java versions is way scarier for ops people than just swapping JARs. On Thursday, September 8, 2016, Duo Zhang wrote: > The main reason is the asynchronous api we want to introduce in HBase > today. See HBASE-13784 and HBASE-16505. > > The CompletableFuture in java8 is very suitable to use as the return value > of a async method. We can not use it if we still want to support java7, and > sadly, there is no candidate which is good enough to replace > CompletableFuture. ListenableFuture in guava or Promise in netty are good, > but we do not want to expose third-party classes in our public > API(especially guava, you know...). And we can also implement our own > ListenableFuture but it just a copy of guava. Or introduce a simple > Callback interface which does not need much code(for us) but this is a code > style around 2000s so people will not like it... > > And luckily, I found that in our documentation > > http://hbase.apache.org/book.html#basic.prerequisites > > We only say that 1.3 will be compatible with jdk7, not all 1.x. > > So here I propose that we drop the support of jdk7 in a future 1.x release, > maybe 1.4? Thus we can use CompletableFuture in both master and branch-1. > > Thanks. > -- -Dima --089e0122ebe43c3c2f053c0b331a--