Skip to content

Bump JMEOS bindings to 1.3 (wrap MEOS C API 1.3) #1

@estebanzimanyi

Description

@estebanzimanyi

Background

MobilitySpark currently consumes JMEOS via two vendored JARs in libs/:

  • MobilityDB-JMEOS.jar (3.9 MB)
  • MobilityDB-JMEOS-Linux.jar (21 MB — bundles the MEOS native library)

The Maven dependency block in pom.xml is decorative — JMEOS is not published on Maven Central and the declared org.jmeos:meos:1.0 coordinate doesn't resolve from any public repo. The actual integration is JAR-based.

JMEOS itself is undergoing a major upgrade to wrap the MEOS C API 1.3 in JMEOS PR #8 — currently OPEN, BLOCKED on review since 2025-10-10. PR #8 is from a fork (SachaDelsaux/JMEOS:JMEOS_v1.3) and represents what the user calls "JMEOS 1.3". Once it merges, MobilitySpark needs a coordinated bump: build new JARs, replace the vendored copies, and update any code paths that depend on changed JMEOS signatures.

This issue tracks that work.

What changes upstream

JMEOS PR #8 stats:

  • functions/functions.java: 8915 added, 4004 deleted (1486 → 2172 public-static methods, ~700 net new).
  • 17 test files modified.
  • One stray binary: hs_err_pid17967.log (a JVM crash dump that should not be committed) — flag back to upstream.
  • scale10.csv (~50 MB) — PR #8's body itself notes this should move to Git LFS or be excluded.

The Maven artefact version stays at 1.0-SNAPSHOT on both main and the v1.3 branch. The "1.3" refers to the MEOS C API version the bindings wrap, not a JMEOS Maven version bump.

What MobilitySpark consumes from JMEOS

A full grep across the four Java files in src/main/java/ finds two JMEOS imports total:

import static jmeos.functions.functions.meos_finalize;
import static jmeos.functions.functions.meos_initialize;

Both methods still exist in PR #8's functions.java (lines 4430 and 4435). The API-compat risk on the MobilitySpark side is essentially zero — the bump should compile cleanly once the new JARs are in place.

Staged plan

Stage Effort Blocker
0 JMEOS PR #8 merges to MobilityDB/JMEOS:main external Currently OPEN, BLOCKED on review since 2025-10-10. Needs @GaspardMerten + @mschoema sign-off.
1 Build new MobilityDB-JMEOS.jar + MobilityDB-JMEOS-Linux.jar from the merged 1.3 bindings, against MEOS 1.3 native library ~30 min, requires Linux build env with MEOS 1.3 installed Stage 0
2 Replace the two JARs in MobilitySpark/libs/; correct the pom.xml dependency block (the <artifactId>meos</artifactId> is a typo for jmeos, but currently has no functional effect since the artefact does not resolve from any Maven repo) ~30 min mechanical Stage 1
3 Verify MobilitySpark compiles with mvn clean install; run integration test (the meos_initialize / meos_finalize calls in Main.java are the canary) ~30 min Stage 2
4 Update README to reference MEOS 1.3 (currently the cmake instructions install whatever is on MobilityDB/MobilityDB:master); pin the MEOS source version explicitly ~15 min Stage 3

Total once unblocked: ~2 hours of focused work. All gated on JMEOS PR #8 merging.

Companion artefact

A draft PR captures the staged plan in-tree at doc/BUMP_TO_JMEOS_1.3.md so contributors can find it without leaving the repo: see [PR linked below].

Outstanding questions for upstream coordination

  1. JMEOS PR #8 cleanup items — flag back to @GaspardMerten:
    • Remove the hs_err_pid17967.log JVM-crash binary.
    • Move or exclude scale10.csv (~50 MB) per the PR body's own note.
  2. MEOS 1.3 native library availability — confirm a stable tag / release on MobilityDB/MobilityDB so the Linux JAR can bundle it. The cmake MEOS=ON build path needs a known-good source state for reproducibility.
  3. JMEOS Maven publication strategy — long-term, JMEOS publication on Maven Central would replace the vendored-JAR pattern in MobilitySpark with a clean <dependency> block. Out of scope for this bump but worth raising.

Cc

  • @GaspardMerten — JMEOS maintainer; PR #8 review and the cleanup items.
  • @mschoema — JMEOS / MobilityDB; Java-binding architecture context.
  • @JashanReel — MEOS-API context (relevant to the JMEOS-Maven-publication question in §3 of outstanding questions).
  • @estebanzimanyi — visibility.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions