You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@thrift.apache.org by "Jens Geyer (Jira)" <ji...@apache.org> on 2026/09/18 10:38:00 UTC

[jira] [Commented] (THRIFT-6190) Add a compile and test check for the JavaME library

    [ https://issues.apache.org/jira/browse/THRIFT-6190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18116706#comment-18116706 ] 

Jens Geyer commented on THRIFT-6190:
------------------------------------

The PR does what the description proposes, with two differences:

* It runs all three tests in {{lib/javame/test}}, not only {{TestRecursionDepth}}. {{TestSkipDepth}} and {{TestDeclaredLengthLimits}} landed the day after this was filed.
* The test step runs every {{test/Test*.java}}, so a test added later is picked up without touching the workflow.

The {{LANGUAGES.md}} link to the nonexistent {{lib/javame/README.md}}, noted at the end of the description, has since been fixed by 61ffe58f6.

_Drafted with AI assistance (Claude Opus 5); reviewed and posted by Jens Geyer._

> Add a compile and test check for the JavaME library
> ---------------------------------------------------
>
>                 Key: THRIFT-6190
>                 URL: https://issues.apache.org/jira/browse/THRIFT-6190
>             Project: Thrift
>          Issue Type: New Feature
>          Components: Build Process, JavaME - Library
>            Reporter: Jens Geyer
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Nothing in the tree builds or tests the JavaME binding, and unlike the other bindings without a CI job, lib/javame has no build integration at all to hook one onto.
> * There is no lib/javame/Makefile.am and no configure.ac entry for it. The directory appears only in lib/Makefile.am, in EXTRA_DIST (line 115) and in a dist rule that removes gen-javame (line 108).
> * There is no entry in test/tests.json, so it is not part of the cross-test matrix either.
> * There is no CI job, and no configure flag to turn one on.
> The binding is nevertheless shipped in the release tarball. It has therefore never been compiled by any build in this repository. THRIFT-6036 and THRIFT-6055 both had to be compiled and run by hand to verify them.
> h3. Verified possible before filing
> In the thrift:jammy image with openjdk 17.0.19, using the recipe already documented in the header of lib/javame/test/TestRecursionDepth.java:
> {code}
> thrift --gen javame -o . test/RecursionDepth.thrift
> javac -d /tmp/jme -cp . \
>     $(find src -name '*.java' ! -name 'THttpClient.java') \
>     gen-javame/*.java test/TestRecursionDepth.java
> java -cp /tmp/jme TestRecursionDepth
> {code}
> The compile succeeds with only deprecation and unchecked notes, and the test reports "18 checks, 0 failure(s)". So a check is a matter of writing it, not of provisioning anything: the JDK is already in the images.
> h3. One permanent limitation, better stated up front than discovered later
> THttpClient.java imports javax.microedition.io.Connector and javax.microedition.io.HttpConnection, which no JDK provides. Supplying a CLDC/MIDP jar is not an option for an ASF build: Oracle's is proprietary and microemu is LGPL. A check can therefore cover 39 of the 40 source files and must exclude THttpClient.java, exactly as the existing test recipe does.
> h3. Scope
> This is a compile-and-smoke check, not parity with the other bindings' CI jobs. lib/javame has no server transport and no acceptor, and there is no tests.json entry, so cross tests are out of scope. What such a job would buy is that the binding still compiles and that its one existing test still passes -- which is precisely what had to be established by hand for the last two changes to it.
> Noticed while writing this up, and separable: LANGUAGES.md links to lib/javame/README.md, which does not exist.
> Compare THRIFT-6002 (netstd), THRIFT-6003 (haxe), THRIFT-6170 (D), THRIFT-6171 (Erlang) and THRIFT-6172 (Dart), which are the same gap in bindings that at least have a build harness.
> _Drafted with AI assistance (Claude Opus 5); reviewed and filed by Jens Geyer._



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