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 C1485200B8D for ; Fri, 9 Sep 2016 05:54:17 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id BFB5B160AD0; Fri, 9 Sep 2016 03:54:17 +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 3858B160AAD for ; Fri, 9 Sep 2016 05:54:17 +0200 (CEST) Received: (qmail 22148 invoked by uid 500); 9 Sep 2016 03:54:16 -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 22121 invoked by uid 99); 9 Sep 2016 03:54:15 -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 03:54:15 +0000 Received: from mail-vk0-f42.google.com (mail-vk0-f42.google.com [209.85.213.42]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 931811A0187; Fri, 9 Sep 2016 03:54:15 +0000 (UTC) Received: by mail-vk0-f42.google.com with SMTP id 16so39611896vko.2; Thu, 08 Sep 2016 20:54:15 -0700 (PDT) X-Gm-Message-State: AE9vXwPVplAzxroiP5kyzauycpsaVp4izxJA9jvaHYYFkkWTCDg8eZyj5EIUuDyzKbzOvV3msDfVS3Px7zed4w== X-Received: by 10.31.223.68 with SMTP id w65mr876682vkg.123.1473393254701; Thu, 08 Sep 2016 20:54:14 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.33.201 with HTTP; Thu, 8 Sep 2016 20:54:14 -0700 (PDT) From: Duo Zhang Date: Fri, 9 Sep 2016 11:54:14 +0800 X-Gmail-Original-Message-ID: Message-ID: Subject: [DISCUSS] Drop the support of jdk7 at a future 1.x release To: dev@hbase.apache.org, user@hbase.apache.org Content-Type: multipart/alternative; boundary=94eb2c07cc8e8fa428053c0b1994 archived-at: Fri, 09 Sep 2016 03:54:17 -0000 --94eb2c07cc8e8fa428053c0b1994 Content-Type: text/plain; charset=UTF-8 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. --94eb2c07cc8e8fa428053c0b1994--