You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Christofer Dutz (Jira)" <ji...@apache.org> on 2023/07/31 14:49:00 UTC

[jira] [Created] (THRIFT-5729) Configure the compiler-plugin to produce Java 8 compatible code

Christofer Dutz created THRIFT-5729:
---------------------------------------

             Summary: Configure the compiler-plugin to produce Java 8 compatible code
                 Key: THRIFT-5729
                 URL: https://issues.apache.org/jira/browse/THRIFT-5729
             Project: Thrift
          Issue Type: Task
          Components: Java - Library
    Affects Versions: 0.18.1
            Reporter: Christofer Dutz


Right up till Thrift 0.17.0 the class format was 52 (Java 1.8) but with 0.18.0 this changed to 55 (Java 11).

From a quick look, the code seems to imply the baseline for building should be Java 8, however it can only be consumed by applications running at least Java 11.

By configuring the maven-compiler plugin accordingly, the library should be consumable by Java 8 applications as well.



I know Thrift uses Gradle to compile the library and I'm not very proficient with that. However here's how we configure this in other Apache projects with Maven. I am sure there are matching options in Gradle:
{code:java}
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target> {code}
Starting with Java 9, the following would need to be set:
{code:java}
<maven.compiler.release>8</maven.compiler.release> {code}
A little self-activating maven profile could help with that:
{code:java}
<profile>
    <id>.java-9-and-above</id>
    <activation>
        <jdk>[9,)</jdk>
    </activation>
    <properties>
        <maven.compiler.release>8</maven.compiler.release>
    </properties>
</profile>{code}
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)