Francis, The PQS build issue was caused by Avatica including some newer
dependencies (Jackson, IIRC), which include JVM dependent classes. The
current maven-shade-plugin version in PQS cannot handle those JARs, and
needs to be upgraded.
This is a PQS issue, and not  something that Avatica can or should fix.

The JVM 1.8 issue is specific to building Avatica, it doesn't affect
downstream projects that simply depend on the maven binaries.
I only encountered it, because I had to build the RC locally for testing,
and I do not trust the current cross-compile settings in the build.

I have tested Sergey's patch, and it solves the problem, it doesn't look
brittle to me, most related projects have similar workarounds for handling
JVM version differences.

Two different people have hit the JVM 1.8 building issue. Sergey's patch is
a simple fix, which prevents a lot of problems for people trying to build
Avatica in the future. My suggestion is to add it to 1.24.0 .

best regards
Istvan

On Mon, Nov 27, 2023 at 11:38 PM Francis Chuang <francischu...@apache.org>
wrote:

> PQS already uses Avatica 1.23.0 [1], which already had the change to
> upgrade checkstyle (which in turn required a newer version of Java).
>
> I wonder if there's something else causing the issue Istvan is seeing.
>
> [1] https://github.com/apache/phoenix-queryserver/blob/master/pom.xml#L88
>
> On 28/11/2023 9:25 am, Julian Hyde wrote:
> > Istvan,
> >
> > You must read the build instructions. If you do not read the build
> instructions, you have no basis for voting -1.
> >
> > Fixing gradle may or may not be the solution. (It might make gradle more
> complex and fragile.)
> >
> > Julian
> >
> >
> >> On Nov 27, 2023, at 2:08 PM, Sergey Nuyanzin <snuyan...@gmail.com>
> wrote:
> >>
> >> Meanwhile I checked the code
> >>
> >> the root cause of the behavior above is upgrade of checkstyle version
> from
> >> 6.18 to 10.3.2 [1]
> >> which happened in 1.23.0, i.e. it is reproducible with 1.23.0
> >>
> >> in this case, please correct me if I'm wrong, this should not be
> considered
> >> as a blocker
> >>
> >> [1] https://issues.apache.org/jira/browse/CALCITE-5329
> >>
> >> On Mon, Nov 27, 2023 at 9:53 PM Sergey Nuyanzin <snuyan...@gmail.com>
> wrote:
> >>
> >>> I created a PR[1]
> >>> The main idea is to introduce another property jdk8.checkstyle which is
> >>> set to 9.3
> >>> before resolving dependency for checkstyle it checks the current java
> >>> version. In case of 1.8 it uses new property otherwise the old one
> >>> new property also allows to keep ability to change version for jdk8
> from
> >>> command line in case it is required as "-Pjdk8.checkstyle.version=X.Y"
> >>>
> >>> Also it allows to compile with jdk 8, 11, 17 without explicitly set
> >>> checkstyle version
> >>>
> >>> [1] https://github.com/apache/calcite-avatica/pull/233
> >>>
> >>> On Mon, Nov 27, 2023 at 8:05 PM Istvan Toth <st...@cloudera.com.invalid
> >
> >>> wrote:
> >>>
> >>>> Can someone who knows Gradel make a patch to get Gradle to set
> >>>> -Pcheckstyle.version=9.3 when it detects Java 1.8  ?
> >>>> This is super simple in Maven with profiles, I expect that it should
> not
> >>>> be
> >>>> very hard in Gradle either.
> >>>>
> >>>> Also, I don't think that the exact JVM patch level has anything to do
> with
> >>>> this, as long as it's Java 1.8.
> >>>>
> >>>> Istvan
> >>>>
> >>>> On Mon, Nov 27, 2023 at 4:05 PM Guillaume Masse
> >>>> <masse.guilla...@narrative.io.invalid> wrote:
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>> latest jdk 8 is 8u391, 8u371 is two version behind.
> >>>>>
> >>>>>
> >>>>
> https://www.oracle.com/java/technologies/javase/8all-relnotes.html#R8u391-BPR
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Mon, Nov 27, 2023 at 4:21 AM Istvan Toth
> <st...@cloudera.com.invalid
> >>>>>
> >>>>> wrote:
> >>>>>
> >>>>>> -1 (non binding)
> >>>>>>
> >>>>>> I have successfully built and run the PQS test suite with the
> Avatica
> >>>> RC
> >>>>>> with Java 11.
> >>>>>> (I had to tweak the PQS maven setup a bit, but that's not Avatica's
> >>>>> fault)
> >>>>>>
> >>>>>> When I tried to do the same with Java 8, I ran into the issues
> >>>> mentioned
> >>>>>> above.
> >>>>>> I was able to hack around the checkstyle/autostyle issue by removing
> >>>> them
> >>>>>> from gradle build files, but then I got:
> >>>>>>
> >>>>>> ==============================================
> >>>>>> FAILURE: Build failed with an exception.
> >>>>>>
> >>>>>> * Where:
> >>>>>> Build file
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> '/home/stoty/workspaces/apache-phoenix/calcite-avatica/release/build.gradle.kts'
> >>>>>> line: 213
> >>>>>>
> >>>>>> * What went wrong:
> >>>>>> Task with name 'assemble' not found in project ':release'.
> >>>>>> ==============================================
> >>>>>> and I wasn't able to get any further. (I am no Gradle expert)
> >>>>>>
> >>>>>> Phoenix still supports Java 8, so we need the public artifacts to be
> >>>>> Java 8
> >>>>>> compatible.
> >>>>>> I imagine Phoenix is not the only project that still supports Java
> 8.
> >>>>>>
> >>>>>> While Avatica is built with
> >>>>>>
> >>>>>> sourceCompatibility = JavaVersion.VERSION_1_8
> >>>>>>
> >>>>>> targetCompatibility = JavaVersion.VERSION_1_8
> >>>>>> It does not seem to set the boot classpath, which does not guarantee
> >>>>> actual
> >>>>>> backwards compatibility.
> >>>>>> Depending on the Java APIs used, the generated code may or may not
> >>>> work
> >>>>> on
> >>>>>> Java 8 JVMs.
> >>>>>>
> >>>>>> The easy workaround is to use the -release flag instead, but that
> >>>> doesn't
> >>>>>> work on Java 8, so this needs
> >>>>>> some hacking of the build system.
> >>>>>>
> >>>>>> best regards
> >>>>>> Istvan
> >>>>>>
> >>>>>>
> >>>>>> On Mon, Nov 27, 2023 at 7:13 AM Benchao Li <libenc...@apache.org>
> >>>> wrote:
> >>>>>>
> >>>>>>> Thanks Francis for pointing it out, '-Pcheckstyle.version=9.3'
> works
> >>>>>> fine.
> >>>>>>>
> >>>>>>> My vote is +1 (binding).
> >>>>>>>
> >>>>>>> Francis Chuang <francischu...@apache.org> 于2023年11月27日周一 13:12写道:
> >>>>>>>>
> >>>>>>>> I think we need to force an older version of Checkstyle when using
> >>>>>> JDK8.
> >>>>>>>> See:
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> https://issues.apache.org/jira/browse/CALCITE-5329?focusedCommentId=17628456&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17628456
> >>>>>>>>
> >>>>>>>> On 27/11/2023 3:55 pm, Benchao Li wrote:
> >>>>>>>>> - Verified checksum and signature (OK)
> >>>>>>>>> - Gone through release note (OK)
> >>>>>>>>> - Diffed source release with git repo (OK)
> >>>>>>>>> - Checked files in Nexus (OK)
> >>>>>>>>> - Compile and test sources with JDK8 (NOT SURE)
> >>>>>>>>>
> >>>>>>>>> While compiling the sources with JDK8, I've encountered:
> >>>>>>>>> $java -version
> >>>>>>>>> java version "1.8.0_371"
> >>>>>>>>> Java(TM) SE Runtime Environment (build 1.8.0_371-b11)
> >>>>>>>>> Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode)
> >>>>>>>>> $./gradlew build
> >>>>>>>>> FAILURE: Build completed with 5 failures.
> >>>>>>>>>
> >>>>>>>>> 1: Task failed with an exception.
> >>>>>>>>> -----------
> >>>>>>>>> * What went wrong:
> >>>>>>>>> Execution failed for task ':metrics:checkstyleMain'.
> >>>>>>>>>> A failure occurred while executing
> >>>>>>> org.gradle.api.plugins.quality.internal.CheckstyleAction
> >>>>>>>>>> com/puppycrawl/tools/checkstyle/ant/CheckstyleAntTask has
> >>>>> been
> >>>>>>>>> compiled by a more recent version of the Java Runtime (class
> >>>> file
> >>>>>>>>> version 55.0), this version of the Java Runtime only recognizes
> >>>>> class
> >>>>>>>>> file versions up to 52.0
> >>>>>>>>>
> >>>>>>>>> Francis Chuang <francischu...@apache.org> 于2023年11月27日周一
> >>>> 07:54写道:
> >>>>>>>>>>
> >>>>>>>>>> Hi all,
> >>>>>>>>>>
> >>>>>>>>>> I have created a build for Apache Calcite Avatica 1.24.0,
> >>>> release
> >>>>>>>>>> candidate 0.
> >>>>>>>>>>
> >>>>>>>>>> Thanks to everyone who has contributed to this release.
> >>>>>>>>>>
> >>>>>>>>>> You can read the release notes here:
> >>>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> https://github.com/apache/calcite-avatica/blob/avatica-1.24.0-rc0/site/_docs/history.md
> >>>>>>>>>>
> >>>>>>>>>> The commit to be voted upon:
> >>>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> https://gitbox.apache.org/repos/asf?p=calcite-avatica.git;a=commit;h=01a7a9e956b3fe8ad999a5b82e5d9924434cb309
> >>>>>>>>>>
> >>>>>>>>>> Its hash is 01a7a9e956b3fe8ad999a5b82e5d9924434cb309
> >>>>>>>>>>
> >>>>>>>>>> Tag:
> >>>>>>>>>>
> >>>> https://github.com/apache/calcite-avatica/tree/avatica-1.24.0-rc0
> >>>>>>>>>>
> >>>>>>>>>> The artifacts to be voted on are located here:
> >>>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> https://dist.apache.org/repos/dist/dev/calcite/apache-calcite-avatica-1.24.0-rc0
> >>>>>>>>>>
> >>>>>>>>>> The hashes of the artifacts are as follows:
> >>>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> 927707b23a1338105fbb9d0a9a1836baf3e95e20002407b483b8f663927c5d41d844b2a09ec2cd1e580ae2e29d930ad32ee308d0d04550c35d8daefa7ad777c3
> >>>>>>>>>> *apache-calcite-avatica-1.24.0-src.tar.gz
> >>>>>>>>>>
> >>>>>>>>>> A staged Maven repository is available for review at:
> >>>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> https://repository.apache.org/content/repositories/orgapachecalcite-1221/org/apache/calcite/
> >>>>>>>>>>
> >>>>>>>>>> Release artifacts are signed with the following key:
> >>>>>>>>>> https://people.apache.org/keys/committer/francischuang.asc
> >>>>>>>>>> https://www.apache.org/dist/calcite/KEYS
> >>>>>>>>>>
> >>>>>>>>>> To create the jars and test Apache Calcite Avatica: "gradle
> >>>> build
> >>>>>>>>>> -Prelease -PskipSign".
> >>>>>>>>>>
> >>>>>>>>>> If you do not have a Java/Gradle environment available, you can
> >>>>> run
> >>>>>>> the
> >>>>>>>>>> tests using docker. To do so, install docker and
> >>>> docker-compose,
> >>>>>> then
> >>>>>>>>>> run "docker-compose run test" from the root of the directory.
> >>>>>>>>>>
> >>>>>>>>>> Please vote on releasing this package as Apache Calcite Avatica
> >>>>>>> 1.24.0.
> >>>>>>>>>>
> >>>>>>>>>> The vote is open for the next 72 hours and passes if a
> >>>> majority of
> >>>>>> at
> >>>>>>>>>> least three +1 PMC votes are cast.
> >>>>>>>>>>
> >>>>>>>>>> [ ] +1 Release this package as Apache Calcite Avatica 1.24.0
> >>>>>>>>>> [ ]  0 I don't feel strongly about it, but I'm okay with the
> >>>>> release
> >>>>>>>>>> [ ] -1 Do not release this package because...
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Here is my vote:
> >>>>>>>>>>
> >>>>>>>>>> +1 (binding)
> >>>>>>>>>>
> >>>>>>>>>> Francis
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>> --
> >>>>>>>
> >>>>>>> Best,
> >>>>>>> Benchao Li
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> *István Tóth* | Sr. Staff Software Engineer
> >>>>>> *Email*: st...@cloudera.com
> >>>>>> cloudera.com <https://www.cloudera.com>
> >>>>>> [image: Cloudera] <https://www.cloudera.com/>
> >>>>>> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
> >>>>>> Cloudera on Facebook] <https://www.facebook.com/cloudera> [image:
> >>>>> Cloudera
> >>>>>> on LinkedIn] <https://www.linkedin.com/company/cloudera>
> >>>>>> ------------------------------
> >>>>>> ------------------------------
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>> --
> >>>> *István Tóth* | Sr. Staff Software Engineer
> >>>> *Email*: st...@cloudera.com
> >>>> cloudera.com <https://www.cloudera.com>
> >>>> [image: Cloudera] <https://www.cloudera.com/>
> >>>> [image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
> >>>> Cloudera on Facebook] <https://www.facebook.com/cloudera> [image:
> >>>> Cloudera
> >>>> on LinkedIn] <https://www.linkedin.com/company/cloudera>
> >>>> ------------------------------
> >>>> ------------------------------
> >>>>
> >>>
> >>>
> >>> --
> >>> Best regards,
> >>> Sergey
> >>>
> >>
> >>
> >> --
> >> Best regards,
> >> Sergey
> >
>


-- 
*István Tóth* | Sr. Staff Software Engineer
*Email*: st...@cloudera.com
cloudera.com <https://www.cloudera.com>
[image: Cloudera] <https://www.cloudera.com/>
[image: Cloudera on Twitter] <https://twitter.com/cloudera> [image:
Cloudera on Facebook] <https://www.facebook.com/cloudera> [image: Cloudera
on LinkedIn] <https://www.linkedin.com/company/cloudera>
------------------------------
------------------------------

Reply via email to