[
https://issues.apache.org/jira/browse/CALCITE-2027?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16307136#comment-16307136
]
Julian Hyde commented on CALCITE-2027:
--------------------------------------
It's not just source/target. When we drop support for JDK 1.7 we can use
classes/methods that are only available in the runtime library of JDK 1.8 and
later, such as Map.putIfAbsent.
I agree that industry has now moved beyond Java 7. As a library, we
unfortunately need to support old JDK versions because we want to serve a wide
audience.
> Drop support for Java 7 (JDK 1.7)
> ---------------------------------
>
> Key: CALCITE-2027
> URL: https://issues.apache.org/jira/browse/CALCITE-2027
> Project: Calcite
> Issue Type: Bug
> Reporter: Julian Hyde
> Assignee: Julian Hyde
> Priority: Trivial
> Fix For: 1.16.0
>
>
> Drop support for Java 7 (also known as JDK 1.7):
> * The code would no longer compile under JDK 7
> * Compiler would have source 1.8 target 1.8
> * Class files would run on JDK 8 and higher
> * Developers can use Java 8 syntax such as lambdas and default methods
> We would continue to build and run under JDK 8 and 9.
> I think it would be best to wait a while before converting existing code to
> Java 8 style (e.g. converting SAM anonymous classes to lambdas) because code
> changes might be extensive.
> I expect there will be cases that we want to change interfaces so that they
> are easier to use as lambdas. Let's make those changes cautiously when we
> come across them, and mark existing interfaces and methods deprecated until
> we remove them in 2.0.
> Let's give at least one release notice of this change. In 1.15 (the next
> release) let's announce that this will be the last release that supports Java
> 7. So this will be fixed for 1.16.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)